Советы новичкам

Новичкам дают столько разных советов, что иногда трудно понять, с чего стоит начать. Однако, 5 правил, представленные в этой статье, являются фундаментом, на котором строится все остальное.

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

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

В программировании есть только одно по истине фундаментальное занятие: написание кода. Для того, чтобы преуспеть в этом, нужно писать много кода. Эта основа может стать либо почвой для роста, либо упражнением для постоянной практики ограниченного набора навыков. Чтобы не допустить последнего, необходимо:

Читать много кода. В особенности, читать код, написанный отличными программистами. Не просто хорошими программистами, как ваш знакомый, а отличными программистами. В наше время, благодаря огромному количеству «open source» проектов, найти такой код очень легко. Когда я изучал Java, то читал код проекта Tomcat и CI-сервера, Cruise Control. С тех пор я прочел еще немало хорошего кода.

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

Изучите свои инструменты вдоль и поперек. На мой взгляд, больше всего времени в процессе программирования тратится не на отладку или переписывание кода, а на бесчисленное количество секунд, которые разработчики теряют тут и там, не зная всех возможностей своих инструментов. Я говорю о среде проектирования (IDE), языке, системе сборки и консоли. Из вышеуказанного самыми важными являются IDE и язык. После нескольких недель практики вы должны запомнить каждое сочетание клавиш, используемое в IDE, чтобы касаться мыши только тогда, когда это может сэкономить множество ударов по клавишам. Если вы знаете горячие клавиши, вы знаете и команды. Если же вы пользуетесь только мышкой, то вы знаете только те меню, в которых вам приходится кликать по одной и той же паре пунктов. Знание своей IDE — дело исключительно дисциплины.

Знание крупномасштабных языков, таких как Java или C++ требует гораздо больше, чем просто дисциплина. Они огромны. И их библиотеки огромны. Лучшим подходом, на мой взгляд, является чтение. Читайте код, который использует функционал, которого вы не знаете, и вы будете искать возможности использовать этот функционал. Книги, в отличие от блогов, это еще один великолепный источник знаний. Читайте о возможностях, находящихся на границе тех, что вы используете сейчас, и очень скоро вы увидите, как расширяется эта граница. Знание команд консоли и систем сборки делает вас желанным членом команды, который не тратит время впустую из-за незнания важных команд.

Продумывайте свой код до того, как собираетесь его написать. На мой взгляд, это самый сложный пункт в списке. С другой стороны, он, возможно, приносит наибольшую пользу. Я говорю не о формальном проекте — учитывая ваш небольшой опыт, это вряд ли понадобится. Но вам следует продумать свой код, не только вынашивая его в голове. Проще всего создать небольшой документ (я часто использую графическую диаграмму): Что необходимо для этого кода? Как он будет реализован? Что я должен знать из того, что я еще не знаю? Какие мне понадобятся объекты, и какие объекты будет необходимо создать? Запишите всё это. И только после этого начинайте кодить. Вы увидите, что вам будет гораздо проще писать и документировать код. Храните свои записи — это отличный справочный материал.

Пишите много кода и пересматривайте его. Если в вашей компании не занимаются анализом кода (code review), делайте это самостоятельно. Найдите лучшего программиста, который сможет дать вам полезный совет, который будет услышан и понят вами. Не будьте назойливым, но и не избегайте этого из-за своей скромности, занятости или чувства, что у вас и так всё в порядке. Пересмотр кода должен стать частью вашей жизни как программиста. Будьте креативным. Попробуйте посвятить вечер парному программированию с кем-нибудь более опытным. Важно отметить, что вам необходимо слышать мнение о вашей работе, поскольку вы не сможете предложить его себе сами.

Пишите тесты в процессе написания кода. Этот совет, возможно, единственный противоречивый пункт в этом списке. Я не продвигаю разработку через тестирование (test-driven development). Но я продвигаю понимание того, что ваш код работает в большинстве сценариев, с которыми ему придется столкнуться. Начните с модульных тестов и проверяйте новый код с помощью граничных значений. Например, сработает ли ваша функция, если получит отрицательное значение или максимальное целочисленное выражение? Если нет, выдаст ли она информативную ошибку или просто сойдет с ума? Если ошибка не предусмотрена, то ограничили ли вы диапазон допустимых значений необходимыми условиями? Если да, проверьте эти условия. Используйте план, составленный ранее, чтобы написать «заглушки» и начните тестировать новый код с объектами, которые вам еще предстоит написать. Это позволит решить некоторые вопросы проектирования в имеющемся коде и в будущих объектах. Храните свои тесты и выполняйте их перед каждым сохранением, чтобы они могли заранее предупреждать вас о новом коде, который может испортить уже имеющийся код.

К этому списку можно добавить еще очень много советов и мудрых высказываний. Но это тоже является частью проблемы: вокруг столько советов, что становится трудно понять, с чего начать. Именно поэтому я намеренно ограничил мои рекомендации пятью пунктами. Если вы будете стараться придерживаться их, то вскоре заметите 2 вещи: вы сможете выполнять всё более масштабные и важные задания, и вы будете смущаться, глядя на код, который написали всего пару месяцев назад.

Оба этих ощущения являются признаками несомненного прогресса. Удачи!

Источник


Комментарии:

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>