Журнал / польза

Чем начинающий специалист отличается от мидл-разработчика

И что нужно для того, чтобы вырасти из джуна в мидла.

Академия Яндекса и Яндекс.Практикум вместе исследуют то, с какими проблемами сталкиваются разработчики, которые хотят вырасти из стажёров и джунов в мидлов. В первом материале серии — о том, чем отличаются требования к джуниор- и мидл-специалистам: как на собеседованиях, так и в дальнейшей работе.

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

Стажёр, джуниор и мидл — в чём базовые отличия 

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

Обычно стажёров нанимают крупные корпорации: обучение таких сотрудников обходится крайне дорого и выгодно для компаний, только если специалист планирует и дальше развиваться внутри одной экосистемы. Рита Головко, менеджер по трудоустройству в Яндекс.Практикуме, рассказывает: «На рынке существует мнение, что попасть на стажировку сейчас может быть сложнее, чем устроиться в штат — потому что требования к стажерам высоки и уровень конкуренции со студентами и выпускниками профильных вузов зашкаливает». Cтажёрам не всегда дают писать боевой код; часто они просто учатся и набираются опыта. В Яндексе стажёры выполняют реальные задачи сервиса, в котором работают, — но обязательно под руководством ментора.

В отличие от стажёров джуниоры — это более самостоятельные сотрудники, а мидл-специалисты  — уже совсем крепкие командные игроки, к которым стажёры и джуны могут обращаться за помощью. И у джунов, и у мидлов уже есть и опыт работы в индустрии, и релевантные знания: их можно получить как самому, так и в университете или на образовательных курсах.

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

«В среднем, вырасти из стажёра в джуниор-специалиста можно в пределах одного года», — оценивает Сергей Бережной, руководитель отдела разработки поисковых интерфейсов «‎Яндекса». Для того, чтобы превратиться из джуна в уверенного мидла, потребуется полтора-два года — если есть желание узнавать новое самостоятельно, учиться у коллег и погружаться в бизнес.

Работа джуниор-специалиста

Раньше на позицию джуна могли претендовать разработчики с минимальным опытом работы, но сейчас требования рынка несколько изменились. «‎Из-за того, что многие начинающие специалисты сейчас активно проходят онлайн-курсы, работодатели всё-таки повысили планку. Раньше для трудоустройства на позицию веб-разработчика хватало CSS и JavaScript, а теперь они хотят увидеть от джунов не только несколько учебных мини-проектов, но и, например, проекты с использованием библиотеки React или фреймворков Angular/Vue», — уточняет Рита Головко. 

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

Общие требования к техническим навыкам для  джуниор- и мидл- разработчиков на Python:

— Python (Django/Flask), опыт программирования на Python до года для джунов, 1-3 года — для мидлов;

— ORM;

— REST API;

— Реляционные базы данных (MySQL/PostgreSQL);

— Контейнеризация с помощью Docker и Bash;

— Тесты (Unittest, pytest).

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

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

Ключевые мягкие навыки джуна:

— Проактивность;

— Внимательность и вовлечённость;

— Умение задавать вопросы;

— Умение слышать и слушать (важно!);

— Способность быстро учиться.

Кто такой мидл-специалист

 «‎Главное отличие мидлов от джунов — это самоходность. Если начинающий специалист чего-то не знает, то он, скорее всего, будет спрашивать совета у старших коллег, мидл же “закроет” возникшую проблему сам — прежде всего, загуглит и найдёт оптимальное решение самостоятельно», — поясняет Кристина Исаева, менеджер по трудоустройству в Яндекс.Практикуме и IT-рекрутер канадской компании SOTI. 

У мидл-разработчика уже есть полноценное видение продукта и понимание бизнеса, поэтому он видит картинку в целом, и понимает, с какими сложностями можно столкнуться в разработке. В отличие от джуна, мидл не «‎бросается» на решение задачи сразу же, а осмысляет её и задаёт дополнительные вопросы.  

«Мы часто спрашиваем соискателей, что они будут делать, если к ним подойдёт менеджер по продукту и, например, попросит сделать сервис по аналогии с Bitly. Когда человек рассказывает, как он будет создавать продукт, мы понимаем, что перед нами — исполнительный джун, который не думает о бизнес-процессах. Если же соискатель сначала спросит, зачем нужно такое решение и почему нельзя воспользоваться существующим на рынке аналогом, то это, как минимум, специалист с задатками мидла», — объясняет Кристина Исаева.

При этом, нанимая сотрудника на позицию мидл-разработчика, компании также смотрят на его предыдущий опыт: работа в продуктовой команде или в студии — это обязательное условие. Интересная деталь: чем меньше компания, тем больше у неё обычно технических требований к соискателям на позицию мидла. Такая закономерность связана с тем, что в стартапе разработчик чаще всего решает комплексные задачи, а в корпорации — работает в большой команде и занимается точечными запросами.

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

«Я бы сказал, что для джуниор-специалистов важнее уверенное владение hard skills, а для мидла всё-таки важнее soft skills: способность быстро наверстывать недостающие навыки, обрабатывать новую информацию и внедрять её в свою работу», — отмечает Сергей Бережной.

Ключевые мягкие навыки мидла:

— Умение брать на себя ответственность за результат;

— Навык активной коммуникации с коллегами;

— Бизнес-мышление;

— Самостоятельность и автономность (как минимум, в рамках двухнедельных спринтов :));

— Умение находить ответы самостоятельно;

— Способность доводить начатое до конца;

— Навык декомпозирования задач.

Дополнительные требования к техническим навыкам для мидл-разработчиков на Python:

— Асинхронные библиотеки (asyncio + aiohttp) или fastapi;

— Нереляционные базы данных (Redis, Mongo);

— SQLAlchemy (иногда встречается);

— Брокер RabbitMQ;

— Celery;

— Azure/AWS (если компания с ними работает).

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

Как джуниору перейти на позицию мидл-разработчика

«Обычно тимлиды сразу замечают активных и претендующих на самоходность джунов и помогают им вырасти до мидлов», — поясняет Рита Головко. Если же джуниор-специалист — тихоня, но чувствует, что хочет попробовать себя в новой роли, то сначала стоит проговорить это желание с руководителем. 

«В погоне за самостоятельностью важно не переоценить себя: увеличивать нагрузку и сложность задач постепенно, параллельно “качая” автономность. При этом не стоит забывать, что спрашивать — не стыдно: куда опаснее не просить о помощи, если вы в ней нуждаетесь», — говорит Сергей Бережной. 

Если вы чувствуете, что готовы к новому уровню ответственности, то перед встречей с руководством важно заранее продумать план своего карьерного развития и конкретные действия, которые приведут к повышению квалификации. «Мы всегда оцениваем, сколько ресурсов нужно вложить в конкретного специалиста. Именно поэтому наличие у него собственного видения облегчает эту задачу и помогает понять, готов ли он к новой должности», — подытоживает Кристина Исаева. 

 «На мой взгляд, для прокачки своих навыков стоит фокусироваться на более фундаментальных вещах, нежели на постоянно меняющихся и мимолетных знаниях. Например, глобально важнее понимать, как устроена алгоритмическая сложность в разных структурах данных, а не углубляться в конкретные библиотеки. Библиотеки приходят и уходят, а вот фундаментальные знания остаются неизменными», — подчёркивает Сергей Бережной. 

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