Как стать хорошим программистом

16.05.13

Саморазвитие

В этой статье я приведу несколько рекомендаций, следуя которым можно стать хорошим программистом. Только для начала внесем ясность, что же понимать под "хорошим программистом"? Вообще, скажу сразу, что хороший программист этот не тот, который быстро пишет много кода (горы кода могут быть глючными и запутанными, а программы неудобными для пользователей), и не тот, который всегда пишет задачи строго в соответствии с ТЗ (техническим заданием), так как закодить при грамотной постановке задачи много ума не надо. А хороший программист это тот, кто умеет грамотно ставить задачи, разрабатывать оптимальные алгоритмы и качественно кодировать их. Зачем программисту уметь ставить задачи? А затем, что пользователи не умеют внятно формулировать свои хотелки. Зачастую они просто говорят: напиши: "хорошую программу". И именно такие программисты, которые умеют писать "хорошую программу", как раз наиболее востребованы на рынке труда.

Как стать хорошим программистом.

В этой статье я приведу несколько рекомендаций, следуя которым можно стать хорошим программистом. Только для начала внесем ясность, что же понимать под "хорошим программистом"? Вообще, скажу сразу, что хороший программист этот не тот, который быстро пишем много кода (горы кода могут быть глючными и запутанными, а программы неудобными для пользователей), и не тот, который всегда пишет задачи строго в соответствии с ТЗ (техническим заданием), так как закодить при грамотной постановке задачи много ума не надо. А хороший программист, это тот, кто умеет грамотно ставить задачи, разрабатывать оптимальные алгоритмы и качественно кодировать их. Зачем программисту уметь ставить задачи? А затем, что пользователи не умеют внятно формулировать свои хотелки. Зачастую они просто говорят: напиши: "хорошую программу". И именно такие программисты, которые умеют писать "хорошую программу" как раз наиболее востребованы на рынке труда.

И так, как же стать хорошим программистом? Вот список рекомендаций, следуя которым можно достичь больших успехов на поприще программирования:

1. Учите основы.  Понимание основ — это ключ к успеху в  любой профессии. До тех пор, пока вы недостаточно хорошо знаете основы, вы не сможете стать хорошим программистом. Знание азов позволит вам разрабатывать и реализовывать лучшие решения наилучшим способом. Если вы ощущаете пробелы в своих знаниях, будь то основы компьютерной науки, или концепции языка, на котором вы пишете, то никогда не поздно вернуться назад и повторить пройденное.
 

2. Задавайте вопросы (как? зачем и почему?), когда пишете код. Есть одна черта характера, которая выгодно отличает хорошего программиста от всех остальные - это желание знать, что и как происходит. Для того, что бы быть хорошим программистом, нужно "мучить" код до тех пор, пока досконально не будет понятно, как программа работает, даже если это чужой код и вы внесли в него лишь парочку изменений. Да, если вы работаете в авральном режиме, есть искушение пренебречь этим правилом. Единственный выход - сами устанавливать сроки, закалывая туда время на тщательное изучение кода. Заказчика не устраивают ваши сроки? Жестко стойте на своем, лучше написать качественно, но долго, чем сдать глючный продукт и опозорится. Так что на любые попытки срезать сроки, как заезженная пластинка отвечайте: "Быстрее невозможно. И точка!" И помните, хороший программист без работы не останется по любому.

3. Учите других — учитесь сами Большинство людей обращаются к форумам и различным сообществам только тогда, когда нам нужна помощь. Еще одна вещь, которая отличает хорошего программиста от все остальных: хороший программист чаще заглядывает в такие места, чтобы помочь другим. Такая помощь учит больше, чем помощь, оказанная вам при решении вашей проблемы. Поверьте, после того как вы разберетесь в чужой проблеме и ее контексте, поразмышляете над ней и дадите решение, вы научитесь гораздо большему.
 

4. Пишите простой, понятный, но в то же время логичный код. Как и в других областях, формула KISS (Keep it simple and short — делай короче и проще) работает и в программировании. Пишите простой код и избегайте усложнений. Иногда люди пишут сложный код только для того, чтобы показать, какие они умные. Однако простой код легче отглючивать, сопровождать и вносить в него изменения. К тому же (см. пункт 2) чем проще код, тем проще понять, как он работает.

