В описаниях вакансий IT-сферы часто можно встретить одно из трех понятий – junior, middle, senior. Такая градация уровней компетенций разработчиков хорошо знакома специалистам, а людям «со стороны» может показаться непривычной. В этом материале разберемся, что значат эти понятия, как переводятся и почему так называются, какими знаниями должен обладать профессионал и сколько времени займет весь путь от новичка до опытного разработчика.

Кратко: в чем разница

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

Итак, кратко объяснить, кто такие и чем отличаются друг от друга специалисты уровней джуниор/мидл/сеньор можно так:

  • Junior разработчик — это начинающий специалист (выпускник университета или онлайн-курсов), у которого совсем нет или очень мало опыта работы с кодом. Обычно ему приходится много учиться под присмотром старших коллег. 
  • Middle разработчик — это опытный специалист, способный самостоятельно решать разные задачи. Также он может проводить ревью кода, контролировать джунов и давать ценные замечания. 
  • Senior разработчик — больше наставник и советник, чем разработчик. Он владеет всем необходимым для проекта стеком технологий и пишет код, понятный как компьютеру, так и другим разработчикам. Обладает авторитетом среди коллег и берет на себя роль технического руководителя или лидера команды разработки.

Сразу оговоримся, что в каждой конкретной компании свое понимание разницы между junior, middle, senior – градация включает как опыт работы, так и требуемые знания. Одни работодатели берут на позицию джуна разработчика, у которого вообще нет опыта, другие считают таковым только сотрудника, способного работать самостоятельно. Рекрутинговые сервисы ориентируются на опыт, но и их критерии не могут считаться универсальными. В частности, на одном месте работы один сотрудник может вырасти до middle-позиции за год-полтора, а на другом он не достигнет этого и за десятилетие. Поэтому мы будем ориентироваться на средние показатели, но постараемся сохранить объективность, а заодно расскажем, почему так называется специалист каждого уровня.

Junior-разработчик

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

  • Студенты и выпускники технических специальностей вузов
  • Выпускники онлайн-курсов (кстати, наш сайт онлайн-школы Ratingoff-Schools.ru поможет выбрать оптимальную обучающую программу)
  • Самоучки и те, кто приходит в разработку из смежных сфер (тестирование, веб-дизайн, геймдизайн и т.д.)

У таких сотрудников обычно нет опыта коммерческой разработки, или он минимален. Скорее всего, они работали над учебными проектами или пытались реализовать собственную идею. Поэтому в компании джуна «прикрепляют» к более опытному наставнику – миддлу или сеньору.

Круг задач

Junior-специалисту поручают простые задачи, с которыми он точно справится. Это может быть создание или изменение различных элементов интерфейса, исправление ошибок, написание несложных скриптов и программ. Более сложные задачи junior может выполнять, но обязательно под контролем наставника. Но не стоит ждать от него высокой скорости и качества работы. Код, написанный джуном, может быть рабочим, но не оптимальным и не самым быстрым. Начинающий специалист пишет так, чтобы функционал выполнялся, а о красоте и лаконичности программы пока не думает. 

Что умеет джун-разработчик

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

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

Также встречается дополнительное разделение младших специалистов на Junior+ и Junior++. Считается, что такая интерпретация помогает идентифицировать тех, кто максимально приблизился к Middle-уровню, и тех, кто уже способен работать самостоятельно, но пока не обладает компетенциями для перехода на следующий «уровень».

Middle-разработчик

Middle-разработчик – следующий уровень «эволюции» IT-специалиста. На эту позицию претендуют сотрудники с опытом работы около 2-5 лет: они способны самостоятельно определять последовательность действий для выполнения задачи, могут дать совет новичку, но не прочь выслушать комментарий сеньора. Он уже может нести ответственность за свои действия и за новичка, над которым берет шефство.

Круг задач

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

Что умеет специалист среднего уровня

Миддл-специалист уверенно владеет как минимум одним языком программирования и парой фреймворков. Он разбирается в архитектуре продукта, контекстах и процессах, происходящих в команде. Большую задачу способен самостоятельно «декомпозировать» на более простые и даже делегировать часть из них джуну. Также ему свойственны такие компетенции:

  • Способность выполнять роль наставника
  • Идентификация некорректных задач или некачественного кода
  • Успешное решение задач среднего уровня 
  • Способность вносить предложения по процессам и архитектуре проекта

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

Senior-разработчик

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

Круг задач

В крупных компаниях сеньор может не заниматься написанием кода, а выполнять функции консультанта и контролировать младших разработчиков. Беглого взгляда на код ему будет достаточно, чтобы исправить ошибку, найти проблему и подсказать ее решение. В зависимости от своих интересов и склонностей сеньор может стать техлидом или тимлидом. В первом случае он решает суперсложные технические задачи и помогает остальным сотрудникам. Во втором – руководит командой разработчиков, организует их работу и следит за ее эффективностью. В любом случае, tech lead или team lead – это дополнительные возможности для роста senior-специалиста, а о разнице между ними мы недавно писали в нашем блоге.

Что умеет сеньор

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

