Различия в компетенциях при оценке frontend- и backend-разработчиков

С точки зрения рекрутера или HR в оценке backend- и frontend-разработчика больше сходств, чем различий - мы ищем человека, обладающего определенными hard и soft-скиллами. О различиях в оценке этих IT-специалистов рассказывает Ирина Лапиньш, ведущий консультант специализированного направления подбора КАУС-IT.

Различия в компетенциях при оценке frontend- и backend-разработчиков

Основные задачи оценки разработчиков

Основные задачи при оценке кандидатов на вакансию разработчиков следующие:

  • Определить уровень кандидата
  • Дать развернутое описание опыта и мотивации
  • Дать комментарии, в какую команду, какой проект и под какие задачи кандидат подойдет лучше всего.

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

Требования к специалисту, как правило, формулируют в компании. Очень часто ожидания к будущему специалисту отлично сформулированы. Иногда рекрутер, видя рынок труда, может дать заказчику рекомендации и скорректировать профиль вакансии после согласования.

В оценке компетенций фронтенд- и бэкэнд-разработчиков есть отличия.

Frontend-разработчики пишут клиентскую часть продукта - интерфейс, с которым взаимодействует пользователь. В случае с сайтом её формирует и выводит на экран браузер, который работает с HTML, CSS и JavaScript.

Backend-разработчики занимаются разработкой внутренней части продукта, которая находится на сервере и скрыта от пользователей. Для её разработки могут использоваться самые разные языки, например, Python, PHP, Go, JavaScript, Java, С#.

Не каждый инхаус-рекрутер владеет глубокими профильными знаниями в IT-отрасли, поэтому hard skills – владение языком программирования, знания кандидата про базы данных, архитектуру и т.п – оцениваются в компании на техническом собеседовании. Однако soft-скиллы (а они не менее важны) рекрутер может оценить достаточно неплохо. Как правило, требования к «мягким» навыкам конкретного кандидата также определяются компанией. Конечно, многим хотелось бы в команду приятного легкого человека, с кем комфортно общаться. Но в целом, если IT-специалист способен общаться – это уже хорошо. Рекрутер обязательно сделает пометку об особенностях общения, если они есть.

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

Примеры технических вопросов для первичного собеседования

Вопросы для С++

Уровень middle: Какие виды деревьев знаете?
Уровень senior: Какой был объем рефакторинга на проекте? С какими трудностями при рефакторинге сталкивались?

Вопросы для Java-разработчика

Уровень middle: Доводилось ли заниматься разработкой многопоточных программ? Каких?
Уровень senior: Работал ли с Hibernate? Какие уровни кэширования знает? Для чего нужны уровни кеширования?

Вопросы для РНР-разработчика

Уровень middle: Расскажите об уровнях изоляции в РНР.
Уровень senior: Что такое кластерный индекс?

Все ответы, конечно, записываем.

 

Нужны cильные и компетентные frontend- и backend-разработчики?
Экономим ваше время. Находим редких специалистов. Покажем первых кандидатов в оптимальные сроки.
Заказать подбор

Бывают ли универсальные разработчики?

Иногда работодатель – например, небольшая компания - хочет видеть универсального разработчика.

Как правило, разработчики сосредоточены на чем-то одном: это или backend, или frontend. Универсальный разработчик - фуллстек – встречается редко, и редко, когда специалист идеален во всем. Как правило, это или сильный back и немного front, или сильный front и чуть-чуть back. Тем не менее, оба типа специалистов востребованы.

Я считаю правильным, когда специалист отдает предпочтение двум основным языкам, а остальные идут как дополнение – это значит, что кандидат силен именно в этих двух языках. Когда языков много, сложно быть отличным специалистом в каждом.

Подозреваю, что есть какие-то личные предрасположенности, которые делают привлекательными для специалиста back или front. Однако бывает и так, что иногда разработчики «мигрируют» из одной области в другую.

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

Когда я оцениваю разработчика, все равно смотрю на образование, особенно когда возникают какие-то сомнения или складывается неоднозначное мнение о кандидате. Лично я больше придаю значение профильному образованию в бэкенде. Бэкенд-разработка более сложна по сравнению с фронтенд-разработкой – она связана с базами данных, с запросами к этим базам, с оптимизацией. Бэкенд-разработчик обходится без видимых элементов интерфейса, он работает над логикой.

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

Всегда спрашиваю разработчика, какие подкасты слушает, какие курсы проходит – куда планирует двигаться, какие книги читает.

На мой взгляд, очень хорошо, когда любой разработчик знает математику. Конечно, мы не задаем вопросы на знание математики, однако в компаниях, случается, спрашивают, например, про алгоритмы. Не всегда это нужно для работы – чаще скорее на определение общего уровня.

