Чем начинающий специалист отличается от мидл-разработчика
Академия Яндекса и Яндекс.Практикум вместе исследуют то, с какими проблемами сталкиваются разработчики, которые хотят вырасти из стажёров и джунов в мидлов. В первом материале серии — о том, чем отличаются требования к джуниор- и мидл-специалистам: как на собеседованиях, так и в дальнейшей работе.
В следующей статье мы расскажем о результатах опроса об основных карьерных трудностях, с которыми сталкиваются джуны, а в заключительном материале — дадим рекомендации по тому, как с ними справиться.
Стажёр, джуниор и мидл — в чём базовые отличия
У разработчика есть несколько путей развития внутри компании: он может расти «с нуля», а может прийти на позицию джуниор- или мидл-специалиста. Тех, кто только начинает свой профессиональный путь, называют стажёрами: чаще всего это студенты или выпускники профильных вузов.
Обычно стажёров нанимают крупные корпорации: обучение таких сотрудников обходится крайне дорого и выгодно для компаний, только если специалист планирует и дальше развиваться внутри одной экосистемы. Рита Головко, менеджер по трудоустройству в Яндекс.Практикуме, рассказывает: «На рынке существует мнение, что попасть на стажировку сейчас может быть сложнее, чем устроиться в штат — потому что требования к стажерам высоки и уровень конкуренции со студентами и выпускниками профильных вузов зашкаливает». 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 (если компания с ними работает).
На собеседованиях мидлам, как правило, дают задачи, приближенные к реальным: может быть нужно рассказать, как организовать хранение данных с условием определенного профиля работы с ними. От кандидата-мидла ждут схему базы данных и скетч кода типовых запросов. Ещё рекрутер и собеседующийся обсуждают различные подходы, их плюсы и минусы. «Такие задания проверяют уменее проектировать программы, анализировать фреймворки и принимать решения», — говорит Игорь Хураськин.
Как джуниору перейти на позицию мидл-разработчика
«Обычно тимлиды сразу замечают активных и претендующих на самоходность джунов и помогают им вырасти до мидлов», — поясняет Рита Головко. Если же джуниор-специалист — тихоня, но чувствует, что хочет попробовать себя в новой роли, то сначала стоит проговорить это желание с руководителем.
«В погоне за самостоятельностью важно не переоценить себя: увеличивать нагрузку и сложность задач постепенно, параллельно “качая” автономность. При этом не стоит забывать, что спрашивать — не стыдно: куда опаснее не просить о помощи, если вы в ней нуждаетесь», — говорит Сергей Бережной.
Если вы чувствуете, что готовы к новому уровню ответственности, то перед встречей с руководством важно заранее продумать план своего карьерного развития и конкретные действия, которые приведут к повышению квалификации. «Мы всегда оцениваем, сколько ресурсов нужно вложить в конкретного специалиста. Именно поэтому наличие у него собственного видения облегчает эту задачу и помогает понять, готов ли он к новой должности», — подытоживает Кристина Исаева.
«На мой взгляд, для прокачки своих навыков стоит фокусироваться на более фундаментальных вещах, нежели на постоянно меняющихся и мимолетных знаниях. Например, глобально важнее понимать, как устроена алгоритмическая сложность в разных структурах данных, а не углубляться в конкретные библиотеки. Библиотеки приходят и уходят, а вот фундаментальные знания остаются неизменными», — подчёркивает Сергей Бережной.
Джун, который хочет вырасти в мидла, должен помнить, что разработка — часть совместной работы над продуктом, в которой участвуют продакт-менеджеры, маркетологи, дизайнеры, техническая поддержка — и так далее. Именно поэтому отдельная важная «ступенька» для новой должности — это умение мыслить в масштабах всего бизнеса, а не конкретной команды, и способность выстраивать коммуникации со специалистами из разных департаментов.