Как стать автором
Поиск
Написать публикацию
Обновить

Хватит мучить кандидатов: руководство как улучшить фронтенд-собеседования

Уровень сложностиПростой
Время на прочтение4 мин
Количество просмотров2.2K

Каждый фронтенд-разработчик хоть раз сталкивался с неадекватными вопросами на собеседованиях: алгоритмы на доске, задачи из учебников, размытые требования. В итоге компании месяцами ищут сотрудников, а кандидаты тратят время впустую. Давайте разберём, как проводить собеседования, чтобы действительно найти нужного специалиста.

Шаг 1. Требования-абстракции: выберите ключевые навыки

Некорректный вариант: «Требуется Senior JS-разработчик с 5+ годами опыта». Почему это не подходит: Неясно, какие навыки важны и что будет делать разработчик.

Оптимальный вариант: «Ищем специалиста, который:

  • Оптимизирует рендеринг длинных списков в React.

  • Работает с legacy-кодом на jQuery.

  • Настраивает мониторинг производительности (Lighthouse)».

Как это сделать:

  1. Определите 3 ключевые проблемы вашего проекта.

  2. Для каждой проблемы сформулируйте конкретный навык, который поможет её решить.

Пример:

  • Проблема: Сайт тормозит при прокрутке длинных списков.

  • Навык: Оптимизация рендеринга в React.

Ну и связывайте как-то описание вакансий и то, что нужно будет в работе.

Так не надо (Тут даже с фреймворком не определились)
Так не надо (Тут даже с фреймворком не определились)
Так надо (не идеально, но дает общее представление)
Так надо (не идеально, но дает общее представление)

Шаг 2. Вопросы для викторины: переведите теорию в практику

Неправильный вариант: «Что такое Virtual DOM?» (Ответ можно легко найти в интернете за 10 секунд).

Правильный вариант: «Почему этот компонент ререндерится при изменении не связанных пропсов? Как это исправить?»

Формат хорошего вопроса:

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

Пример:

  • Проблема: В нашем проекте компонент чата ререндерится слишком часто, что приводит к лагам.

  • Контекст: Вот код компонента.

  • Вопрос: Почему компонент ререндерится при изменении state, не связанного с отображаемым содержимым? Как это исправить?

Шаг 3. Продажа розовых пони: будьте честны о проекте

Неправильный пример: «У нас современный стек и интересные задачи». (Хотя на деле — поддержка устаревшего кода).

Правильный пример: «Наш проект:

  • Основной стек: React 18, TypeScript.

  • 30% кода — jQuery (постепенно заменяем).

  • Главная проблема: таблицы с 10 000+ строк тормозят при скролле».

Зачем это нужно:

  • Кандидаты сразу понимают, подходят ли им условия.

  • Экономит время всем участникам.

Шаг 4. Искусственные задачи: давайте реальные кейсы

Неправильный пример: «Напишите QuickSort на доске».

Правильный пример: «Оптимизируйте этот компонент чата:

  1. Найдите причину лагов при скролле.

  2. Предложите решение. (Можно гуглить).

Пример задачи:

Задача: Оптимизируйте компонент чата, чтобы он не лагал при скролле длинных сообщений.

Время на решение: 30–60 минут.

Почему это работает:

  1. Экономит время: Вы сразу видите реальные навыки кандидата.

  2. Снижает стресс: Кандидаты решают практическую задачу, а не абстрактные вопросы.

  3. Улучшает найм: Вы находите тех, кто решит именно ваши проблемы.

Реальный опыт

Немножко историй из жизни: мои собеседования в качестве технического интервьюера начались с фулстек JS разработчиков, и я спрашивал то, что видел на YouTube и из личного опыта. Море теории, совсем чуть-чуть кода, и то в духе «что будет в консоли» или «поправьте один баг в коде из 6 строчек». Итог таких собеседований — почти 50 интервью для поиска одного кандидата, в среднем одно интервью длилось полтора часа, и у кандидата не было возможности показать себя, большой чек-лист вопросов и оценка «хорошо», «нормально», «плохо». Сейчас в моих собеседованиях вообще нет этого чек-листа, и теория появляется во время решения практической задачи на рефакторинг или написания модуля, появился в коде useMemo, задал вопрос, что это, зачем и почему без него не те ощущения. Иногда кандидаты даже не обращали внимания на мои вопросы, думая, что это просто диалог, обычный диалог двух адекватных разработчиков, а не «гения-интервьюера» с «жалким кандидатом», как это обычно ощущается. Сейчас мой рекорд — это найденный кандидат за 7 собеседований, и 3 из них это «гении», которые использовали микронаушники, нейросети и черт пойми что еще. А время собеседования сократилось до 30-40 минут, некоторые собеседования заканчивались через 15 минут из-за того, что кандидат просто не умел решать нужные задачи, а с кандидатами, которых потом принимали на работу, разговор длился около часа.

Про обратную связь

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

Итог

Проводить собеседования — это не просто навык, а искусство. Главное — быть честным, давать реальные задачи и фокусироваться на ключевых навыках.

А как вы проводите собеседования? Сталкивались с вопросами вроде «напишите бинарный поиск на доске»? Поделитесь в комментариях.

Больше подобного контента в Telegram: https://t.me/frontend_nomagic Скоро тут появится чек-лист для проведения хорошего собеседования.

Теги:
Хабы:
-2
Комментарии1

Публикации

Ближайшие события