Особенности компетенций фронтендера

Что должен уметь фронтенд-разработчик, сильно зависит от компании, проекта и команды. В большой команде из узких специалистов, закрывающих все потребности проекта, да ещё с командами админов и тестеров рядом, фронтендеру, возможно, не придётся ничем заниматься, кроме написания клиентского кода на JS или компилируемого на его языке - чаще всего для фронтенда используют HTML, CSS, язык JavaScript и связанные с ним фреймворки — React.js, Angular и Vue.js.

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

Если нужен просто верстальщик, задача которого - сверстать полученный от дизайнера макет, то для него одни требования: в первую очередь, важны знания HTML и CSS.

Начальное знание JavaScript также очень желательно.

Полноценный фронтенд-разработчик хорошо знает JavaScript, хорошо разбирается во фреймворках и библиотеках, понимает, что находится «под капотом» на серверной стороне.

Он знает SQL, работает с контролем версий (Git, GitHub), знает графические редакторы, работал с популярными CMS, понимает принципы построения бэкенда и разбирается в серверных технологиях.

JavaScript – это основной инструмент фронтендера. Далее идут различного рода фреймворки и библиотеки, самые популярные из которых - Angular, Node.js, React.

Язык JavaScript изначально создавался как инструмент для создания интерактивных элементов на страничке. Этот язык постоянно изменяется, появляется новый функционал, постоянно появляются новые фреймворки. Про фронтендеров есть даже шутка «вышел новый фреймворк - нужно срочно все переписать». Подозреваю, что во фронтендеры приходят люди, которые определенным образом видят подход к разработке и им это нравится.

Во фронтенде больше девушек и, как мне кажется, больше экстравертов. Наверное, это можно объяснить тем, что фронтендеры работают с интерфейсом, и разработчики тоже как будто более экстравертированы, Активность на мероприятиях фронтов на порядок выше, чем у бэкэндеров, мероприятий для фронтов тоже больше. У фронтендов каждые полгода выходит новый JavaScript фреймворк.

Особенности компетенций бэкендера

Так же, как и фронты, бэкенедеры могут быть разного уровня, например, для небольшого интернет-магазина вполне достаточно связки PHP-Ajax-нужная СУБД-немного HTML. Для крупного сайта бэкенд-разработчик обязан не просто иметь базовые навыки, но и работать с высокими нагрузками, микросервисной архитектурой и контейнеризацией (Docker, Kubernetes), знать системы мониторинга (типа Zabbix, Grafana).

Требования к бэкендеру более чувствительны к особенностям компании и её бизнес-процессам, чем у фронтендера. Например, «необходим опыт работы в платежных системах», «знание стандарта PCI DSS» (стандарт защиты информации в индустрии платежных карт) или даже «знание основ продаж или опыт в продажах», если компания занимается продажами. Дело в том, что бэкенд-разработчик больше погружён в бизнес-процессы компании, он должен не только разрабатывать код в соответствии с ними, но и подстраивать какие-то вещи под конкретные задачи, понимать, как все в компании работает изнутри.

Хотите научиться грамотно подбирать и оценивать IT-специалистов?
Подробнее

Бэкэндер в обязательном порядке должен:

  • знать хотя бы один «серверный» языка программирования: PHP, Go, ASP.NET, C/C++, Python, Ruby, Java
  • знать API (REST, SOAP — всё реже)
  • понимать принципы работы серверов Apache, NGINX, IIS и прочее
  • уметь писать тесты
  • знать основы сетевой безопасности и инструменты её обеспечения
  • знать популярные веб-фреймворки, которые способны решать задачи разработки конкретного приложения
  • писать запросы запросов к БД и уметь проектировать их
  • обязательно знание основ фронтенда — без этого крайне непросто проектировать и писать приложение.

Огромным плюсом будет:

  • администрирование UNIX или знание Linux
  • знание принципов работы HTTP
  • навыки составления и оценки технического задания.

Девушек здесь меньше. Возможно, им просто неинтересна эта область. Любая бэкэнд-часть - она про хранение данных: есть базы данных разных типов, туда нужно что-то положить, потом прочитать, чаще всего это больше сложной математики. Ранее существовало такое мнение, что программирование – это мужская работа. Сейчас во многом этот стереотип преодолён, но в среде бэкэнд-разработчиков женщин по-прежнему мало.

Интровертов в бэкенде больше, но они не менее успешно общаются друг с другом.

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

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

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

Интересные статьи по теме
Сократите затраты
на подбор персонала