Все начинающие специалисты знакомы с устоявшейся в IT иерархией «джуниор — мидл — сеньор», но не каждый уверен в своём положении в этой цепочке. Так что сегодня попробуем разобраться, как отличить «ещё джуна» от «уже мидла» на примере фронтенд-разработки.
⬥ JUNIOR FRONTEND DEVELOPER
Джун — априори не нулевой разработчик, поэтому до него тоже придётся дорасти. Как минимум нужно:
⬥ научиться верстать и стилизовать страницы (HTML, CSS);
⬥ выучить синтаксис JavaScript и начать писать простые программы с функциями, условиями и замыканиями;
⬥ освоить DOM — создание элементов (createElement, appendChild), запросы к существующему дереву (getElementById, querySelector)
⬥ разобраться, как устроена совместная работа с кодом;
⬥ познакомиться с Git на базовом уровне (commit, merge, push, pull, revert).
По большому счёту, джун на первых порах должен уметь только одну вещь: писать рабочий код по чётко поставленному заданию. Чтобы проверить этот навык, на собеседованиях обычно дают типовые задачки в духе «отсортировать массив» — и смотрят на ход мысли и качество программы.
Что касается soft skills, важнее всего для джуна мотивация, сильное желание впитывать новые знания и умение анализировать свои ошибки.
⬥ MIDDLE FRONTEND DEVELOPER
На самом деле технические требования к мидлам не так уж сильно отличаются от джуновских. Как правило, на набор HTML-CSS-JS просто «наращиваются» более сложные инструменты:
⬥ фреймворки JS (Vue/Angular);
⬥ расширения CSS (SASS/SCSS/Less/PostCSS);
⬥ системы сборки (Gulp/Grunt/Webpack)
— и т.п.
Но главное, что требуется от мидл-разработчика, — это системность знаний. Он должен чётко понимать, как работает веб, и разбираться на уровне основных концепций в смежных темах: администрировании, devops, теории сетей и т.д.
Мидлу не приходится обращаться за помощью, чтобы создать админку, проработать адаптивность приложения или повысить производительность: он опытен и, ключевое, самодостаточен.
На собеседованиях мидлам обычно предлагают реальные комплексные задачи «на подумать». При этом ожидается, что кандидат будет рассуждать не только на уровне кода, но и на уровне бизнес-процессов.
Отметим, что у каждой компании может быть своё видение идеального кандидата на ту или иную позицию. Например, стартапы часто ищут специалистов-универсалов, которые могут быстро решать разноплановые задачи — и требования к hard skills у них выше. А вот корпорации порой сильнее заинтересованы в soft skills: им важно, чтобы человек эффективно работал в команде — отдельным техническим навыкам они готовы обучать даже мидлов.
В заключение написали для вас короткий, шуточный, но в то же время очень точный классификатор:
⬥ Джуну говорят: «Реализуй функцию».
⬥ Мидлу говорят: «Реши проблему».
⬥ А сеньор вынужден сам разбираться, что вообще за проблема и где она, — но это тема для отдельного поста :)