Карьерный рост: в чем разница между Junior, Middle и Senior?
В форме вопрос-ответ кратко обсуждаем ключевые особенности карьерного роста разработчика и отличия позиций Junior, Middle и Senior.
Имеется ли российский аналог разделения позиций Junior, Middle и Senior?
В нормативных документах существует разделение инженеров-программистов на квалификации третьей, второй и первой категорий. В этих документах даются формальные соответствия образования и стажа работы, положенное для каждой категории.
Почему чаще применяют разделение на Junior, Middle и Senior?
Эта классификация по понятным причинам удобнее для работы в международных компаниях. Также она более гибко отражает разделение в рамках требований каждой конкретной компании. Так что соответствующие границы субъективные, плавающие и зависят от места работы.
Существует ли какой-то способ объективизации разделения позиций?
IT – это живой, развитый рынок, и наиболее простой тип оценки уровня – рыночный. Требования к уровню в конкретной области можно определить из вакансий и результатов собеседований.
Может ли данное разделение приводить к занижению зарплаты?
Да. Такое грубое категориальное разделение никогда не отражает имеющийся опыт. Но чем более формализованы критерии разделения позиций в компании, тем прозрачнее карьерный рост. При этом распространена ситуация, что джуниор в одной компании зарабатывает больше, чем мидл в другом месте.
Зависит ли скорость карьерного роста от области программирования?
Зависит. Чем специфичнее область, тем медленнее рост. То есть, например, в вэбе в среднем становятся Senior быстрее, чем в геймдеве. Реальный уровень определяется разнообразием задач в практике программирования. Распространены случаи, когда специалисты делают в течение длительного времени однообразный код, и остаются по опыту на позиции Junior. Зачастую это вина не только самих разработчиков, но и компании.
Что в среднем представляют собой позиции Junior, Middle и Senior?
Junior: студент старших курсов или выпускник, без существенного опыта работы, обычно 0.5-1.5 года реального опыта. Решает стандартные задачи с незначительными рисками. Джуниору нужно помогать и проверять результаты, не давать слишком сложные и длительные задания. После выполнения приходится регулярно делать code review. Владение предметной областью неполное. Нужно понимать, что часть задач требует дополнительного времени для освоения инструментария. Однако человек должен сам к этому стремиться.
- Как стать Junior-разработчиком и устроиться на работу за 4 месяца
- Путь JavaScript Junior: подборка лучших ресурсов для обучения
- Говорят и показывают сеньоры: обучение Junior Data Scientist
Middle: Основной работник, умеющий самостоятельно выполнять поставленные перед ним задачи. Обычно 1-3 года опыта. Простые задачи можно не ревьюить. Разработчик может делать длительные таски на 1-2 недели и принимать архитектурные решения. Справляется с нестандартными задачами, а стандартные делает быстрее и с меньшим количеством багов, чем джуниор. Предметной областью владеет достаточно, чтобы обсуждать с коллегами, спорить и находить решения. То есть уверенно знает ключевые технологии.
Senior: работник, хорошо знающий предметную область. Опыт фултайма 4-7 лет. Проводит code review, мыслит проектом на уровне архитектуры и понимает долгосрочные последствия технических решений. Умеет предложить глобальные решения и (если это имеет смысл) альтернативные стеки технологий. Нередко совмещается с управляющими должностями.