Перейти к содержимому
Alexander

Лайвкодинг на собеседовании: что говорить вслух

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

Лайвкодинг на собеседовании: что говорить вслух

Задача вроде знакомая. Но интервьюер смотрит, курсор мигает, а в голове пусто. Вы что-то печатаете, стираете, печатаете снова. Через пять минут тишины звучит вежливое «ну как, получается?», и становится только хуже.

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

В банке Sobes около 2 500 лайвкодинг-задач с реальных собеседований, и многие из них вообще не про алгоритмы: «что выведет этот код», «найди баги», «перепиши компонент». В таких задачах ваше объяснение и есть ответ.

Первые две минуты: перескажите задачу

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

Правильно понимаю: на входе список, на выходе только уникальные значения, порядок сохраняем?

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

Длинный список вопросов не нужен. Интервьюеру важно увидеть, что вы не кидаетесь писать вслепую.

Скажите план до того, как писать

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

Одна такая фраза делает сразу две вещи. Интервьюер понимает, куда вы идёте, и может остановить, если вы идёте не туда. А у вас появляется опора: даже если дальше всё пойдёт плохо, рабочий вариант уже будет на экране.

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

По ходу говорите о решениях, а не о строчках

Озвучивать каждую строку не нужно. «Так, пишу цикл, i от нуля» ничего не сообщает и только сбивает вас самих. Говорите там, где принимаете решение:

Здесь добавлю проверку на пустой список, иначе упадёт на первом элементе.

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

Молчать тоже можно, если предупредить:

Дайте минуту, допишу этот кусок и расскажу, что получилось.

Минута тишины после такой фразы выглядит нормально. Пять минут тишины без неё выглядят как ступор.

Если застряли

Застревают почти все, и интервьюеры это знают. Им важнее, как вы выбираетесь. Вот фразы, которые помогают:

Понимаю, что нужно сделать, но пока не вижу как. Подумаю вслух.

Попробую на маленьком примере, так проще увидеть закономерность.

Сомневаюсь между двумя вариантами. Подскажете, в какую сторону лучше смотреть?

Подсказку просить не стыдно, если просить конкретно. «Не знаю, что делать» звучит как сдача. «Думаю хранить уже пройденные элементы, я в правильную сторону иду?» звучит как работа вдвоём. Тем, кто показывает, где именно застрял, интервьюеры подсказывают охотно.

Если интервьюер подсказывает или спорит

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

Сначала дослушайте. Потом перескажите подсказку своими словами и скажите, что она меняет:

То есть если хранить уже пройденные элементы, второй цикл не нужен. Тогда переделаю вот эту часть.

Если не согласны, скажите это спокойно и объясните почему:

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

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

Если нашли у себя ошибку

Вижу ошибку: на пустом списке упадёт. Сейчас поправлю и прогоню этот случай ещё раз.

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

Если не успеваете

За пять минут до конца скажите, что осталось:

Не успеваю дописать обработку ошибок. Сделал бы так: проверял бы ответ сервера и повторял запрос пару раз.

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

Если подстраховываетесь Copilot

Sobes Copilot подскажет решение по скриншоту задачи. Но объяснять его интервьюеру будете вы, и все вопросы «а почему так?» тоже зададут вам. Поэтому всё, что выше, пригодится и с подсказкой: прочитайте решение, перескажите его своими словами и только потом пишите.

Как тренироваться

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

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