В среде IT-специалистов уровень подготовки разработчиков принято разделять на три уровня:
Junior-разработчик (младшего уровня),
Middle-разработчик (среднего уровня)
Senior-разработчик (старший разработчик).
Вроде как понятно и четко, но на практике получается, что все понимают эти уровни по-разному и не всегда сам разработчик может определить свой уровень.
В данной статье попробуем разобраться в чем разница.
Так как сам я только начинающий программист, этот вопрос я адресовал своему институскому приятелю, который занимается программированием уже больше 15 лет, успевшему поработать в deutschebank и выиграть конкурсы dataseince google, nVidia. Короче, глубоко понимающему человеку.
Начнем разбор с самых первых шагов.
Обучение. Начинающему разработчику нужно изучить огромное количество информации, прежде чем начинать кодить самостоятельно.
Тут происходит деление на специалистов, получивших самостоятельное образование на курсах, и тех, кто получил базовые образование программиста в вузе.
У первых есть понимание в выборе профессии и мотивация, у вторых , скорее всего более фундаментальные знания процесса.
Следующий этап — стажер-разработчик. Знает синтаксис, знает некоторые конструкции, работает под постоянным присмотром более опытного коллеги и довольно часто допускает ошибки.
С опытом ошибок становится меньше и мы переходим как раз в стадию Junior.
Junior-разработчик. Работает в команде, выполняет простые задачи, так же как и стажёр - требует наставничества и проверки кода.
На следующий уровень выйдет Junior, который:
- Стремится к саморазвитию
- Энергичен и целеустремлен
- Умеет воспринимать критику
Middle-разработчик — это полноценный разработчик. У него есть определенный опыт, он может самостоятельно решать большинство проблем и не нуждается в наставничестве.
Важные качества Middle-разработчика:
- Понимание функций и структуры продукта
- Опыт разработки в нужной отрасли
- Уверенное владение стандартными инструментами и шаблонами и умение их применять
- В ходе разработки он учитывают не только свои интересы но и интересы команды.
- Умеют взаимодействовать с коллегами
Следующий этап.
Senior-разработчик. Ключевой специалист в команде.
Обладает всеми перечисленными выше качествами и пруфами. Но так же ....
- Может точно оценить сложность задачи.
- Имеет опыт выполнения сложных проектов.
- Пишут понятный и простой код
Из этого следует что ступень Seinor это в большей степени опыт и усердие.
Существут деление и по временному признаку.
Например, до 1-2 лет— junior, от 2 до 5 лет middle, больше 5 лет senior. Подход поверхностный, но не лишён логики.
С каждым днём работы программист пишет все больше строк и тем самым набивает руку и получает опыт.
Не всегда на практике этот подход работает.
Заключение
Разница между Junior- и Senior-специалистом основывается не только на опыте, но и отношению к работе и команде, а так же пониманием продукта и целей проекта, умением брать на себя ответственность за реализацию.