5. Уделяйте больше времени анализу проблемы, тогда вам понадобится меньше времени для ее устранения. Уделяйте больше времени на понимание и анализ проблемы и разработку решения. А остальное будет легко сделать. Разработка решения не означает использование языков или инструментов для моделирования, вы можете просто смотреть на небо и думать о решении. У тех, кто привык стучать по клавиатуре сразу же, как только узнал о проблеме, результат обычно не совпадает с ожидаемым.

6. Будьте первым, кто проанализирует и оценит ваш код. Хотя это трудно, но попробуйте покритиковать или протестить ваш код до того, как это сделает кто-то другой. Со временем вы научитесь писать почти безошибочный код. Всегда проводите подробную и беспристрастную оценку своего кода, чаще используйте юнит-тесты, что бы убедиться, что код делает именно то, что нужно. И никогда не бойтесь спрашивать, что другие думают о вашем коде. Работайте с хорошими программистами и прислушивайтесь к их мнению - это поможет вам стать хорошим программистом.
 

7. Не пугайтесь быстрой смены технологий. Каждый день появляются новые инструменты, API, библиотеки, фреймворки, призванные сделать разработку быстрой и простой. И эта тенденция не снизится. Однако следует понять одну вещь: фундаментальные знания и основы меняются значительно медленнее, чем фреймворки, новые инструменты и API. Можно провести аналогию с морем, на поверхности которого находятся быстрые течения, однако на глубине вода спокойна и она составляет большую часть объема. Поэтому держитесь «на глубине», поближе к основам. Иными словами, языки программирования сменяют друг друга, но основные понятия, такие как алгоритм, ООП и прочее остаються практически неизменными. Устарел Delphi, на смену ему пришел C# - изменился только язык, но концепция ООП осталась прежней. Усталела 1С:БУхгалетрия 7.7, на смену ей пришла восьмерка. Но изменился только язык. Основные алгоритмы, такие, например, как партионный учет и прочее остались прежними.

8. «Костыли» долго не работают. Множество программистов используют «костыли»: от недостатка времени, понимания проблемы или опыта. Однако со временем такие решения делают код глюкавым: он становится менее расширяем и его труднее сопровождать. Всегда старайтесь написать такую реализацию, о которой вы знаете все.

9. Читайте документацию. Хорошие программисты читают много документации. Это могут быть спецификации, JSR, API, документы, туториалы и т.д. Чтение документации позволит вам понимать основы, и вы будете решать задачи наилучшим способом.

10. Чужой код тоже может чему-то научить. Чтение исходных кодов известного open source проекта, или кодов, написанных вашим коллегой программистом, может помочь вам писать код лучше.

При подготовке текста использовался материал с http://habrahabr.ru/post/112017/


Источник: http://easyprog.ru/index.php?option=com_content&task=view&id=1435&Itemid=35

См. также

Радио "Аналитик", 15 выпуск 2 сезона. "Путь аналитика" с Ильёй Никитиным. Переход от технической поддержки к анализу

Личная эффективность Обучение и наставничество Бесплатно (free)

В серии “Путь аналитика” мы говорим о том, как аналитики приходят в профессию, с какими задачами работают, с какими трудностями сталкиваются и как их преодолевают.

18.03.2024    285    0    Radio_Analyst    0    

5

Радио "Аналитик", 14 выпуск 2 сезона. "Путь аналитика" с Натальей Лосевой. Переход от разработки к анализу

Личная эффективность Обучение и наставничество Бесплатно (free)

В серии “Путь аналитика” мы говорим о том, как аналитики приходят в профессию, с какими задачами работают, с какими трудностями сталкиваются и как их преодолевают.

04.03.2024    349    0    Radio_Analyst    0    

5

Измерение и развитие потенциала сотрудников

Обучение и наставничество Бесплатно (free)

Тема измерения и развития потенциала сотрудников является ведущей последние два года в компании Proaction. Елена Дуюн, руководитель направления «Развитие корпоративной культуры», поделится с нами откровением, которое возникло в процессе исследовательского проекта на платформе Proaction. Елена расскажет о текущей кадровой ситуации, о видах потенциала сотрудников, о том, как оценивать этот потенциал и как мотивировать персонал на саморазвитие.

