Романтический взгляд на разработку, или как программист нашёл путь к сердцу кода

2014-02-05

Итак, вы делаете свои первые шаги в программировании. Да, тот самый первый «Hello World» и классические «Введите 3 числа и выведите на экран их сумму», первые проблемы из-за пропущенных запятых, пробелов, неправильно употреблённых if...

Вы начали с этого:

 

Проходит время, вы начинаете лучше понимать логику процессов, и наконец создаёте свою первую программу, состоящую из 150 строк на чистейшем Java. 

«Да, в коде можно переломать все ноги, но ведь… 150 строк… Это так круто выглядит!»

Теперь-то вы наконец стали настоящим программистом? Или, может, даже разработчиком ПО?

А потом вы начинаете работать над своим первым проектом программного обеспечения – ну, к примеру, над какой-нибудь системой банковского софта. Вы заканчиваете проект, а ваше сердце переполнено чувствами: чёрт возьми, уже 1 500 строк кода!

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

«Что это, и кто это сделал?»

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

Вот тут вы и пройдёте через три основные фазы развития программиста.

 

Фаза 1. Изучение новых технологий

Вы получаете работу в интересующей вас компании, и вам кажется, что вы готовы ко всему (после полутора тысяч строк — ещё бы!). Менеджер проекта начинает перечислять, какие технологии используются в их компании: J2EE, JPA, Hibernate, JSF, HTTP, FTP, JavaScript, Jquery, AJAX... Ничего шокирующего, думаете вы, и переходите к следующему этапу.

 

Фаза 2. Компания знакомит вас с существующими системами

Вы, подкованный теоретически и согреваемый мыслями о своём каком-никаком, но опыте, чувствуете себя прекрасно. Пока менеджер не открывает перед вами ворота в среду разработки компании. Их система написана на Java 10 лет назад и состоит из 700 тысяч строк незадокументированного кода.

Менеджер показывает вам это со словами: «Ну вот, ты будешь нести ответственность за эту систему. Вот код, изучай. Удачи!».

И вы смотрите на код. Потом ещё раз смотрите на код. И выглядите вы примерно так:

Вот сейчас вас начинают посещать сомнения в логичном устройстве Вселенной. Всё прах и тлен, ничто не имеет смысла. Все ваши знания — тщета и пустота.

«Нет, серьёзно, что это за хрень такая? Кто вообще может разобраться в этом ветхом бессмысленном корявом коде?», — думаете вы.

Код для вас на этом этапе выглядит так:

Вы в отчаянии. Всё, чему вы научились на факультете компьютерных технологий и на codecademy, оказалось совершенно неприменимо к суровой реальности. Но делать нечего, вы снова садитесь за код, и после миллионной попытки магическим образом переходите к третьей стадии.

 

Фаза 3. Просветление

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

Даже без единого комментария код многое может вам рассказать.

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

Так вы, молодой начинающий инженер, вступаете в диалог с этим гигантским чудовищем, которое само подсказывает вам тропинки к его сердцевине.

Вот теперь код системы вашей компании обретает очертания:

Эрик Филсон говорил:

 

«Искусство программирования состоит в том, чтобы находить порядок там, где остальные видят только хаос».

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

Шаг за шагом, строка за строкой, команда за командой, — вы упорядочили хаос.

Поздравляем.

Перевод: Люся Ширшова. По материалам замечательной статьи на Medium


Читайте также: 

Может ли клиент оценить качество кода?

Как без диет и изнурительных занятий научить коллег не отвлекать программиста? 

Математика и программирование: нужны ли они друг другу?