Поговорим о фронтенд-вакансиях

Привет, в этом материале я расскажу про текущую ситуацию на рынке фронтенд-вакансий (с точки зрения технологий, а не зарплат). Затрону темы портфолио и тестовых заданий.

В статье отсутствуют статистические данные, всё написанное — моё личное мнение. Чтобы слегка усилить «важность» моего мнения, скажу, что официально занимаюсь разработкой с 2012 года, это помогает мне выжить.

Для написания статьи я посмотрел:

  • вакансии работы в офисе в Москве (уровень Junior);
  • вакансии работы в офис в Москве (уровень Middle и выше);
  • вакансии удалённой работы на Stack Overflow jobs (уровень Middle и выше);
  • пообщался с коллегами.

Зачем?

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

Дата просмотра вакансий — 4 марта 2019 года, раннее утро (GMT+3).

Junior

Всего на HeadHunter по запросу «Frontend» найдено 1255 вакансий (не все из них про фронтенд).

По запросу «Junior frontend» — 63 вакансии (и не все из них Junior-разработчики).

По запросу «Верстальщик HTML» — 143 вакансии.

Всего по запросу «Верстальщик» — 341 вакансия.

Вывод 0: с вёрсткой заскочить в горящий поезд фронтенд-зарплат легче. Горящий, потому что со всех сторон давит реклама о том, как у нас весело (у нас и правда весело, но усилий приложить нужно порядком, как и везде).

Про вёрстку

Про вёрстку интересный расклад. Все просмотренные вакансии с фильтром оклада от 200 тысяч рублей (дабы нагулять аппетит) требуют знание HTML, CSS (что логично) и умение адаптивно верстать красивые интерфейсы (что нелогично, так как я не люблю вёрстку).

Вывод 1: вёрстку можно не любить, но лучше освежить свои знания и сверстать на досуге макет по последнему слову техники (Flex, Grid).

При устройстве на работу в качестве Middle-разработчика и старше у вас гораздо больше шансов делать то, что нравится. Речь не только про вёрстку. Например, при желании и возможности такого разделения в команде вы будете заниматься преимущественно автоматическим e2e-тестированием.

P.S. Cитуация с Remote-предложениями на SO ещё больше намекает на необходимость актуального навыка верстки. Кстати, на данный момент вакансий всего 46.

P.P.S. Я опросил знакомых русских middle-разработчиков и старше. Большинство не верстает (выборка крайне маленькая — восемь человек, но близка к моему опыту, я тоже очень давно не верстал). Зарубежные коллеги с моего последнего контракта верстают на 100% (опрошено четыре человека).

Middle

Если вы уверенно справляетесь с текущими задачами на должности Junior, то вы как минимум готовы к тому, чтобы смотреть на позиции Middle.

Я уверен, вас не испугает большое количество библиотек и инструментов в описании вакансии, так как в процессе работы на позиции Junior вы уже с ними познакомились. Однако вам придется усердно налечь на основы Javascript, чтобы быть готовым решать задачи на собеседовании на чистом Javascript.

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

Вывод 2: для выхода в средний дивизион вам строго необходимы знания нативного (Vanilla) Javascript.

Если добраться до уровня Middle без чтения на английском вы сможете, то дальше — увы.

Вывод 3: читаем на английском документацию и туториалы. Переводим по словам, по фразам день за днем. Постепенно необходимость заглядывать в словарь разительно уменьшится.

Senior, Team lead

Вкусная позиция, большая ответственность.

Добавляйте в список того, что вам потребуется:

  • CI/CD, Docker, Kubernetes — как будете «поставлять свой продукт». Здесь вам на помощь придет коллега из цеха «админов», но это не точно.
  • Типизация (Flow или Typescript). Вы этому, скорее всего, научитесь на Middle-позиции.
  • Вёрстка и всё, что вокруг: SVG, Canvas, WebGL... (зависит от специфики компании).
  • Backend на любом из языков (в том числе подойдёт и Node.js), а также навыки работы с базами данных.
  • Практический опыт и понимание, как построить большое приложение.
  • Умение проводить code review.
  • Английский язык на уровне прохождения собеседований (не совсем актуально для русскоговорящих компаний, однако такие игроки на нашем рынке есть).

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

