Стадии карьеры в сфере разработки программ

Перевод статьи «The Stages Of Your Software Development Career».

Стадии карьеры в сфере разработки

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

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

Важные соображения

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

Каждая стадия базируется на предыдущих.

Названия стадий совершенно необязательно соотносятся с названиями должностей, которые вы можете занимать. Человек, занимающий позицию сеньора, на самом деле может быть еще джуниором (по уровню знаний и опыта).

Да, порой люди получают подобные повышения просто потому, что у них за плечами Х лет работы в данной сфере, а не потому, что у них есть необходимые знания и навыки. Или они могут работать в одной компании так долго, что им просто дают «лучший» тайтл в виде поощрения. Я уверен, все вы такие ситуации наблюдали.

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

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

1. Кодер (Coder)

Кодер это, в общем-то, любитель. Относительно кодера будут истинными следующие утверждения:

  • Знает синтаксис языка программирования (возможно даже очень хорошо!)
  • Может самостоятельно создавать маленькие проекты вроде видеоигр, приложений и т. п.
  • Это хороший «решатель» проблем.
  • Работает в одиночку.
  • Не получает платы за свою работу (не занимается разработкой на профессиональном уровне).

2. Разработчик-джуниор (Junior Developer)

В начале своего пути джуниор имеет много общего с кодером. Но джуниор входит в сферу разработки как оплачиваемый профессионал и работает в команде с другими профессионалами.

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

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

3. Разработчик среднего уровня (Intermediate Developer)

Разработчик среднего уровня

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

На этой стадии разработчик приобретает (среди прочего):

  • Понимание базовой архитектуры системы
  • Хорошие навыки использования профессионального инструментария
  • Базовое понимание шаблонов проектирования, кода «с душком» и т. п.
  • Понимание, как успешно работать в команде.

4. Разработчик-сеньор (Senior Developer)

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

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

Вот некоторые отличительные черты сеньоров:

  • Они разбираются в шаблонах проектирования, коде «с душком», рефакторинге и т. п.
  • Знают архитектурные парадигмы, такие как предметно-ориентированное проектирование (Domain-driven design), Event Sourcing, CQRS и т. д.
  • Имеют некоторый опыт развертывания и обслуживания серверов. Разбираются в балансировке нагрузки, пуле соединений и т. д.

Да, сеньоры много чего знают!

Примечание относительно различных направлений

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

Ведущий разработчик

5. Ведущий разработчик (Lead Developer)

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

6. Техлид (Tech Leader)

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

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

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

Короче говоря, это эксперты по технологиям и очень опытные коммуникаторы.

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

[customscript]techrocks_custom_after_post_html[/customscript]

[customscript]techrocks_custom_script[/customscript]

2 комментария к “Стадии карьеры в сфере разработки программ”

Оставьте комментарий

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

Прокрутить вверх