
Некоторым людям нравятся собеседования с написанием кода. Я к их числу не отношусь.
Недавно мне на LinkedIn попался пост такого содержания:
Мы задаём каждому соискателю тривиальную задачу на программирование. Что-нибудь вроде: «Дан список чисел, нужно вернуть сумму чётных из них». И такая задача не предполагается как сложная или заумная, и её цель не в том, чтобы кого-то отсеять, теоретически.
Это лишь базовая проверка. Разработчик или SRE с опытом от 6 до 10 лет должен решать такие во сне, согласитесь?
Оказывается, нет.
Где-то 75% кандидатов не справляются. И не только джуниоры. Я говорю о людях с приставкой «Senior» в их квалификации. О людях, которые заявляют, что учат новичков. О тех, кто говорит, что имеет за плечами годы опыта в продакшене.
Для меня это загадка.
Поначалу звучит абсурдно. С чего бы вдруг старший разработчик, который уже много лет пишет код, провалился на таком простом алгоритме? Неужели он внезапно забыл, как программировать? Возможно. Но я вижу это иначе.
Небольшой курьёз из жизни
Четыре года назад я пробовал устроиться в Toptal. В итоге я прошёл первый этап. Это было 90-минутное испытание на Codility — всего три задачи, из которых достаточно сделать две. Я сделал все три. Последняя была реально сложной.
После этого я провалил простой тест по лайв-кодингу (из одной задачи), который длился где-то полчаса — примерно, точно не помню. Через пару часов я взялся за эту задачу ещё раз и решил моментально.
Меня это сильно смутило. Задача-то была не такая уж сложная. Я вполне мог её решить, но не справился именно в процессе лайв-кодинга.
Этот эпизод вызвал во мне любопытство, и я начал изучать ситуацию. Оказалось, в научной литературе такой феномен широко известен. Всё дело в стрессе.
Ваш мозг в состоянии стресса
Когда вы оказываетесь в стрессовой ситуации при высоких ставках, например, на собеседовании с лайв-кодингом, то ваш мозг реагирует на неё так же, как на любую другую угрозу. Активируется амигдала, уровень кортизола подскакивает, и работа вашей префронтальной коры, отвечающей за сложные логические рассуждения и рабочую память, нарушается. Нарушение может быть лёгким, умеренным или серьёзным — это будет зависеть от ваших личных особенностей и способности выдерживать стресс.
Рабочая память выполняет важную функцию в подвижном интеллекте, способности рассуждать, решать новые задачи и мыслить абстрактно. Думаю, именно она играет решающую роль при прохождении тестов по лайв-кодингу. Когда работа префронтальной коры нарушается из-за стресса, ёмкость рабочей памяти уменьшается.
Для некоторых людей, особенно тех, кто испытывает даже лёгкую боязнь сцены, становится практически нереально мыслить в состоянии стресса ясно. Ваше внимание сужается. Вы не можете удерживать в голове несколько шагов. Вы забываете, что напечатали буквально несколько секунд назад. Такое ощущение, что ваш IQ падает до 30 пунктов. Как будто вы стали другой версией себя, намного тупее.
Подтверждающие исследования
Пока я писал эту статью, нашёл глубокое научное исследование, которое ставит в этом вопросе точку.
Эта работа называется «Does Stress Impact Technical Interview Performance?», и в её проведении участвовали исследователи из Microsoft. Специалисты, по сути, просто просили участников решить задачу по программированию в двух сеттингах:
-
В приватном, когда человек находится в кабинете один, и никто не смотрит.
-
В публичном, когда присутствует наблюдатель, и рассуждать нужно вслух.