Для позиции Team lead вам потребуется опыт руководства командой.

Вывод 5: не отказывайтесь стать руководителем команды будучи на любом уровне развития. В опыт «руководства» зачтётся даже то, что вы руководили email-рассылкой и парой верстальщиков, когда сами были верстальщиком.

Портфолио

Для устройства на позицию Junior — строго обязательно. В портфолио можно положить вёрстку макетов из интернета и прикрепить профиль на GitHub, где вы будете коллекционировать тестовые задания и ваши поделки.

Дальше до уровня Middle всё просто — у вас будет что показать, так как вы должны были что-то делать, пока работали на позиции Junior.

Senior-уровень потребует от вас крепкого проекта, над которым вы работали, в который внесли значимый вклад. Либо потребуется ваш хобби-проект. Я специально не пишу «вклад в opensource», потому что «вкладывать туда» обычно некогда.

Вывод 6: регулярно прокачивайте свой уровень. Берите ответственность на работе за какие-то фичи. Коллекционируйте заслуги и минимум раз в год обсуждайте повышение.

Позиция Team lead потребует внушительный проект за спиной или вы станете Team lead на текущей работе.

Вывод 7: на уровне Middle постарайтесь попасть в сильную команду. Смотрите и впитывайте: как проходят code review, как релизится проект, как происходят «планёрки».

Тестовые задания

Выполнение ТЗ для позиций Junior, Middle — строго обязательно. Если вам не дали ТЗ, задумайтесь, а не «шарашкина» ли это контора. Все сомнения должно развеять собеседование.

На позиции выше Middle тестовые задания чаще не дают, чем дают. На собеседовании вы решаете задачи, рассказываете о том, что умеете, знакомитесь с членами команды, задаёте вопросы. Такое собеседование может быть достаточно длинным по времени.

Итого

Технологии

Учим (актуализируем) вёрстку, разбираемся в типизации, читаем на английском.

Лирика

Первый шаг, как обычно, самый трудный. Формируйте портфолио из тестовых заданий и макетов. Тестовые задания иногда можно найти прямо на сайте компании в разделе с вакансиями.

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

Senior frontend developer — на сайтах с вакансиями выглядит красиво, особенно рядом с указанной зарплатой. Думаю, что потребуется три года минимум, начиная с того дня, когда вы начали работу на позиции Junior.

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

0
88 комментариев
Написать комментарий...
Ilya Konovalov

Что то про мидла вообще мало. Никаких советов по стеку. Чистый js это прекрасно, но как правило все это идет в связке с фреймворками сегодня. Или я не прав?

Ответить
Развернуть ветку
Anton Usov

Да хрен найдешь хорошего Мидла. Ищем, можно без React, Vue и прочего. Переезд в Австрию оплачиваем. Не найти, наизучают фремворкки, а про чистый JS на половину вопросов ответить не могут, верстают как коровы и тест кейсы хрен знает как делают

Ответить
Развернуть ветку
Anton Chukanov

Либо это нерелевантные вопросы (у меня спрашивали, помнится, про вычисления длины вектора на собеседовании на позицию фронтэнд-разработчика), либо на какие-то тонкости, с которыми в практике никто не сталкивается. Ну либо совсем не везет.
Скиньте свою вакансию, получите отзыв, почему не те разработчики идут к вам на интервью.
Перебраться в Европу - конечная цель очень большого числа разработчиков, не должно быть с потоком проблем.
Разве что, у вас стоит в требованиях fluent english, это отсекает 90% соискателей: большинство хорошо понимает речь, но может объясняться кое-как, простыми фразами, совсем не fluent.

Ответить
Развернуть ветку
Anton Usov

вот https://jobs.lever.co/tourradar/b8264bd3-d987-4273-a91c-f2d56912f074
Что тут не так? Описание стэка? ну это бтольше чтобы заинтересовать тех кто хочет расти.

Ответить
Развернуть ветку
Anton Chukanov

