ЧАРЛЬЗ ТРАЙХЛЕР, 18 ФЕВРАЛЯ 2019 Г.

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

Программировать в условиях нехватки времени сложно. Это особенно актуально во время собеседований. Упражнение по кодированию, которое при нормальных обстоятельствах могло бы показаться простым, в ярком свете комнаты для собеседований каким-то образом становится сложной задачей. Гормоны стресса омрачают ваше мышление во время собеседований (хотя, к сожалению, ни борьба, ни бегство не являются эффективным ответом на угрожающую проблему программирования). И может показаться, что вопросы созданы извращенно сложными. Я вообще-то думаю, что это больше, чем просто чувство.

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

Вопросы на собеседовании слишком сложны

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

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

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

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

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

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

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

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

Вопросы на собеседовании слишком короткие

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

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

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

Вывод

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

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

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

Если вы решите задать более простые вопросы во время собеседований по программированию или найдете этот пост полезным в каком-то другом смысле, я буду рад получить известие от вас! Напишите мне на [email protected]

[1] Лучшим показателем того, как кто-то будет выполнять свою работу, является выборочный тест работы (29 процентов). Это влечет за собой предоставление кандидатам образца работы, аналогичной той, которую они выполняли бы на работе, и оценка их выполнения в ней . - (Wired Magazine)