Одна и та же задача, один и тот же тайминг, но разные уровни стресса.
В результате участники, за которыми наблюдали, справились вдвое хуже тех, которые решали задачу без сторонних глаз.
Когнитивные показатели в публичном сеттинге не только оказались ниже в среднем, но и демонстрировали намного больший разброс (высокую дисперсию). Это говорит о том, что некоторые кандидаты значительно хуже справляются в состоянии стресса, в то время как другие справляются одинаково или даже чуть лучше. Вот почему лайв-кодинг — это несправедливо.
Все эти открытия не стали для меня новостью. Но выяснилось и кое-что реально удивительное — ни одна девушка из участвовавших не прошла тест в публичном сеттинге, зато все они прошли его в закрытом. Поэтому, если ваша компания хочет «поддержать привлечение женщин в техно-среду», но при этом проводит собеседования с лайв-кодингом, поздравляю…вы используете научно подтверждённую технику отсева.
Эффективность в состоянии стресса
Мне нравится рассматривать лайв-кодинг как способ проверки эффективности в состоянии стресса.
Существуют компании, немного, для которых этот аспект реально важен. Некоторые даже упоминают это в описании вакансий. Они ищут кандидатов, которые хорошо справляются в условиях постоянного давления (держитесь подальше от таких компаний). Если рассматривать этот случай, то да, лайв-кодинг поможет отсеять непригодных.
Но в большинстве компаний смотрят на это иначе.
Чаще всего в вакансиях не указывается устойчивость к стрессу. Рекрутёры не заявляют, что работать придётся «под высоким давлением». Они не ищут людей, которые будут «хорошо справляться в условиях стресса». Им просто нужен хороший разработчик.
Разработчик, который впадает в ступор в процессе 30-минутного собеседования по LeetCode, вполне может быть тем, кто в обычном состоянии способен лихо поставлять безупречный код, писать прекрасную документацию и отлаживать сложные системы. В этом случае вы отклоняете не плохого разработчика, а человека, который плохо справляется, когда за ним кто-то смотрит.
И это не тот навык, который требуется на большинстве должностей.
Компании преподносят лайв-кодинг как проверку способности писать код. Но это заблуждение. Хуже того, это лишь усиливает боязнь сцены. Такой подход заставляет кандидатов верить, что этот тест надёжно отражает их навыки. Но для большинства это не так.
Лайв-кодинг не измеряет то, что мы хотим с его помощью измерить. Этот метод точнее отражает уровень кортизола в состоянии стресса, нежели навыки программирования.
Противодействие стрессу
Мы не можем изменить тот факт, что лайв-кодинг является распространённой практикой на собеседованиях. Но мы можем попытаться снизить вызываемый им стресс.
Лучший способ снизить острое реагирование мозга на стресс — это часто ему подвергаться. Проводите имитированные сеансы лайв-кодинга, похожие на настоящие. Для этого подойдут платформы вроде Pramp, Interviewing.io или Leet Code Mock Assessment.
Можете дополнительно установить таймер, включить запись (симулируя «наблюдателя») и рассуждать вслух. Постепенно повышайте степень давления (например, пригласите друга в качестве наблюдающего).
Я также думал поэкспериментировать с БАДами, которые должны помочь побороть стресс.
-
L-тирозин: в состоянии стресса истощаются катехоламины, которые могут лежать в основе упадка когнитивных способностей в подобных ситуациях. Пищевые добавки с L-тирозином должны помочь восполнить баланс этих нейротрансмиттеров в состоянии стресса.
-
L-теанин: аминокислота, содержащаяся в чае и отвечающая за расслабление. Было доказано, что она снижает стресс и улучшает внимание.
Сам я эти добавки ещё не применял (для собеседования), и никого к этому не призываю. Но мне кажется, что есть смысл с ними поэкспериментировать, особенно, если вы испытываете боязнь сцены. Но сначала определённо нужно протестировать их приём в тренировочном контексте. Все мы разные, и то, что работает для одного, не всегда сработает для другого.
Если вы не справляетесь с лайв-кодингом, это ещё не значит, что вы плохой разработчик. Это лишь значит, что вы человек.
Дополнение #1
Эта статья породила на HN очень бурную дискуссию со множеством прекрасных комментариев, и я решил выделить самый популярный, так как считаю, что он заслуживает отдельного внимания.
Не хочу обобщать свой случай на всех, просто расскажу личную занятную историю.
Сегодня я успешный инди-разработчик. Одной из причин, почему я пошёл в эту сферу в тяжёлые времена — для меня сработала поговорка «Чтобы добиться успеха за одну ночь, требуется пять лет» — было то, что я просто не мог никуда устроиться. Против меня работало сразу несколько аспектов: во-первых, мне уже много лет, а в индустрии царит дискриминация по возрасту; во-вторых, у меня нет степени в области компьютерных наук; и в-третьих, я склонен впадать в ступор на собеседованиях с лайв-кодингом.
Но здесь я хочу отметить, что стресс бывает разный. Взять, к примеру, пожарных. Эти ребята готовы решительно броситься в горящее здание, и этим зарабатывают на хлеб. Казалось бы, что может быть более стрессовым? Но при этом многие из них запаниковали бы от одной мысли выступить с речью в не горящем зале, полном незнакомых людей. У меня нет проблем со стрессом на работе, и за время карьеры я успешно справлялся со множеством критических случаев. Но меня воротит от ситуации, когда за мной следит незнакомый, оценивающий мои действия человек, который, подобно Дамоклову мечу, решает вопрос о моём трудоустройстве и финансовом будущем. И я так же, как автор статьи, могу после собеседования без проблем вернуться к тем же задачам и решить их. Интервьюеры, должно быть, думают, что я какой-то самозванец, который не умеет писать код, хотя вся история моей карьеры, на сегодня составляющая уже почти двадцать лет, говорит об обратном.
Многие комментаторы ссылаются на «ложные отрицательные» так, будто это какие-то случайные эпизоды, но некоторые люди, включая меня, всегда попадают в эти ложные отрицательные. Меня постоянно отсеивают на собеседованиях, где нужно озвучивать свой ход мысли. Не рождён я для сцены.
— lapcat
Дополнение #2
Вот ещё один мощный комментарий с HN, который вывел дискуссию на новый уровень.
Я работаю над документальным фильмом, посвящённым процессу собеседования в сфере разработки. Называется он Computer Silenced и является полнометражным дополнением к моему проекту Whiteboard Challenge(R). В фильме раскрывается как раз эта проблема, а конкретнее то, как она влияет на людей, у которых диагностированы скрытые расстройства, например, аутизм, СДВГ, тревожность, а также ПТСР и прочие недуги, вызываемые стрессом.
За моими плечами 25+ лет разработки, и меня тоже отсеивали на подобных собеседованиях, которые не связаны с фактической работой. И у меня также диагностированы РАС 1-й степени и СДВГ с провоцируемой стрессом дислексией.
Прошу участников дискуссии прочесть выдержку из федерального закона и подтвердить, что он в этом случае работает. С помощью фильма я пытаюсь скорректировать определение инвалидности, чтобы у всех нас были равные права.
Раздел 12112(b)(6) главы 42 Кодекса США: «запрещается использование квалификационных стандартов, экзаменов для трудоустройства или иных критериев отбора, которые исключают или склонны исключать лицо с инвалидностью либо класс лиц с инвалидностями, кроме случаев, когда установленное затрагиваемым субъектом применение данного стандарта, экзамена или иного критерия отбора доказано как относящееся к выполняемой работе и соответствующее необходимостям бизнеса».
Дополнение #3
Иронично, но «Техническое собеседование поразительно походит на социальный стресс-тест Трира, многие десятилетия используемый психологами и являющийся «золотым стандартом» исключительно как средство для уверенного вызова стресса».
Джеффри прокомментировал эту статью на LinkedIn.
Поздравляю всех, кто дочитал до конца.
Автор: Bright_Translate