01.03.2024    367    0    DuyunElena    0    

3

Радио "Аналитик", 13 выпуск 2 сезона. "Путь аналитика" с Анастасией Лощиловой. От финансового директора на заводе до функционального архитектора

Обучение и наставничество Бесплатно (free)

Что отличает аналитика от самурая? Аналитик не прокладывает путь, пока не поставит цель. В серии “Путь аналитика” поговорим, как аналитики приходят в профессию, с какими задачами работают, с какими трудностями сталкиваются и как их преодолевают.

20.02.2024    508    0    Radio_Analyst    0    

1

Презентация продукта как искусство

Презентации и публичные выступления Бесплатно (free)

Никакой продажник не продаст ВАШ продукт лучше ВАС. Но презентация продукта – это не только наука, но и искусство. О том, как сделать выступление запоминающимся, насколько важны базовые ораторские навыки, сторителлинг и инструментарий для наглядного погружения в детали, расскажем в статье.

12.02.2024    935    0    comol    4    

17

Личный бренд в IT: а оно вообще надо?

Личная эффективность Бесплатно (free)

Персональный личный бренд повышает вашу стоимость на рынке труда – чем больше потенциальные работодатели знают о ваших достижениях, тем больше они готовы вам платить. Но что делать на старте, когда вы решили прокачать своё имя в отрасли? Какие инструменты и подходы для этого необходимо использовать? О том, как прокачать свой бренд, принося пользу компании, пойдет речь в статье.

01.02.2024    836    0    mitinskiy    2    

7

Зачем программисту книжки читать

Личная эффективность Бесплатно (free)

Нам с детства постоянно твердят, что книга – лучший друг, книга – лучший подарок, книга – вообще лучшая вещь в мире. Да, это действительно так. Книги явно и значительно влияют на нашу работу, карьеру и жизнь. О том, как правильно читать книгу, как книга вообще влияет на человека, и главное: зачем вообще читать эти книги программисту, сисадмину, аналитику, расскажем в статье.

31.01.2024    2836    0    a_a_burlakov    25    

46

Гореть, но не выгорать: как сохранить ресурс специалистов

Коммуникации Мотивация Личная эффективность Бесплатно (free)

Сейчас на рынке много объемных проектов, и специалисты часто сталкиваются c перегрузками. Чтобы сохранить ресурсное состояние и не допустить выгорания, нужна личная работа человека и грамотный подход руководителей. В статье рассказываю, как мы помогаем сотрудникам справиться со стрессом.

15.01.2024    1699    0    KChebykina    0    

31
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Ibrogim 1311 16.05.13 09:00 Сейчас в теме
Заказчика не устраивают ваши скрои
скрои вообще редко кого устраивают
нужно "мучить" код до тех пор, пока досконально не будет понятно, как она работает

если вы написали код, то конечно желательно знать, как она работает...
Почему то напомнило сочинение студента МГИМО
expert.1c8; Maxis; Ta_Da; MarSeN; +4 Ответить
13. expert.1c8 16.05.13 19:06 Сейчас в теме
(1) Ibrogim, Интересное сочинение ))
(4) tolyan_ekb, Спсасибо за ссылку, действительно явный копипаст

Автору советую вместо ссылки на свой сайт поставить эту ссылку с Хабра на оригинал,
так будет более честно..
18. megabax 194 16.05.13 20:48 Сейчас в теме
(13) expert.1c8,
Автору советую вместо ссылки на свой сайт поставить эту ссылку с Хабра на оригинал,
так будет более честно..

Ну вообще то это не копипаст, а рерайтинг,
2. TrinitronOTV 14 16.05.13 09:27 Сейчас в теме
спасибо за предоставленную статью, было весьма интересно прочитать
3. yuraos 991 16.05.13 09:37 Сейчас в теме
Очень гут!
Полезно будет почитать разработчикам типовых конфигураций
(если они кодят не злонамеренно )
...

