Хабрахабр

[Перевод] Простые и длинные задачи лучше отсеивают кандидатов, чем короткие и сложные

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

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

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

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

Вы можете оценить весь процесс: сколько времени требуется на решение, насколько чист код и сколько усилий потребовало решение. Однако правильный ответ — не единственный источник сигнала во время собеседования. Наш анализ показывает, что этот второй источник сигнала (процесс) почти так же важен, как и первый (правильность).

Вопросы, которые несут наибольший сигнал процесса, значительно проще, чем вопросы, которые несут наибольший сигнал правильности. Но здесь дополнительный компромисс. Если вопрос достаточно сложный, то трудности возникнут у всех кандидатов (даже у тех, кто в конечном итоге ответит на него правильно). Причина становится ясной, если свести процесс к тому, сколько усилий потребовало решение (аспект процесса, наиболее непосредственно связанный с трудностью задачи). Так что этот аспект не несёт практически никакого сигнала при оценке усилий.

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

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

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

Задавать более простые задачи — не значит облегчить собеседование. Но я хочу чётко заявить, что это не означает снижения планки и приёма большего количества кандидатов. Процесс найма по-прежнему может оставаться очень строгим, если задавать относительно простые вопросы, но требовательно их оценивать. Уровень сложности вопросов и порог принятия решений не зависят друг от друга. А что вы будете делать с этим сигналом, зависит только от вас. Наш вывод заключается в том, что более простые вопросы дают больше сигналов.

Стресс заставляет кандидатов недооценивать свои возможности. Более простые вопросы также снижают уровень стресса, что является важным преимуществом. Мне кажется, интервьюеры склонны недооценивать влияние стресса на кандидатов, в то же время переоценивая свои собственные способности. Когда кандидат чувствует себя более комфортно, то проявляет максимальный потенциал, что делает собеседование более предсказуемым. Чтобы противостоять этой предвзятости, мы в Triplebyte приняли правило: интервьюеры должны дать на решение задачи в 3 раза больше времени, чем то время, за которое могут решить задачу сами, по их мнению. Когда вы задаёте задачу, легко забыть, сколько кода в реальности можно написать за 30-60 минут. Обычно это соответствует более-менее правильной оценке.

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

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

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

Задавая кандидатам сложные задачи, компания попадает в порочный круг. Вопросы изначально слишком трудные и короткие, что приводит к неоптимальным решениям о найме. Эти решения основаны на шумных сигналах. Когда компания видит плохие результаты, то пробует исправить ситуацию, сделав процесс отбора ещё более строгим, что обычно означает ещё более сложные вопросы. Но это только снижает точность собеседований, и так далее. От такого замкнутого круга страдают и компании, и кандидаты. Я вижу, что компании упускают таланты, а кандидаты упускают рабочие места — и напрягаются больше, чем нужно.

Они могут не только повысить точность отбора, но и упростить свою работу. Надеюсь, интервьюеры сделают выводы. Гораздо легче придумать простые, многоступенчатые проблемы, чем извращённо сложные короткие вопросы.

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

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть