7 этапов в жизни программиста

  Александр Булаев  | 

  Обновл. 11 Авг 2019  | 

 317

В этой статье мы рассмотрим 7 этапов в жизни каждого программиста и то, с чем он сталкивается на каждом из них.

Нулевой этап: Невежда

Прежде, чем сделать свой первый шаг, заблудший в мире программирования даже не понимает, что это за зверь такой «программирование». Он пользуется компьютером/ноутбуком, но даже не догадывается как это всё работает. Ему кажется, что процесс создания игр — это что-то похожее к съёмке фильма или к написанию книги. И, если кто-то спросит его о том, как это всё работает, то его мозг сразу же даст сбой так, как если бы его спросили почему теория струн требует 10 измерений.

Этап №1: Охваченный благоговением


Теперь наш герой знает, что программисты существуют, но не уверен, что понимает, чем они всё-таки занимаются. Догадывается, что их профессия предполагает нажимания каких-то клавиш на клавиатуре и, возможно, движение мышью. Он понимает, что есть какие-то «программы», какой-то «код», но откуда это всё взялось — без понятия. На этом этапе, люди, которые уже этим занимаются, кажутся для него богами, неуязвимыми в своём мастерстве, с ценнейшими в жизни навыками. Новичку кажется, что желание достичь этого мастерства — это равноценно обрести навыки сгибать вилки с ложками силой мысли или научиться управлять космосом. Эта чёрная магия недоступна для таких смертных, как он.

Этап №2: Неуклюжий

Он пишет свою первую программу. Может это будет «Hello, world!» на С++, может какой-то небольшой калькулятор на чёрном Basic-е, или, возможно, даже JavaScript окажется в цитадели тёмных искусств начинающего программиста. И сколько же открытых дорог перед нашим героем на этом этапе? 101010.

Этап №3: Открытие


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

Этап №4: Безумие

Он опьянён своей новой силой, кажется, что весь мир принадлежит ему и был просто создан для выполнения его команд и желаний. Каждый раз он всё лучше понимает то, что в основе всего лежит код и чувствует себя от этого безгранично мощным. Все задачи кажутся решаемыми и всё, так или иначе, можно запрограммировать. У нашего героя в вооружении некий «молот Кода», который, пока ещё, ограничен в своих возможностях. Для него все задачи похожи на «Задачу о восьми ферзях».

Этап №5: Методологии


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

   Он может впасть в отчаяние, что равноценно «сдаться».

   Он может впасть в заблуждение.

   Или, наконец, обнаружит «методологию» и жадно начнёт проглатывать об этом книги, попутно «программируя» в UML.

Этот этап опасен, так как методологический мир — это всё равно что мифологический, со своими русалками, драконами, горгонами и другими сказочными существами.

Этап №6: Прагматизм

Придётся перетерпеть ещё больше боли. Он, наконец, поймёт, что не существует волшебной таблетки. Да, это тяжело, и он начнёт это понимать. Он обнаружит, что самое важное — это научиться делать проекты с максимально возможным уровнем качества в соответствие с дедлайнами. Теперь он может оценивать проекты исходя не из какой-то методологии, а исходя из собственного опыта, потому что ранее он уже сталкивался с подобным. Его пояс уже обвешен многими инструментами, и он относится ко всему новому с подозрением. Он становится закрытым и токсичным.

Этап №7: Превосходство

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

Заключение

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

Не все программисты идут по одному и тому же пути, и не все аспекты работы программиста будут развиваться с одинаковой скоростью или даже в одном направлении. Вместе с этой прискорбной неопределённостью приходит и понимание того, что мы можем распознать какой-то из этапов выше в своей профессиональной жизни, только если мы взобрались ещё на 2 этапа выше. Таким образом, становится понятно, что программист, находящийся на седьмом этапе никогда по-настоящему не узнает, что он «превосходящий» (хотя может это и подозревать), и всегда будет сомневаться в прагматизме своих решений.

Адаптированный перевод с cowboyprogramming.

Оценить статью:

Звёзд: 1Звёзд: 2Звёзд: 3Звёзд: 4Звёзд: 5 (13 оценок, среднее: 5,00 из 5)
Загрузка...

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

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