Лайвкодинг на собеседовании: что смотрит интервьюер
Задачу дают почти всегда, но оценивают не то, что принято думать. Разбираем фазы секции, что интервьюер отслеживает и чего не оценивает вовсе.
Что оценивают в задаче на живое кодирование, компания, публично описавшая свою методику, называет прямо: подход к решению и то, как человек работает с препятствием, а не скорость набора и не совпадение с эталонным ответом. Ниже — как устроена секция, что отслеживают по ходу и чего не оценивают вовсе.
Как устроена секция §
Само кодирование занимает третью из четырёх фаз секции. В методике, которую компания описала публично, фазы такие: знакомство, объяснение правил и ограничений, задача, закрытие с обратной связью.
Знать это полезно по двум причинам. Первая: время на задачу меньше, чем длится встреча, и рассчитывать надо на него. Вторая: на фазе правил называют ограничения, то есть чем можно пользоваться, нужно ли рабочее решение или достаточно подхода, что считается готовым. Это единственный момент, когда всё это можно спросить не в ущерб себе, и им стоит воспользоваться.
«Задача» при этом бывает разной. Секцию по языку одна из компаний подробно описала в карьерных материалах, и состав там другой: ревью готового фрагмента с доработкой под бизнес-требование, смоделированная проблема с вопросом, как вы стали бы её решать, задание на асинхронную работу и применение примитивов языка к практическому случаю. Ни одного пункта про обход дерева. Такой состав похож на рабочую ситуацию, и готовиться к нему надо иначе.
Разница между двумя форматами существенна, и какой у вас, лучше выяснить заранее. Где какая секция бывает и сколько их, описано в разборе этапов собеседования.
Четвёртая фаза, закрытие с обратной связью, в описанной методике стоит наравне с остальными. Практический смысл для вас в том, что вопросы в конце предусмотрены сценарием: можно спросить, чего не хватило в решении и какой подход интервьюер считал ожидаемым. Такой вопрос — штатная часть встречи.
Что отслеживают §
Опубликованная методика называет четыре вещи: технический уровень, подход к решению, то, как человек справляется с препятствиями, и способность объяснить ход рассуждения. Инженер, описавший свои секции, формулирует почти тот же набор: решение проблем, логическое мышление, коммуникация и собственно знание языка.
Обратите внимание: код напрямую касается только одного пункта из четырёх. Это и объясняет исходы, которые кажутся несправедливыми: дописанное рабочее решение без объяснений может проиграть недописанному, но разобранному вслух.
Хорошими методика называет такие признаки:
- уточняющие вопросы к условию до начала решения;
- проговаривание препятствий вслух, когда что-то не сходится;
- продвижение по нескольким задачам в течение секции;
- рост при усложнении, когда условие ужесточают, а человек подхватывает.
Последний пункт стоит прочитать внимательно. Если условие ужесточают по ходу, это возможность показать рост, который методика записывает в хорошие признаки.
Чего не оценивают §
Список того, что на оценку не влияет, короткий, и он снимает большую часть напряжения. Та же методика называет прямо:
- стилистика и форматирование, если расхождение только в ней;
- имена переменных, когда их легко поправить;
- точное совпадение с эталонным решением интервьюера.
Последнее важнее первых двух. Ваше решение не обязано совпадать с тем, которое интервьюер держит в голове: другой рабочий подход остаётся рабочим, и обосновать его уместнее, чем угадывать ожидаемый.
Оговорка, без которой список опасен: он описывает методику конкретной компании, которая её опубликовала. Считать его отраслевой гарантией нельзя, но как ориентир он полезен, потому что показывает порядок величин. Внимание, потраченное на подбор красивого имени переменной посреди секции, по этой методике потрачено зря.
Почему надо говорить вслух §
Роль интервьюера в этой секции описана как «резиновая уточка»: он слушает рассуждение и решение не диктует. Отсюда следует неочевидное: молчание не нейтрально. Если ход мысли не озвучен, три критерия из четырёх остаются без предмета оценки, и оценивать интервьюеру будет нечего, кроме итогового кода.
То же касается затыка. Методика описывает поведение интервьюера прямо: попросить рассказать, что смущает, и обсудить подходы. Готового ответа он не выдаёт. Затык переводит секцию в режим совместной работы, и это штатный сценарий, а не провал.
Практически это значит вот что:
- назвать, где встали. «Здесь я не вижу, как обойти повторный проход» уже вклад в разговор;
- проговаривать варианты, включая отброшенные. Почему вы не взяли очевидный путь — часть ответа;
- не молчать дольше нескольких секунд. Пауза, о которой предупредили, читается иначе, чем тишина.
Самый дешёвый способ выполнить всё это сразу — озвучить план до того, как написана первая строка. Двадцать секунд на «я собираюсь сделать так, сначала вот это, потом вот это, узкое место вижу здесь» дают интервьюеру предмет оценки авансом. Дальше, даже если код не дописан, ваш подход уже озвучен и зафиксирован. Побочный эффект приятный: план проще держать в голове, чем удерживать структуру решения в потоке набора, и ошибок в самом коде становится меньше.
Про то, как устроен сильный ответ вообще, не только у доски, есть отдельный разбор.
Как готовиться пропорционально §
Готовиться к живому кодированию стоит пропорционально тому, сколько эта секция реально занимает в разговоре. Задачи с кодом — меньше трёх процентов всех вопросов на собеседовании, порядка полутора штук на встречу. Подготовка, где марафон задач занимает всё время, распределена не по важности.
Что из подготовки сработало, описывает инженер, прошедший эти секции:
Планировать до кода. Сначала набросать логику на бумаге или в комментариях, потом писать. Это заодно решает задачу проговаривания, потому что план легко озвучить.
Работать под наблюдением. Парное программирование или разбор задачи с коллегой воспроизводит главную сложность секции: необходимость объяснять действия по ходу. Одиночное решение задач эту мышцу не тренирует.
Проверить свою оценку сил на таймере. Инженер, описывавший свою подготовку, отмечает разрыв честно: в голове закрывался целый проект, на деле за отрезок успевалось покрасить кнопку. Такая калибровка полезна, потому что на секции время ограничено жёстко.
Интенсивную практику на алгоритмических тренажёрах тот же человек осознанно не ведёт. Из этого следует одно: задачи не должны быть единственной подготовкой.
Если приводить это к плану, порядок получается такой. Сначала выяснить формат, абстрактная задача или ревью с доработкой: от него зависит всё остальное. Потом отработать проговаривание, потому что оно закрывает три критерия из четырёх и не тренируется в одиночку. И только третьим пунктом — задачи, в объёме, соразмерном полутора штукам на встречу. Обратный порядок — дорогая ошибка подготовки: он даёт человека, который умеет решать, но не умеет показывать, как он решает.
Проверьте себя
Сначала проговорите ответ, потом сверьтесь с текстом.
Что происходит до того, как вы начнёте писать код?
Что проверяют: на фазе правил — ничего. Это единственная возможность выяснить ограничения задачи бесплатно.
Частая ошибка: проскочить её из вежливости и потом гадать, нужно ли рабочее решение или достаточно подхода.
Что оценивают, если решение не дописано?
Что проверяют: подход, работу с препятствием и объяснение хода мысли. Эти три критерия из четырёх не требуют законченного кода.
Частая ошибка: молча дописывать до победного, потеряв контакт с интервьюером. Готовый код без объяснения закрывает один критерий из четырёх.
Провалит ли секцию неудачно названная переменная?
Что проверяют: решение задачи. Стилистика и имена в опубликованной методике прямо вынесены из критериев.
Частая ошибка: тратить время секции на причёсывание кода, пока задача стоит на месте.
Что делать, когда мысль встала?
Что проверяют: способность работать с препятствием вслух. По описанной методике интервьюер сам просит рассказать, что смущает.
Частая ошибка: уходить в молчание, чтобы «сначала придумать, а потом сказать». Оценивать в это время нечего.
Сколько времени подготовки отдавать задачам?
Что проверяют: секция короткая, и в ней смотрят на подход и объяснение.
Частая ошибка: отдать всю подготовку алгоритмическому тренажёру и прийти без навыка объяснять решение вслух.
Что дальше
В Telegram-канале разбираем вопросы с собеседований.
Проверьте эти темы вслух
В тренажёре вы отвечаете голосом, а разбор показывает, где ответ просел.