Как организовать написание кода на собеседовании

19 сентября 2019 г.

В Byndyusoft на собеседовании кандидаты пишут код в паре с одним из наших опытных разработчиков. Цель этой практики — определить настоящий, боевой уровень разработчика, а не теоритический.

Если с кандидатом только проговорить или дать тестовое задание на дом, то можно серьезно ошибиться в его компетенциях. В противовес этим подходам программирование в паре с экспертом компании дает почти 100% результат в определении компетенций. Это как дать водителю автомобиль или дать пианисту пианино: мастерство или неумение сразу бросаются в глаза.

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

Дмитрий Дементий из образовательной платформы Hexlet взял у меня интервью на тему написания кода во время собеседования. Этот вопрос беспокоит молодых разработчиков, которых Hexlet взращивает на своих курсах.

Интервью. Написание кода на собеседовании: нормальная практика или слишком жёсткое испытание?

Q: Как вы относитесь к ситуации, когда кандидата на должность разработчика просят написать код во время собеседования? Это в целом нормальная практика?

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

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

Также я против написания коммерческого кода на собеседованиях. Задания должны быть абстрактными.

Q: Насколько эффективен этот прием? Что он может показать потенциальному работодателю?

Предлагая кандидату написать код на собеседовании, мы снижаем риски:

  1. риск низкой компетентности;
  2. риск принять на работу человека с хорошим резюме и плохими профессиональными качествами;
  3. риск взять в компанию человека, который не умеет пользоваться банальными инструментами.

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

Когда человек пишет код у нас на собеседовании, это происходит в паре. Здесь можно увидеть, умеет ли человек разбивать задачи на подзадачи. Становится понятно, знает ли он синтаксис языка. А это знание закрепляется опытом.

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

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

Кандидаты на собеседованиях обычно волнуются, кто-то сильно, кто-то не очень. Из-за этого человек может растеряться и не показать свои возможности. Это надо как-то учитывать? Возможно, надо как-то успокоить человека, дать ему время прийти в себя?

Если человек пришёл на собеседование, он заранее предупреждён. Предложение написать код можно рассматривать как имитацию боевых условий.

Волнение — часть рабочего процесса, и волноваться на собеседовании или на работе нормально. Но специалист должен давать результат даже в условиях стресса.

Q: Как вести себя кандидату, которого просят написать код? Например, если что-то забыл, можно попросить помочь? Можно ли подглядывать, например, смотреть в справочнике?

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

Если вам дали коммерческий код, надо тоже говорить с интервьюером. Скажите, что готовы взять некоммерческий абстрактный код, но код из реального рабочего проекта брать не надо.

Просить помощь или смотреть что-то в интернете тоже нормально. Если потенциальный работодатель запрещает это, объясняйте, что обычно вы пользуетесь справочником MDN, документацией той или иной библиотеки, Stackoverflow.

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

Q: Сравните пожалуйста написание кода на собеседовании с выполнением тестового или изучением портфолио. Какой способ оценки кандидата предпочтителен?

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

Больше разных мнений в статье на Hexlet: Написание кода на собеседовании: нормальная практика или слишком жёсткое испытание?

Вакансии Byndyusoft в России и запись на интернатуру.

Комментариев нет:

Отправить комментарий

Моя книга «Антихрупкость в IT»

Как достигать результатов в IT-проектах в условиях неопределённости. Подробнее...