"Good communication skills. We communicate all day long."
Какие коммуникационные скилы у разработчиков? У нас в команде из 15 человек был только 1 экстраверт, который любил поговорить. Всех остальных это пугает.

"a taste for beautiful UI"
Вообще тяжело с этим у всех, только дизайнер спасает.

"Zepto"
Первый раз слышу, погуглил, а там:
"UPD: провел сравнительные тест – ладно, выкидываем Zepto, а новый jQuery(1.8.1) достаточно хорош, особенно в плане создания новых элементов."

"Strong front-end testing skills (unit and end-to-end)"
Про юнит-тесты никогда не понимал требований. Даже если человек в жизни никогда их не писал, сколько нужно времени, чтобы научиться? День?

"Understanding of HTTP/2 protocol features"
Ох.

"Knowledge of modern Web APIs, responsive design and mobile first approach (incl. supporting IE11, iOS, Android etc.)"
"Experience with SEO in consumer-facing websites"
Вам не фронтенд нужен, а верстальщик, вам нужно переименовать вакансию либо убрать лишние пункты.

А откуда такой стэк большой? У вас так много проектов, что нужно использовать 4 разных языка для бэкенда?

Ответить
Развернуть ветку
Anton Usov

"Какие коммуникационные скилы у разработчиков? У нас в команде из 15 человек был только 1 экстраверт, который любил поговорить. Всех остальных это пугает."

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

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

"Первый раз слышу, погуглил, а там:"
Легаси. Если ваканися интересна кандидат поймет что jQuery/Zepto это одна байда

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

"Ох."
Потратить 30 минут на чтение. Это скажем так пункт на проверку заинтересованности, потратит ли кандидат немного времени на изучение вакансии.

"Вам не фронтенд нужен, а верстальщик, вам нужно переименовать вакансию либо убрать лишние пункты."
Фронт должен уметь верстать. Это не сложно.
про сео - ну опять же, вопрос про потратить немного времени чтобы иметь понимание.

"А откуда такой стэк большой? У вас так много проектов, что нужно использовать 4 разных языка для бэкенда?"
PHP - основа, Phyton - для BI/Data Since, NodeJS/Typescript - для React проектов, Java для QA

PS: спасибо за отзыв, можно подумать про некоторые пункты.

Ответить
Развернуть ветку
Danil Shashkov

По поводу jQuery, Zepto в вакансии можно добавить, что это легаси код,
работать с которым особо не придется (или придется?). Иначе вакансию могут просто не дочитать до конца и дропнуть.

Потратить 30 минут на чтение. Это скажем так пункт на проверку заинтересованности, потратит ли кандидат немного времени на изучение вакансии.

Имеется в виду, чтобы почитать после изучения вакансии об http/2? Если да, то почему это нельзя сделать на рабочем месте уже?

про сео - ну опять же, вопрос про потратить немного времени чтобы иметь понимание.

Зачем фронтендеру знать СЕО?

Ответить
Развернуть ветку
Mr. Burns

Чтобы семантичная верстка, соблюдение иерархии заголовков, a11y и прочие прелести цивилизованного фронта. Если упростить, то верстка просто должна соответствовать спекам. На этом знания SEO для фронтенда заканчиваются. Но так как сегодня овердохера «фронтендеров» а-ля формошлепы на фреймворке (ну или javascript программисты), которым уже верстать западло, то и приходится им напоминать о, так сказать, корнях.

Ответить
Развернуть ветку
Danil Shashkov

Разве a11y имеет отношение к SEO?

Ответить
Развернуть ветку
Mr. Burns

Через поведенчские факторы, почему нет? Естественно я не утверждаю на 100%. К тому же это на законодательных уровнях. Americans with Disabilities Act, ADA, в США, для гугла, имхо это имеет вес. У нас 419-ФЗ, но только для гос. сайтов, так что не берусь судить о степени значимости.

Ответить
Развернуть ветку
Mr. Burns
Ответить
Развернуть ветку
Make Luv

А бэкендщики-дотнетчики случайно не требуются?

Ответить
Развернуть ветку
85 комментариев
Раскрывать всегда