Блог

7 этапов становления программиста




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



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




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



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




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



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




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



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




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



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




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



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


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

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

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

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




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



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




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



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




Заключение



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


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


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


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


Если вы чувствуете в себе силы и понимание кода, и вам очень хочется достичь мастерства, мы ждем вас здесь.

Жизнь компании