4. Пишите простой, понятный, но в то же время логичный код. Как и в других областях, формула KISS (Keep it simple and short — делай короче и проще) работает и в программировании. Пишите простой код и избегайте усложнений. Иногда люди пишут сложный код только для того, чтобы показать, какие они умные. Однако простой код легче отглючивать, сопровождать и вносить в него изменения. К тому же (см. пункт 3) чем проще код, тем проще понять, как он работает.

...
Дриугими словами используйте Бритву Оккама
ula1c; ranger; +2 Ответить
4. tolyan_ekb 104 16.05.13 11:59 Сейчас в теме
Товарисч копипастом занимается http://habrahabr.ru/post/112017/

Там еще было.
И последнее: не сравнивайте себя с другими

Сравнение себя с другими выльется только в плохое самочувствие и нездоровую конкуренцию. У всех есть свои сильные и слабые стороны. Важнее понять свои сильные и слабые стороны и работать над ними. Я много раз видел, как даже так называемые fundoo-программисты (программисты с хорошей фундаментальной подготовкой) делали глупые ошибки. Поэтому проанализируйте и запишите те вещи, которые вам стоит улучшить в себе, и за работу. Программируйте в удовольствие и наслаждайтесь этим.


Любой дурак может написать код, понятный компьютеру. Хороший программист пишет код, понятный человеку.
Мартин Фаулер
expert.1c8; ElenaStel; kiros; +3 Ответить
5. Ibrogim 1311 16.05.13 12:04 Сейчас в теме
(4) tolyan_ekb, Тогда это не только копипаст, но и реклама своего сайта.
17. Поручик 4670 16.05.13 20:02 Сейчас в теме
(4) По поводу копи-паста http://forum.infostart.ru/forum1/topic86131/ (во вложении первого поста)

(0) Если на твоём сайте дейсвительно чужие статьи, смотри, как бы не нарваться на грубость.
6. Yashazz 4709 16.05.13 12:17 Сейчас в теме
Уже по анонсу видно, что все понятия свалены в кучу. Разные это вещи - постановка задачи, архитектура, кодинг, внедрение. Быть хорошим везде по нашим временам реально лишь на некрупных проектах, остальное есть вопрос специализации, а стало быть, каждому своё и каждый "хорош" в своём деле. Вот кабы статья была "Как стать хорошим программистом". А то мне это сильно напоминает статью типа "Как стать хорошим менеджером" - вроде и обо всём, а ни о чём.
7. Irek-kazan 16.05.13 12:21 Сейчас в теме
автор молодец, старался. Но статья, мне показалось, из серии книжек "Как заработать миллион"
8. Ibrogim 1311 16.05.13 12:34 Сейчас в теме
(7) Irek-kazan,
автор молодец, старался.
Копипастил?
9. Kosstikk 87 16.05.13 14:02 Сейчас в теме
Помоему это фарм стартмани =)
Но мне статья принесла некоторую пользу, т.к. в другом случае бы ее не прочитал. Плюс узнал что такое бритва Оккама
10. vervolf9 16.05.13 15:37 Сейчас в теме
Хороший программист — это тот, кто смотрит в обе стороны, переходя дорогу с односторонним движением.
Даг Линдер
11. megabax 194 16.05.13 16:28 Сейчас в теме
(10) Полностью согласен, везде нужна защита от дурака.
12. ula1c 16.05.13 17:06 Сейчас в теме
(10) vervolf9, Согрели душу -не считаю себя хорошим программистом, но честное слово, замечала за собой- смотрю в обе стороны, даже если точно знаю, что одностороннее движение -а вдруг:)
16. Поручик 4670 16.05.13 19:58 Сейчас в теме
(10) Я тоже не считаю себя хорошим программистом, но автоматом смотрю в обе стороны, даже если перехожу тропинку в лесопосадке. По-моему, эта привычка у многих горожан уже на генетическом уровне, иначе можно быстро закончить дни под колёсами шальной тачки.
14. expert.1c8 16.05.13 19:08 Сейчас в теме
Посмотрел профиль, много статей автора уже неактивны из-за минусов,
и это неудивительно )
15. krein 63 16.05.13 19:12 Сейчас в теме
Сама статья хорошая, минус за копипаст
Оставьте свое сообщение