Как улучшить навыки программирования?

Мартин Фаулер: «Любой дурак может написать код, понятный компьютеру. Хороший программист пишет код, понятный человеку». Давайте разберемся, какие привычки полезны, какие практики важны и что вообще нельзя упускать из виду, если ваш путь — не заурядный, а хороший программист.

Занимайтесь практикой

  1. Пишите много программ. Желательно — больших. Многие из лучших практик становятся очевидными только тогда, когда вы сталкиваетесь с типичными ошибками.
  2. Вы можете писать много небольших программ. Это может ускорить развитие некоторых из ваших навыков программирования, но не всех.
  3. Вносите изменения в программы, написанные другими программистами. Изучение незнакомого кода — ценный навык. Без него вы не сможете заниматься отладкой. Этот навык будет трудно приобрести, если вы будете всегда писать программы с нуля. Попытки разобраться со сложной задачей помогут вам научиться создавать сопровождаемый код. И это пригодится в работе над более крупными программами.
  4. Пишите меньше нового кода, больше занимайтесь тестированием уже написанного.

Применяйте рефакторинг

  1. Изучайте рефакторинг.
  2. Уделяйте достаточное количество времени рефакторингу, даже если программа работает отлично.

Серьезно относитесь к дизайну кода

Интересуйтесь и изучайте паттерны проектирования.

Выполняйте инспекцию кода

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

Учитесь у хороших программистов

  1. Изучайте лучшие программы. В любом языке программирования есть образцовые программы.
  2. Адаптируйте хороший код под свои нужды.
  3. Работайте в команде с хорошими программистами. Сядьте на колени и учитесь. Не настаивайте на том, чтобы коллеги применяли практики, к которым привыкли вы.

Смотрите за горизонт

  1. Изучайте несколько языков программирования. Каждый язык, который вы изучите, натолкнет вас на мысль о том, как решать задачи с использованием других языков лучше. (Наихудшие программисты, из тех, кого я знаю, думают, что язык X является единственным, который нужно знать.).
  2. Познакомьтесь с различными видами программирования: процедурное, функциональное, объектно-ориентированного и т. д.
  3. Изучите несколько операционных систем. Учитесь писать переносимый код.

Читайте

  1. Читайте книги о качестве кода, например, «Совершенный код». Это поможет вам сэкономить много времени.
  2. Купите книгу «Программист-прагматик», прочитайте ее, изучите, проникнитесь ей.
  3. Вообще говоря, читайте лучшие книги о программном обеспечении.
  4. Читайте книги и на другие темы: философия, история, искусство... Это напрямую не повлияет на программирование как таковое, но сделает вас умнее, что точно пригодится.

Изучайте предметную область

  1. Возьмите в привычку понимать предметную область. Попробуйте составить карту мыслей, описывающих проблему. Потратьте достаточное количество времени, чтобы в ней разобраться. Хорошее знание предметной области очень важно для создания хорошего кода.
  2. Тесно контактируйте с конечными пользователями. Получайте обратную связь о программном обеспечении, которое вы создаете. Не имеет значения, сколько алгоритмов или структур данных вы знаете, если вы не делаете чью-то жизнь лучше.
  3. Учитесь у своих пользователей. Постарайтесь понять, что им нужно. Если вы будете владеть предметной областью, требования, поступающие от пользователей, будут иметь больше смысла, и вы станете ближе к возможности прийти к результату, когда программа будет выполнять именно те функции, которые пользователи хотели.

Оценивайте себя и свои возможности

  1. Если кто-то жалуется, что не понимает ваш код, выясните, что именно не понятно. («Этот парень идиот», как правило, не является причиной.)
  2. Каждый раз, когда вы исправляете ошибку, думайте в первую очередь о том, что может помочь вам избежать ее в следующий раз. Некоторые ответы лежат в принципах качества хорошего кода, другие — в надлежащей практике программирования. Кстати, просто перестаньте думать, что ошибки появляются только из-за технических неполадок или вашей усталости. Ошибки распространяются в плохо написанном коде. (Но помните, что отдых и концентрация на требованиях к программе очень помогают.)
  3. Учитесь бросать старые привычки и принимать новые.
  4. Делайте перерывы. Трудно следовать каким-либо из данных рекомендаций, если вы пишете одну и ту же программу целую неделю.

Статья является вольным переводом публикации «How to Improve Programming Skills». С оригиналом статьи можно ознакомиться на сайте консультационного центра Cunningham & Cunningham, Inc. Авторы — контрибьюторы Крис Джонсон, Кристоф Тибо, Кэти Лукас и другие.