Все началось с забавного поста, который я прочитал на Stackoverflow.

Наткнулся на StackOverflow на какую-то дуру, которая, мол, сначала абы код пишешь, потом много комментируешь. Надеваешь формальные конструкции, потом еще что-то, а на вершине профессионального роста — снова. Я хихикнула, а потом подумала о том, как это было. Так и случилось.

Самое начало: если бы это работало

Когда человек только начинает осваивать кодирование, его главный принцип звучит так: лишь бы работало и запускалось. Из-за этого все идет подряд:

  • готовые фрагменты кода из StackOverflow;
  • примеры из материалов и учебников;
  • избыточные и громоздкие конструкции;
  • переменные, которые объявлены, но никогда не используются.

Код либо выглядит предельно просто и «в лоб», либо состоит из бредовых конструкций и решений, в которых крайне сложно разобраться.

На этом этапе полезно изучение лучших практик программирования, подключение готовых библиотек и применение проверенных паттернов и алгоритмов. Итак, разработчик переходит к следующему этапу.

Правильный код

Через какое-то время программист набивает руку и начинает писать «правильный код»:

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

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

Код выглядит как пример программирования: идеальные комментарии и все логично и гармонично. Ни одно отдельное решение не вызовет вопроса: «Почему это делается именно так».

Библиотеки и фреймворки

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

  • Поиск лучшей библиотеки и фреймворка;
  • куски чужого кода в вашей программе, скопированные из блога разработчика фреймворка;
  • переписывание старых программ под новый фреймворк.

Если увлечься, то доходит до того, что программист берется за задачу только после того, как найдет для нее конкретный фреймворк. Если это JavaScript-программист, то на этом этапе он может зависнуть на годы или навсегда — каждую неделю выходят новые js-фреймворки.

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

Совместимость, сообщество и внешние службы

К этому моменту разработчик уже имеет большой опыт:

  • умеет решать большинство проблем, возникающих в разработке;
  • знает, что и как применять для получения желаемого результата;
  • его код работает сразу и почти без ошибок.

Когда программист достигает этого уровня, он понимает, что личное и самостоятельное развитие — это серьезно. Тем не менее, отличные продукты нуждаются в поддержке извне, совместимости с другими сервисами и возможности работы с API.

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

15 лет практики: если бы это сработало

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

Все, что делает программист на этом этапе — пишет рабочий код так, как ему удобно.

При этом в его коде можно найти следующее:

  • фрагменты кода из StackOverflow, потому что это быстрее;
  • однобуквенные переменные, потому что так проще;
  • избыточные команды, потому что он быстрее, а при компиляции компьютер все равно его оптимизирует;
  • Один-два комментария на весь код, потому что остальное и так понятно. Что еще тут объяснять?

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

Подпишитесь на DDIntel Здесь.

Посетите наш сайт здесь: https://www.datadriveninvestor.com

Присоединяйтесь к нашей сети здесь: https://datadriveninvestor.com/collaborate