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