Главная

Как стать Senior-разработчиком.

Узнайте, как вырасти из Junior в Senior разработчика.

Поделиться:
 

38+

Вступление

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

Ценный опыт

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

1. Делать ошибки.
2. Исправлять ошибки.
3. Учиться на ошибках.
4. Делиться ошибками с коллегами.
5. Вернуться к пункту 1.

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

Однако не стоит думать, что спустя какое-то время вы сами по себе станете Senior разработчиком. Не стоит полагаться на то, что +2 или +5 лет опыта в технологии, сделают вас сеньором. Вы наберетесь опыта только в том случае, если повторите цикл ошибок невероятно большое количество раз. Теперь давайте проанализируем качества, которые развиваются в этом цикле приобретения ценного опыта.

Исследование

Исследования — это фундаментальное требование для Senior разработчика, потому что на основе исследований в конечном счете проектируется решение сложных проблем. Именно так приобретается опыт. Сам факт исследования заставит вас больше узнавать о конкретной теме.

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

Нахождение ответов на все «почему»

Старшие разработчики никогда не принимают ответ «это всегда было так» или «потому что я так говорю». Хорошие разработчики постоянно задаются вопросом, почему проблемы решаются одним способом, а не другим. Это позволяет размышлять о процессах более глубоко и улучшать их по мере приобретения опыта.

Разработчика следует также оценивать количеством «почему», на которые ему удалось найти ответ. Хорошие разработчики пытаются решить не только свое «почему», но и “почему” других. В тот момент, когда у Senior разработчиков есть код или система, которая работает, но они не понимают как, они изо всех сил стараются понять, что происходит. Они ищут возможную ошибку/баг или изучают новую концепцию, дабы ответить на один простой вопрос: «Почему».

Наставничество

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

В тот момент, когда старший разработчик начинает наставлять младшего, взаимодействие происходит в обоих направлениях. Младший разработчик начнет прислушиваться к «военным историям» своего ментора, и, если ему любопытно (пункт 1), он начнет исследовать все самостоятельно, чтобы наметить свой собственный путь к тому, чтобы стать старшим разработчиком.

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

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

Признай, что не знаешь

Это очень популярная цитата, в которой говорится, что три самых трудных слова для человека — это не «я тебя люблю», а «я не знаю» (из книги Freakonomics).

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

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

Заключение

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

38+