Проектирование оценок

Проектирование теста по кодированию для frontend-разработчика, отражающего реальную работу

ClarityHire Team(Editorial)3 min read

Что на самом деле требуется от frontend-разработчиков

Большая часть работы frontend-разработчика — это не алгоритмы. Это:

  • Чтение незнакомого дерева компонентов и определение, где находится состояние
  • Интеграция ответа API в UI без нарушения граничных случаев (загрузка, ошибка, пусто)
  • Написание CSS, который остаётся функциональным, когда контент длиннее, чем предусмотрено дизайнером
  • Умение определить, когда переотрисовка — причина проблемы производительности
  • Знание того, когда добавить зависимость, а когда нет

Вопрос LeetCode о реверсировании бинарного дерева не фильтрует ничего из этого. Более того, он исключает кандидатов, которые отлично справляются с реальной работой, но не интересуются алгоритмическими головоломками.

Тест на 90 минут, который измеряет реальные навыки

Дайте кандидату небольшое неработающее React-приложение с тремя проблемами:

  1. Тонкая ошибка. Список перерисовывает все строки при одном изменении, потому что проп key — это индекс массива. Список работает с задержкой при количестве элементов >100, но это не сразу очевидно.
  2. Неполная функция. Форма, которая отправляет данные, но не обрабатывает состояния загрузки и ошибки.
  3. Проблема со стилем. Макет карточки, который ломается, когда заголовок длиннее 40 символов.

Попросите исправить все три. Предоставьте работающее приложение, кодовую базу и свободу добавлять библиотеки (или нет).

Это измеряет реальные навыки: чтение незнакомого кода, распознавание паттернов, суждение о том, когда добавить зависимости, вкус в CSS, полнота в обработке граничных случаев.

Критерии оценки

Оценивайте четыре измерения, от 1 до 4 каждое:

  • Диагностика ошибки. Определили ли они причину перед исправлением? Или просто залатали симптом?
  • Полнота обработки граничных случаев. Загрузка, ошибка, пусто — покрыли ли они все без подсказок?
  • Качество кода. Наименование, структура, выбор зависимостей.
  • Коммуникация. Оставили ли они комментарии или краткую записку с объяснением компромиссов?

Опытные кандидаты обычно получают 3–4 балла по всем четырём измерениям. Тест не обязательно должен быть сложным, чтобы хорошо различать кандидатов — он должен быть реальным.

Как проводить тест, чтобы результаты не просочились

  • Чередуйте 3–4 варианта неработающего приложения.
  • Назначайте кандидатам случайным образом выбранный вариант.
  • Используйте сигналы целостности ClarityHire по нажатиям клавиш и согласованности кода, а также сигналы целостности, чтобы кандидат, который скопировал исправление откуда-то ещё, был отмечен для проверки рецензентом на последующем звонке.
  • Всегда дополняйте тест 30-минутным следующим этапом, где кандидат объясняет свои изменения. Если они не могут объяснить собственные изменения, оценка снижается соответственно.

Что никогда не делать

  • Домашние задания на 4 часа. Вы потеряете своих лучших кандидатов компаниям, которые уважают их время.
  • Открытые задания вроде «создайте клон X». Разброс слишком велик; критерии оценки не работают.
  • Тесты, требующие настройки локальной среды с нуля. Используйте размещённую IDE, чтобы время настройки было нулевым.

Правильный frontend-тест занимает 90 минут, отражает реальный рабочий тикет, и выдаёт оценку по критериям, которую вы можете защитить на встрече с обратной связью. Это основа любой воронки найма frontend-разработчиков.

frontendтест по кодированиюпроектирование оценокreact