Несмотря на то, что название уровням джун/мидл/сеньор дали термины, ассоциирующиеся с возрастом (молодой, средний, пожилой), в реальности все не так. Иногда на позицию junior приходит сотрудник среднего возраста, который просто решил сменить профессию. Бывает и обратный процесс – сеньором может стать программист, которому нет и 30 лет. Далее рассмотрим, как происходит продвижение между уровнями. 

Как происходит переход между уровнями

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

  • Уровня компетенций самого разработчика (если вы не хотите изучать новое, путь до мидла будет долгим);
  • Требований работодателя (нередки случаи, когда джуниор переходит в другую компанию сразу на позицию middle, и наоборот);
  • Окружения начинающего разработчика (в компании сильных специалистов, открытых для передачи знаний, расти проще и быстрее, чем в коллективе, где никто не помогает новичкам);
  • Финансовой ситуации в компании (иногда у работодателя просто нет возможности повысить сотруднику зарплату, поэтому он держит его на позиции junior).

В среднем прокачать навыки и приблизиться к среднему уровню можно за год. Иногда этот процесс занимает всего несколько месяцев, иногда – несколько лет. Официальное присвоение нового «звания» происходит, если джун:

  • отработал положенное количество времени;
  • сдал квалификационное тестирование;
  • завершил проект повышенного уровня сложности (тем самым подтвердил свои знания и навыки);
  • перешел в другую компанию и успешно прошел тестовое задание на middle-позицию.

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

Как стать сеньором

Переход от middle к senior – еще более размытый, и не всегда понятно, как определить разницу между ними. Как и на предыдущем уровне, здесь все зависит от разных факторов. Например, в крупной столичной компании вы будете считаться крепким мидлом, а в регионе вас будут ждать с распростертыми объятиями на позицию сеньора. 

Чтобы стать сеньором, нужно уметь:

  • Качественно выполнять рабочие задачи;
  • Нести ответственность за свои действия и команду разработчиков;
  • Организовывать работу команды и помогать коллегам расти;
  • Постоянно учиться и совершенствовать свои навыки.

Разница между этими уровнями в том, что middle работает, чтобы получить зарплату, а senior-разработчик заинтересован в развитии компании и прикладывает усилия для этого. Работодатель замечает рвение и авторитет сотрудника и дает ему повышение. На такой переход требуется в среднем от 3 до 5 лет, но опять же, все достаточно индивидуально.

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

Требования работодателей к разработчикам каждого уровня

Junior

Junior должен обладать как минимум начальным знанием синтаксиса основного языка программирования и способностью выполнять простые задачи. Желательно уметь работать с API, ориентироваться в интерфейсе IDE и управлять им с панели задач, а также извлекать данные из баз данных. Из личных качеств джунам будет полезны следующие:

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

Какие еще знания требуются от младших разработчиков, узнаем из описаний вакансий:

Junior С++ разработчик 

Junior C++ разработчик

Специалист такого уровня может претендовать на зарплаты от 100000 рублей, но на собеседования приглашаются претенденты с опытом от 2 лет:

Junior developer (C# .NET )

Junior C# разработчик

Junior Full Stack разработчик Битрикс 

Bitrix-разработчик

Этому специалисту также нужен опыт работы от 1 года, зарплата при этом обсуждается на собеседовании.

Middle

Специалист среднего уровня понимает, как должен работать проект в целом. Поэтому он еще на этапе анализа своей задачи может оценить, корректны ли требования техзадания и реализуем ли функционал. В результате вероятность появления критических ошибок снижается, и уменьшается время полной разработки. Middle-разработчик пишет понятный код, способен разрабатывать базы данных и управлять ими (хранимые процедуры, триггеры, пользовательские типы данных, технологии ORM и т.д.). Он знает сочетания клавиш для удобной работы с IDE и понимает, как функционируют разные платформы.

Middle Backend developer (Golang)

Middle backend-разработчик

Специалисты с опытом работы от 2-3 лет могут претендовать на зарплату от 250 тысяч рублей.

Java-разработчик также может зарабатывать около 240 тысяч рублей в месяц, если он соответствует требованиям:

Java-разработчик

Middle web-разработчик 

Web-разработчик

Стартовая зарплата для этого специалиста – 150 тысяч рублей.

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

Senior

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

Кроме того, senior-разработчику желательно развивать компетенции:

  • Командные навыки (даже если сеньор может работать в одиночку, работу над большими проектами эффективнее выполнять совместными усилиями);
  • Пользовательские навыки (любой IT-продукт создается для клиентов – обычных людей, поэтому результат выполнения кода должен быть понятным);
  • Навыки роста (умение постоянно учиться – важный навык профессионального и карьерного роста);
  • Умение проводить собеседования (руководитель компании и HR-специалисты не всегда могут оценить способности кандидата. Кроме того, сеньору полезно самому уметь «продавать» себя работодателю, чтобы получить более высокую должность и зарплату);
  • Ассоциирование себя с сообществом (желание и возможность передавать знания, участвовать в профильных конференциях, расширять горизонты знакомств).

Вот какие требования предъявляют работодатели к будущим сотрудникам:

Senior Python разработчик с опытом работы от 4 лет

 Senior Python-разработчик

Senior Java/Kotlin developer 

 Senior Kotlin-разработчик

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

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