2013-08-22
Карьера Web-разработчика крайне интересна своими взлётами и падениями. Амплитуда знаний и навыков настолько размашиста, что в течение своей карьеры разработчик проходит через целый квест с получением новых уровней и званий.
Стадия 1. Нуб
Мы все с теплотой вспоминаем самое начало своей карьеры; в этот период мы не имеем никакого представления о том, чем мы, собственно, занимаемся. Каждая новая строка в коде – отдельное приключение. Doctype? Чего-чего? Для чего, чёрт возьми, нужен <div>?
На этой стадии мы немного напуганы, заинтригованы, но при этом приятно взволнованы. Боже мой, сколько ж в этом мире существует языков?!
Возможно, самое главное преимущество этого этапа в том, что вы ещё не знаете, насколько глубока кроличья нора. Изучение HTML – это первые детские наивные шажки.
Стадия 2. Первые шаги в большой мир
Через неопределённый период времени вы наконец начинаете свой путь в мир программирования. Если первая стадия – это время вопросов «С чего же мне начать?», то на второй стадии вы потихоньку начинаете приобретать навыки. Синтаксис определения стилей в CSS до сих пор кажется тёмным лесом, но вы уже способны внести изменения в код-редакторе и видите, как они отражаются в веб-браузере. Крутое чувство!
Стадия 3. Полная фрустрация
Вы в огромном тёмном лабиринте, пытаетесь найти выход, выхватывая светом от фонарика лишь небольшие участки дороги. Каждый новый шаг для вас – надежда увидеть свет в конце туннеля. Но карьерная лестница в сфере IT действительно очень непредсказуема. Первые проблески света вы увидите ещё очень нескоро. Вы проведёте сотни часов в этой стадии, читая и перечитывая техническую литературу, отчаянно пытаясь найти смысл во всём этом безумии.
Чтобы не утонуть в этом болоте безысходности, утешайте себя тем, что каждый разработчик прошёл через это или ещё пройдет. Вы не одиноки. Помните об этом, и в конце концов вы перейдёте в следующую фазу.
Стадия 4. Моменты просветления
Одно из самых классных чувств на свете – это озарение. «До меня дошло!», «Как я раньше до этого не додумался!». Обычно эти прорывы случаются поздно ночью, пока Вселенная спит. Вы в восьмой раз прочли одну и ту же строку, и вот, наконец, поняли её!
На этой стадии вам наконец становятся ясны все те технологии и языки, которые вы изучали ранее.
Стадия 5. Хлипкий код
Это тоже весьма продолжительная стадия. На этой стадии вы успешно строите новые приложения и достигаете желаемого конечного результата, но вот исходный код отнюдь не столь изящен, как хотелось бы. На этом этапе в вашем коде десятки лишних строк, а до концепции тестирования вы ещё не додумались.
Но, по крайней мере, вы уже строите что-то новое! Хотя пока в GitHub лучше посылать запросы на изменения (pull requests), стараясь указывать на ошибки в документации и опечатки, не более того. Это тоже очень полезно.
Стадия 6. Копипаста
Стадия копирования крайне важна. Нет лучшего способа изучить хорошие техники кодинга, чем шпионить за кодом, который написали ваши кумиры. Даже если вы просто копируете их код строкой за строкой. Не чувствуйте вины за это: карьера каждого художника начинается с репродукций. К счастью, в GitHub эта форма «тихого подглядывания» реализована как нельзя удобнее. Конечно, настанет момент, и вы отойдёте от копирования. А пока — копируйте тех людей, кто вас вдохновляет, и начинайте работать над собственным стилем.
Стадия 7. Мачо
Вот сейчас вы начинаете вливаться в струю. Впереди ещё целое поле работы, но уверенность в своих силах растёт. Может быть, даже слишком быстро. Говорят, в первые годы вам не хватает знаний, чтобы понять, как мало вы на самом деле знаете…
Вам нужно устоять перед соблазном начать задирать нос. Это ни к чему не приведёт, а в будущем вы будете вспоминать своё поведение и сокрушённо покачивать головой. Как только вы захотите оставить саркастический комментарий на GitHub или Reddit в стиле «учись кодить, школота!», — лучше сдержите в себе этот порыв. Не так давно вы и сами были полным чайником. Помните об этом, не отбивайте у начинающих желание развиваться.
Стадия 8. Освоение Vim
Если вы когда-либо заглядывали за плечо коллеге-разработчику и удивлялись, с какой скоростью он работает в код-редакторе, скорее всего, этот разработчик использовал Vim. Чтобы его изучить, нужно немало попотеть, но зато после того, как вы его освоили – ваша работа будет выглядеть для других настоящей магией.
На этой стадии вы начинаете совершенствовать не только технику написания кода, но и технику построения рабочего процесса. Подбор инструментов при этом так же важен, как и сама техника.
Стадия 9. Когда код становится искусством
Примерно через несколько тысяч часов вы посмотрите на свой код, и почувствуете, что он — настоящее произведение искусства. В нём используется версионный контроль, он элегантен, легко тестируется, варьируется и читается. Возможно, в какой-то момент своей карьеры вы гордились своей способностью писать запутанный, загадочный, но функционирующий код. Применение всех возможных языковых примочек или скрытых возможностей — не признак хорошего разработчика. Сокращение сложной логической цепочки до одной строки — тоже нет. Наоборот, это говорит о самодовольном разработчике, не думающем о тех, кто будет заниматься кодом после него.
Код становится шедевром, когда для вас его читабельность становится так же важна, как и его функциональность. На этом этапе вы начинаете писать код для людей, а не для машин.
Стадия 10. Матёрый разработчик
Как только программирование становится для вас инстинктом, вы переходите на новую ступень своей карьеры. Вы больше не ограничены рамками языка или фреймворка. Вы просто видите проблему и выбираете правильный инструмент для её решения. Опытный разработчик понимает, почему прямой путь не всегда является верным. Каждая новая опция обсуждается с участниками проекта, иллюстрируется на вайт-бордах, записывается на бумаге, под неё подготавливаются тесты… И только потом пишется первая строка кода.
Вы стали зрелым, вдумчивым разработчиком, с которым хотят работать все. Поздравляем.
Стадия 11. Супер-стар
Немногие добираются до этого уровня. Это вершина горы. Помимо ежедневной работы вы регулярно выступаете на конференциях, играете роль тим-лида в бесконечных open source проектах, и находите время для участия в создании будущего веб-разработки, подготавливая материалы для рассылок и помогая новичкам в IRC. Вы пишете компиляторы и парсеры для развлечения.
Это вас называют ниндзя, хоть вы и ненавидите такие ярлыки. Вы больше, чем кто-либо, знаете, сколько ещё вам нужно узнать… Можно переходить к Стадии 1.
По материалам Net.Tuts.