16 вопросов мидлу: что должен знать Middle-разработчик
Разобрались, что должен знать Middle-разработчик, какими hard и soft skills он обладает и не завышены ли требования сегодня.
Что должен знать Middle-разработчик? Этот вопрос актуален как для тех, кто претендует на вакансию мидла, так и для тех, кто посматривает в сторону продвижения.
Стоит отметить, что несмотря на то что в IT выработана шкала для оценки программистов (trainee, junior, middle, senior, lead), с которой более или менее все согласны, с точным определением каждого уровня общего мнения среди компаний пока нет. Поэтому каждая компания устанавливает внутренние требования к навыкам каждого уровня.
Тем не менее есть основной набор знаний и навыков, по которому в целом можно ориентироваться, оценивая себя. Многие специалисты утверждают, что сегодня требования к мидлам несколько завышены:
Позиция Middle-разработчика предполагает не только уверенное знание языка программирования, но и широчайшие познания в смежных технологиях. Позиция Middle накладывает на специалиста ответственность не только программировать «всё что угодно», но и обучать, оптимизировать код, разбирать и поддерживать чужой код, как будто родной. Фактически сейчас для вакансий Middle-разработчика предъявляются требования, как несколько лет назад для Senior.
Мы выяснили, что должен знать Middle-программист в 2020 году, и собрали общие вопросы с собеседований, по ответам на которые работодатели определяют, «дорос» кандидат до мидла или нет.
Hard skills
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
Soft skills
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
На данный момент этот блок не поддерживается, но мы не забыли о нём! Наша команда уже занята его разработкой, он будет доступен в ближайшее время.
Выводы
Так завышены ли сегодня требования к мидлам? На этот счёт мнения расходятся, но почти все специалисты сходятся во мнении, что каждая компания диктует свои правила, и то, что должен знать Middle-разработчик, будет напрямую зависеть в том числе от должности, на которую он претендует.
Не завышены ли требования к мидлам? Возможно, кто-то из IT-специалистов сталкивался с тем, что, уже несколько лет будучи мидлом, на собеседовании в какой-либо компании его оценивают как джуниора. Связано это, как правило, с двумя факторами: первое — разные требования в разных компаниях. Второе — часто в уровень квалификации, кроме перечисленных выше hard и soft skills, ещё включают погружённость сотрудника в предметную область, знание специфики бизнеса. Эти знания делают сотрудника ценным для текущей организации, но могут значить меньше в новой для него организации.
Подводя итоги, Middle-разработчик должен свободно плавать в теории, хорошо знать необходимый стек технологий и иметь по нему богатый опыт, не просто коммуницировать, но также оценивать трудозатраты, сроки, обучать и управлять ходом разработки. Опыт работы с базами данных, Git и уверенное владение английским языком обязательны по умолчанию.
Junior, Middle, Senior в разработке — кто есть кто и как перейти на уровень выше
Junior зарабатывает от 40 000 ₽, Middle от 100 000 ₽, а Senior от 250 000 ₽ и выше.
Виктория Земскова
Автор статьи
29 марта 2022 в 16:59
Четкой границы между младшим (junior), средним (middle) и старшим специалистом (senior) в IT нет. В одной компании разработчик может быть крепким сеньором, а при переходе в другую компанию стать мидлом, но с сохранением заработной платы и даже ее повышением, потому что в другой компании уровни считаются иначе.
Рассказываем, в чём разница между junior, middle и senior, как понять, что вы уже не джуниор или что мидлу пора становиться сеньором. И что нужно сделать, чтобы продвигаться по карьерной лестнице.
Junior — первая ступень в разработке
Джуниор (junior) — это младший специалист. Он знает теорию, освоил синтаксис одного языка программирования и может писать на нём код. Если джуниор не умеет писать код, то это стажер.
Знания у джуниора обычно не структурированы, но их хватает, чтобы решить простые технические задачи, если указано, что и как сделать.
Положение на рынке труда: джуниору сложно найти первую работу. Компаниям всегда проще нанять мидла или сеньора. Поэтому на открытые вакансии начинающих специалистов претендуют тысячи выпускников курсов и институтов.
Проблемы возникают из-за того, что для обучения джуниору нужен наставник, а несложных задач в разработке немного. Иногда для младшего программиста специально ищут задачи, чтобы он мог на чём-то тренироваться. Это требует ресурсов и даст результат, если из него получится крепкий программист и он останется работать в компании. Поэтому наём джуниора — это риск и в основном их берут на работу с прицелом на рост до мидла.
В Skypro на курсе «Веб-разработчик» можно стать джуниором за 10 месяцев и начать поиск работы по новой специальности. Центр карьеры поможет подготовиться к собеседованиям и тестовым заданиям, составить цепляющее резюме. А портфолио с реальными проектами соберете из домашек и курсовых, которые сделаете под руководством опытных наставников.
Опыт. Год — полтора реальной разработки.
Знания и навыки. Хорошо разбирается в языке и технологии, которую использует компания.
Софт-скилы (личностные качества). Восприятие критики, умение слушать, открытость новому, адаптируемость и обучаемость.
Задачи: технические задачи — четко поставленные, с подробным описанием, что и как нужно сделать. Например, исправить некритичные ошибки, добавить или изменить элементы пользовательского интерфейса. Пример задачи в frontend-разработке — сверстать слайдер по прототипу.
Станьте Java-разработчиком в два раза быстрее
Ускоренный курс для тех, кто хочет быстрее перейти на удаленку
Ответственность. Минимальная.
Зарплата. 40 000 ₽ — 100 000 ₽.
Пример вакансии стажера / backend-разработчика уровня junior на хедхантере
Что делать, чтобы перейти на следующий уровень. Джуниор может вырасти до мидла, если изучит весь набор технологий, используемый командой:
- языки программирования;
- фреймворки — платформы, набор технологий, который помогает разработчику создавать, масштабировать и обслуживать веб-приложения;
- системы управления базами данных;
- компиляторы — программы, которые переводят текст с языка программирования в набор машинных кодов.
Будущему мидлу нужно писать код без ошибок, уверенно, самостоятельно и в срок решать небольшие задачи. А еще читать чужой код и высказывать по нему полезные замечания.
Работодатели высоко оценивают навыки и знания выпускников Skypro. Часто говорят, что после курсов, например «Java-разработчик», на позицию джуниора претендуют начинающие мидлы, которые смогут рассчитывать на повышение уже через полгода-год.
Сколько это займет времени. Зависит от компании: где-то разработчик остается на позиции джуниора два — три года, а в другой — перейдет на новый уровень за год. Разработчик тоже влияет на развитие своей карьеры. Джуниоры с опытом 10–15 лет не редкость, если специалист не хочет развиваться в профессии и брать больше ответственности.
Как происходит переход на уровень мидла. Оценивают компетенции младшего специалиста каждые полгода. Джуниор и его наставник встречаются и изучают цели, которые сотрудник должен достичь, чтобы повысить уровень. Вырос джуниор или нет, решает тимлид (руководитель направления). Если код джуниора принимают после первого ревью (проверка), значит, он может перейти на следующий уровень.
Middle — крепкий середнячок
Мидл (middle) — средний специалист. Это основной разработчик, который выполняет поставленные задачи почти без ошибок. Знает языки программирования и использует дополнительные технологии — например, backend-разработчик погружается во фронтенд и учит Angular. Мидлу не нужна проверка кода, наоборот, он сам проверяет его и исправляет, чтобы тот стал простым и понятным.
Мидл умеет решать нестандартные задачи. Например, если его попросили реализовать назначение прав пользователям, мидл понимает, как выполнить задачу, на какие типы разбить: пользователь, администратор, модератор и т. д. Он не боится задачи на неделю и может ее декомпозировать — разделить на простые и понятные части.
Положение на рынке труда. Мидлов редко увольняют, потому что на них держится вся разработка в команде. Устроиться на новую работу мидлу просто: обычно они ищут предложения о работе, при этом остаются на прежнем месте. На новую работу переходят, если их повышают до сеньора или предлагают зарплату выше.
Опыт. От двух до семи лет.
Знания и навыки. К техническим навыкам джуниора добавляются новые — они приходят только с опытом. Мидл должен досконально знать базу используемых в разработке языков, не поверхностно, а понимать, как изнутри работает технология или фреймворк, иметь опыт работы и теоретические знания стандартных библиотек.
Софт-скилы (личностные качества). Мидл понимает, что работает не один, и умеет договариваться с другими членами команды. Проявляет самостоятельность, нацеленность на результат, большую ответственность и инициативность.
Задачи. Решает бизнес-задачи, которые закрывают конкретную проблему. Ему по силам изменить существующий сервис, добавить новые страницы интерфейса или функции API (протокол, с помощью которого программы общаются между собой и обмениваются информацией). Если говорить о тестировании, мидл умеет писать автотесты (программы для автоматического тестирования приложений) с нуля,без копирования кода, полностью самостоятельно. Мидл способен закрывать, не срывая сроков, 80% поставленных задач.
Ответственность. Полностью отвечает за проект или задачу, которую разрабатывает.
Зарплата. От 100 000 ₽ до 300 000 ₽.
Пример вакансии Python-разработчика уровня middle, от 160 000 ₽ до 260 000 ₽ на хедхантере
Что делать, чтобы перейти на следующий уровень. Для этого программисту нужно изучать новые технологии — например, мультиоблачные среды или блокчейн-технологии. Читать и анализировать исходный код популярных проектов: Facebook (организация признана экстремистской и запрещена на территории России), Uber, Netflix или «ВКонтакте». Изучать разные системы управления баз данных.
Сколько это займет времени. У всех разная скорость и возможность обучения на текущем месте работы. Поэтому важные факторы для роста — стремление к саморазвитию и способность достигать своих целей. В среднем мидлу требуется от четырех до семи лет для перехода на следующий уровень. За это время программист полностью изучит все языки и технологии, которые используются в команде, начнет брать на себя больше ответственности за проект, научится наставничеству.
Как происходит переход на уровень сеньора. Оценивает компетенции мидла технический руководитель или другие старшие разработчики — они и решают, может ли мидл перейти на уровень сеньора. Часто в компании только один сеньор и для повышения уровня программисту нужно искать другое место работы.
Senior — самый опытный в команде
Сеньор (senior) — старший разработчик. Уровень зависит не только от стажа в программировании. Если разработчик 10 лет занимается одинаковыми задачами, вырасти в сеньора не получится.
Сеньор — это самый опытный специалист в команде. Решает сложные задачи, проектирует архитектуру программ и систем и понимает, что в итоге должно получиться при запуске продукта или программы. Такой специалист проверяет код и помогает менее опытным разработчикам. Нередко занимает управляющую должность. Главный показатель сеньора — успешно запущенные IT-продукты, которые работают.
Положение на рынке труда. Сеньоров не увольняют. Кадровики охотятся за ними и переманивают в свои компании. При этом предлагают высокие заработные платы, премии, бесплатный выкуп акций компании, страховки ДМС, обучение за счет компании, оплату обедов, занятия в тренажерных залах.
Опыт. От пяти до семи лет.
Знания и навыки. Создает и продумывает архитектуру проекта, пишет инструменты для решения задач в разработке и фреймворки, которыми пользуются джуниоры и мидлы. От сеньора требуют не только найти решение, но и убедить в его правильности заказчика и команду.
Софт-скилы (личностные качества). Для сеньора характерны наставничество, выработка и принятие решений, многозадачность, клиентоориентирование и планирование.
Задачи: решает сложные и нестандартные бизнес-задачи. Например, получив задачу создать безопасный сервис, который свяжет людей, сдающих жилье, с путешественниками, и прозрачную платформу для оплаты на нём, сеньор вначале узнает, какую проблему решает задача. И может согласиться с ней или предложить свое решение, которое будет менее затратным. Затем сеньор собирает группу для решения задачи, формулирует задания для младших разработчиков, принимает работу и представляет результат компании. Сеньор умеет слушать заказчика, понимает процессы не только с технической точки зрения, он решает задачи бизнеса, даже несформулированные.
Ответственность. Отвечает за весь проект и работу всей команды: за архитектуру, скорость и эффективность кода.
Зарплата. От 250 000 ₽ и выше, верхней границы нет.
Пример вакансии PHP-разработчика уровня senior, от 250 000 ₽ до 700 000 ₽ на хедхантере
Что делать, чтобы перейти на следующий уровень. Возможностей у сеньора больше, чем у джуниора или мидла. Развиваться сеньор может в сторону технического директора, тимлида (руководитель команды), IT-архитектора или создать свою компанию по разработке. Для развития ему нужно повышать технические навыки — глубже изучать языки программирования, их структуру; наращивать софт-скилы — планировать работу свою и команды, брать на себя ответственность за решения и результаты и глубже погружаться в бизнес-процессы компании.
Сколько это займет времени. Как и с сеньором, будет ли мидл расти дальше или нет, зависит от самого человека и возможностей, которые предоставляет текущее место работы. Сеньор может как стать техлидом или тимлидом за два — три года, так и оставаться в прежней позиции всю жизнь.
Как происходит переход на уровень техлида. При открытой вакансии к разработчикам-сеньорам присматриваются руководители компании. Если своих специалистов нет или требуется опыт в технологиях, которые компания не использовала раньше, поиск специалиста ведется на стороне через просмотр резюме и собеседования.
Куда может развиваться сеньор
Техлид (Tech Lead), он же CTO — Chief Technical/Technology Officer, или CIO — Chief Information Officer, директор по информационным технологиям. Это человек, который строит архитектуру для всей команды. Это самый сильный разработчик в команде. Выбирает техническое решение задачи: предлагает использовать определенные фреймворки, технологии и библиотеки. Он же проверяет код и решает самые сложные или ответственные технические задачи. Например, принимает решение об автоматизации работы с облачным провайдером и рассчитывает ROI (окупаемость инвестиций) этой автоматизации.
Тимлид (Team Lead) — одновременно опытный программист и хороший менеджер. Связующее звено между командой и менеджером проектов. Тимлид следит, чтобы у каждого сотрудника была задача и он понимал, как ее делать. В половине случаев тимлид занят менеджерской работой: согласует, раздает задачи и права пользователям, следит за загрузкой программистов, распределяет задания.
Проджект-менеджер (Project Manager) — руководитель проекта. Он координирует проект, организует взаимодействие между отделами, руководителями и заказчиками. В небольшой компании один человек может сочетать в одном лице тимлида и руководителя проекта. В больших — эти должности занимают два человека, каждый со своим уровнем ответственности.
IT-архитекторы — это разработчики с большим опытом реализации коммерческих проектов, которые умеют закладывать архитектуру (каркас) сложной IT-системы. Главная задача IT-архитектора — найти оптимальное решение между потребностями заказчика и возможностями команды.
Как пройти путь от программиста-одиночки до руководителя отдела IT в 500 человек
Павел Щербинин — технический директор в «Яндекс.Практикуме», руководитель отдела в 500 человек, экс-вице-президент по технологиям в «СберМаркете» в интервью Skypro рассказал о своей карьере в разработке.
Павел, расскажите о своём образовании.
У меня высшее профильное образование. Я учился в Ступинском филиале Московского авиационно-технического института имени Циолковского (МАТИ), на факультете автоматизированных систем управления.
Какой была ваша первая стажировка или работа? Чему она вас научила?
Моя первая серьезная работа была в компании, которая занималась автоматизацией информационных систем Росздравнадзора. До неё я был программистом-фрилансером, делал сайты на заказ, но это не считается. Своей первой настоящей работой в IT я считаю именно работу в команде.
На стажировке я узнал, что качество моего кода, писать который я учился по книжкам и урокам, не соответствует реальным проектам. И всё, что я делал раньше, было плохого качества. Работая рядом с крутыми программистами, я понял, как писать код, за который не стыдно. Я начал выходить за рамки поставленных задач: разбираться, как и что устроено и почему так написано, а не иначе, как правильно структурировать код по файлам, функциям и т. д. Я многому научился именно на своей первой работе.
Что, по вашему мнению, больше всего оказало влияние на вашу карьеру в IT?
Самое большое влияние на мое профессиональное становление оказала первая работа. Меня окружали крутые специалисты и, самое важное, мне давали пространство и стимул для роста. Они никогда не правили мой код, а спрашивали, что именно не работает. Моя задача была сформулировать вопрос, чтобы получить ответ от опытных коллег и уже самому разбираться в проблеме. Приходилось самостоятельно доходить до каждого решения. Это оказалось суперполезно.
Второе — интерес к программированию. Мне всегда было интересно, как всё устроено, и я старался погрузиться как можно глубже. Вспоминаю очень интересный переломный момент. Когда-то я думал, что я очень хорош в программировании: много лет писал код, выступал на конференциях и был их организатором. И вот я решил посмотреть, как устроено несколько модулей из языка Perl. Я смотрел исходный код и понимал, что не могу его прочитать. И не из-за того, что он плохо написан, а потому, что были использованы конструкции, которых я не знал.
Это стало большим рывком в профессии, погружение в то, как всё устроено. Мне приходилось много читать техническую литературу и чужой код, чтобы разобраться, как и что работает. И конечно, это сильно повышало мой уровень, как программиста.
Middle C# разработчик
Привет! Я — Георгий Удалов, старший . . Я ищу опытного C# разработчика к себе в команду. Вместе (джедаями) мы управляем крупными рекламными кампаниями и строим сквозную аналитику. Среди наших клиентов — , , Яндекс.Здоровье.
Чем вам предстоит заниматься
Сопровождать систему, написанную на .Net Framework 4.7 и MS SQL. 70 % бэкэнда MS SQL. 30 % фронт C#. Со временем планируем больше работ над фронтом.
В течение года планируем перевести десктопный монолит архитектуру и Web.
Технические требования
Обязательно:
Опыт разработки приложений с использованием C# и MS SQL от трёх лет. Без этого у нас вряд ли получится продуктивно работать вместе.
Желательно:
- опыт ;
- опыт работы с Entity Framework;
- базовые знания по администрированию MS SQL;
- примеры кода на Git или других репозиториях;
- уметь работать с системами контроля версий (Git);
- знать английский настолько, чтобы понимать техническую документацию.
Будет плюсом:
RabbitMQ, Azure, ReSharper, шаблоны проектирования, SOLID, разговорный английский.
Условия работы
Официальное оформление и полностью белая зарплата от 130 до 150 тысяч рублей. Точный размер зарплаты будет зависеть от уровня знаний и умений.
Удалённая работа, рабочие часы с 11 до 19 по московскому времени 5 дней в неделю. Соблюдаем все официальные российские выходные и праздники. Отпуск — в соответствии с Трудовым кодексом.
Покупаем ноутбук, софт и всё, что ещё может понадобиться для работы.
Оплачиваем половину стоимости мероприятий по обучению, которые относятся к вашей зоне ответственности.
Как мы работаем и отдыхаем, можно посмотреть в командном инстаграме.
Сначала
Сотрудник выбирает команду так же тщательно, как мы сотрудника, поэтому работа начинается со стажировки. Она помогает узнать и проверить друг друга: стажёр понимает, нравится ли ему работать с нами, а мы видим его в деле.
Стажировка длится месяца. Она оплачивается по часам, но совмещать с другой работой вряд ли получится: у нас много задач, в которые нужно вдумчиво погружаться. Стоимость часа — такая же, как при полной занятости.
Как откликнуться и что будет дальше
Напишите мне на g.udalov@.ru. Я пришлю письмо с вопросами, затем проведём , поработаем на стажировке и примем на работу по её итогам.
устроено изнутри: самоорганизация, культура, ценности
Что должен уметь мидл в разных компаниях
Хотите работать в продуктовой компании, но не знаете, как туда попасть? Мы всё выяснили за вас. Мы связались с разработчиками из Тинькофф, «Вконтакте», «Проксиматики», PetShop и EPAM и узнали, кого они видят в качестве мидл-фронтендера у себя в компании.
Во всех компаниях фронтендеры выполняют разные задачи. Где-то они разрабатывают интерфейсы, где-то программируют логику работы веб-приложений, а где-то совмещают обе задачи — в статье мы посмотрим на общую картину.
Общие навыки
Если вы претендуете на позицию мидла, у вас должны быть хорошие знания HTML и CSS. Нужно знать семантическую вёрстку, уметь создавать адаптивные интерфейсы, строить сетки на таблицах, флексах и гридах, а также правильно выбирать метод построения сеток под конкретную задачу.
Ещё обязательно знать ванильный JavaScript, TypeScript и минимум один фреймворк. Самый популярный — React, его используют во всех компаниях. В Тинькофф некоторые команды программируют ещё и на Angular, а во «Вконтакте» — на Vue. В EPAM выбор ещё шире: здесь мидлы должны владеть React, Angular или Vue.
Из софт-скиллов особенно важны ответственность и самостоятельность, навыки коммуникации и командной работы. Мидлы не должны бояться просить совета у коллег, если столкнулись с проблемой. Им нужно работать быстро, качественно и с минимальным руководством. А ещё важны навыки наставничества. Ведь когда в компании появляются новички, им нужно помочь быстрее влиться в работу и освоить новые технологии.
Petshop
Petshop — крупнейший интернет-магазин товаров для животных в России. Чтобы устроиться сюда разработчиком, нужно хорошо владеть React и Redux: не только знать правила и ограничения библиотек, но и понимать, с чем они связаны. Здесь важно разбираться в SSR — он не играет ключевую роль на собеседовании, но для работы понадобится. Ещё разработчики должны уметь читать чужой код, а при написании своего нужно следовать принципам SOLID и KISS.
Если говорить о софт-скиллах, то в Petshop важна коммуникабельность. Нужно не стесняться уточнять информацию в техзадании, уметь рассуждать над задачей и давать качественную обратную связь — без оценочного суждения и с конкретными предложениями или замечаниями.
У мидла должны быть хорошие знания по тем технологиям, которые мы используем в проекте. А опыта достаточно, чтобы самостоятельно качественно и осознанно решать большинство типовых задач.
Владимир Турецкий, фронтенд-разработчик Petshop
Что нужно знать: HTML, CSS, JS, React, TypeScript, SSR, Redux.
Проксиматика
«Проксиматика» создаёт ПО для банков и бизнеса: умные интернет-банки, инструменты для обмена информацией и маршрутизации платежей. Чтобы работать над такими проектами, фронтендер должен знать GraphQL и уметь организовать Rest API. Он должен понимать, что такое реляционная база данных: как делать выборки и обновлять информацию в таблицах, как таблицы связаны между собой.
Разработка здесь ведётся на React, поэтому фронтендер должен разбираться в функциональных компонентах. А вот в классовых — необязательно, их стараются не использовать. Ещё нужно знать маршрутизацию, управление состоянием, SSR и организацию взаимодействия с бэкендом.
Мидл — это человек, который может прочитать техническое задание и осознать его, провести декомпозицию задачи на компоненты и изготовить эти компоненты. Причём он всегда может обратиться за помощью к коллегам, если нужно что-то оптимизировать или использовать наработки, которые он не знает.
Волков Максим, генеральный директор «Проксиматики»
Что нужно знать: HTML, CSS, JS, React, TypeScript, GraphQL, Rest API, SSR.
Тинькофф
В Тинькофф своя система грейдов: здесь есть джун-, джун и джун+, мидл-, мидл и мидл+, а ещё сеньоры. Уровень разработчика проверяется по двум матрицам компетенций: для софт-скиллов и хард-скиллов.
Софт-скиллы. Софтовая матрица едина для всех. По ней мидлами считают активных и самостоятельных людей, которые могут сами выполнить задачу и, если что-то пойдёт не так, не стесняются задавать вопросы.
Хард-скиллы. Хардовая матрица у каждой команды своя. В Тинькофф нет должности фронтенд-разработчика — вместо него JavaScript-разработчик, и это направление делится на React, Angular и Node. js. Соответственно от того, в какой команде фронтендер, зависит то, такие технологии он должен знать. Но есть и общие навыки для всех команд. Например, мидлы должны понимать браузерный рендеринг и API, работать со сборщиками webpack и Babel.
Тестирование. Все разработчики компании пишут тесты. Джунам достаточно знать основы, а вот мидлы должны понимать, как работает тестирование в целом приложении и как писать стабильные тесты. Они знакомы с пирамидой тестирования и придерживаются её.
Мидлы должны разбираться в производительности и оптимизации приложений. Знать хотя бы на базовом уровне про безопасность: XSS-атаки и CORS, отличать авторизацию от аутентификации. Нужно понимать веб-архитектуру и хотя бы немного разбираться в том, как работает мониторинг: читать логи, искать ошибки и исправлять баги.
Если ты претендуешь на уровень «мидл+», то дополнительно проходишь собеседование на веб-архитектуру. Здесь нужно понимать архитектурные особенности, что такое микрофронтенды, зачем они нужны, как с ними работать, как работать с CDN и нужен ли он. Но если ты мидл и участвовал в запуске нового проекта, ты хотя бы на минимальном уровне всё это знаешь
Николай Тихонов, фронтенд-разработчик Тинькофф
Что нужно знать: HTML, CSS, JS, React, Angular или Node. js, TypeScript, Redux, юнит-тесты, JS Core, Rest API.
EPAM Systems
EPAM — крупная международная IT-компания. Здесь производят ПО для финансовых, торговых, медицинских, медиа- и других организаций.
В EPAM тоже есть матрица компетенций, по которой проверяются навыки мидла, сеньора и тимлида. Требований много. Например, если говорить о базовых навыках, то фронтендеры-мидлы должны очень хорошо знать JavaScript:
- понимать, что такое хойстинг и какая разница в хойстинге переменных, объявленных при помощи разных ключевых слов;
- хорошо знать синтаксис создания функций: понимать разницу между функциональным выражением и объявлением функции;
- уметь решать задачи на всплытие переменных и функций, понимать замыкания и области видимости;
- разбираться, как парсится JS и как работает токенизация;
- понимать, как назначается и теряется контекст выполнения функции;
- как работают методы call() , apply() и bind() ;
- писать кастомный bind;
- понимать асинхронность и промисы;
- решать задачи с then() , catch() и finally() ;
- подключать скрипты c атрибутами async и defer , при этом понимая разницу между ними.
Ещё у них должно быть общее понимание работы приложения и взаимодействия с бэкендом, представления о сборке проекта.
Если вы подумали, что все эти навыки могут быть и у джуна — то вы отчасти правы. Разница в степени погружения: мидлы должны глубже разбираться в конструкциях JS и применять их без ошибок.
И это ещё не все. Чтобы устроиться в EPAM, нужен английский уровня A2 или B1. Без него никак, потому что часть собеседования проходит на иностранном языке. А при повышении грейда проводится комиссия уже полностью на английском — здесь нужен уровень владения языком B1 или B1+.
Что нужно знать: английский язык, HTML, CSS, JS, JS Core, OSI, протоколы, React, Angular или Vue.
«Вконтакте»
Во «Вконтакте» нет формального деления разработчиков на сеньоров, мидлов и джунов — считается, что в такой системе принижается ценность мидлов. Вместо этого здесь младшие разработчики, разработчики и старшие разработчики.
Младшие — фронтендеры, которым нужны чёткие требования и поддержка на каком-то из этапов, чтобы довести задачу до конца. А разработчик — это полноправный опытный программист, который сам справляется со всеми задачами, если они понятно описаны. Он знает, как писать простой поддерживаемый код и хорошо разбирается в своей области.
Чтобы устроиться сюда, нужно знать Redux, webpack, Immer, уметь проводить тестирование и работать со Storybook. Разные команды используют разные инструменты, причём младшие и старшие разработчики обычно находятся в одном стеке разработки.
Что нужно знать: HTML, CSS, JS, TypeScript, webpack, React, Immer, Storybook, юнит-тесты, React Redux, Vue. js (Vuex).
Заключение
У каждой компании свой набор требований и своя сетка грейдов. Но есть технологии, которые требуются почти на любой работе: HTML, CSS, JavaScript, TypeScript и реактивные фреймворки. Советуем хорошо изучить их, чтобы подходить максимальному числу работодателей. А если хочется попасть в конкретную компанию, заранее узнайте, какой там стек, и прицельно изучайте эти технологии.