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

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

Вступайте в нашу телеграмм-группу Инфостарт

См. также

О жизни Россия Бесплатно (free)

Личная история смены профессии — честно и с юмором. Как решиться на первый шаг, что помогло на старте и почему даже отчёты в 1С могут приносить радость.

17.07.2025    2496    user2154904    11    

52

О жизни Бесплатно (free)

В данной статье я хочу поделиться своим видением обеих направлений разработки, сравнить их и дать свою субъективную оценку, а также рассказать историю ИТ в общих чертах за последние 5 лет, как ИТ пузырь начал раздуваться и как он в конце концов лопнул.

11.07.2025    3934    hexhoc    25    

55

О жизни Россия Бесплатно (free)

Для гениального программиста 1С Аркадия Скворцова это должно было стать рутинной отладкой. Но база данных НИИ, занимающегося «стабильностью пространственно-временного континуума», оказалась не так проста. Что скрывается за строками кода, где вместо «ПриходТовара» значится «ПеремещениеМатерии», а в регистрах накапливается «ЭнтропияВселенной»?

19.05.2025    2668    vet7777    10    

38

О жизни Россия Бесплатно (free)

Данная статья сугубо для раздела «О жизни», но может оказаться полезна многим членам сообщества. Все описанное ниже соответствует актуальному российскому законодательству на момент публикации статьи. У вас нет и в ближайшее время не предвидится детей возрастом до 1.5 лет? Вспомните о родственниках / друзьях / коллегах / знакомых, у которых они есть, и отправьте ссылку на эту статью — она может быть им чрезвычайно полезна. Распространите среди жильцов вашего ЖЭКа, как говорилось в одном классическом произведении. Помните, что, ставя плюсы к статье, вы поддерживаете её автора!

01.07.2024    8672    madonov    48    

55

О жизни Linux Системный администратор Программист 1С v8.3 Россия Бесплатно (free)

Использование Linux в качестве основной ОС для программиста 1С, возможно ли это? Решил поделиться личным опытом работы перехода на эту систему. В статье моя история без технических деталей максимально простым языком. И, спойлер, да, жизнь на Линуксе для разработчика 1С возможна и с каждым годом становится всё комфортней. Статья рассчитана на людей, с Линуксом не знакомых, специалистов прошу не кидаться помидорами.

16.05.2024    9176    soulner    34    

51

О жизни Россия Бесплатно (free)

Подводим итоги работы в 1С за 2023 год. Все о вас: 4 подробных раздела с цифрами, графиками и ужасными цветами диаграмм (должна же где-то быть стабильность).

08.02.2024    32780    Neti    86    

123

О жизни Бесплатно (free)

Прочитав название публикации, мысль возникает о свадьбе... Но речь не об этом!

25.08.2023    4383    biimmap    24    

51
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Ibrogim 1349 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 195 16.05.13 20:48 Сейчас в теме
(13) expert.1c8,
Автору советую вместо ссылки на свой сайт поставить эту ссылку с Хабра на оригинал,
так будет более честно..

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

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

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

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

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


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

(0) Если на твоём сайте дейсвительно чужие статьи, смотри, как бы не нарваться на грубость.
6. Yashazz 4865 16.05.13 12:17 Сейчас в теме
Уже по анонсу видно, что все понятия свалены в кучу. Разные это вещи - постановка задачи, архитектура, кодинг, внедрение. Быть хорошим везде по нашим временам реально лишь на некрупных проектах, остальное есть вопрос специализации, а стало быть, каждому своё и каждый "хорош" в своём деле. Вот кабы статья была "Как стать хорошим программистом". А то мне это сильно напоминает статью типа "Как стать хорошим менеджером" - вроде и обо всём, а ни о чём.
7. Irek-kazan 16.05.13 12:21 Сейчас в теме
автор молодец, старался. Но статья, мне показалось, из серии книжек "Как заработать миллион"
8. Ibrogim 1349 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 195 16.05.13 16:28 Сейчас в теме
(10) Полностью согласен, везде нужна защита от дурака.
12. ula1c 16.05.13 17:06 Сейчас в теме
(10) vervolf9, Согрели душу -не считаю себя хорошим программистом, но честное слово, замечала за собой- смотрю в обе стороны, даже если точно знаю, что одностороннее движение -а вдруг:)
16. Поручик 4595 16.05.13 19:58 Сейчас в теме
(10) Я тоже не считаю себя хорошим программистом, но автоматом смотрю в обе стороны, даже если перехожу тропинку в лесопосадке. По-моему, эта привычка у многих горожан уже на генетическом уровне, иначе можно быстро закончить дни под колёсами шальной тачки.
14. expert.1c8 16.05.13 19:08 Сейчас в теме
Посмотрел профиль, много статей автора уже неактивны из-за минусов,
и это неудивительно )
15. krein 64 16.05.13 19:12 Сейчас в теме
Сама статья хорошая, минус за копипаст
Для отправки сообщения требуется регистрация/авторизация