Шпора.tech

Блог

Лайвкодинг: как пройти секцию, если задача не решается сразу

На этой секции проверяют не столько знание алгоритмов, сколько то, как вы думаете вслух. Разбираем, как этим воспользоваться.

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

Что оценивает интервьюер

Работающее решение — только один пункт из четырёх, и не самый весомый.

  • Как вы разбираетесь в условии. Задачу обычно формулируют неполно нарочно. Уточняющие вопросы — часть проверки, а не признак непонимания.
  • Слышно ли ваши рассуждения. Молчаливый кандидат, написавший верный код, часто проигрывает тому, кто вслух пришёл к решению попроще.
  • Что происходит, когда вы застряли. Это моделирует реальную работу лучше, чем сама задача.
  • Проверяете ли вы себя. Крайние случаи, тесты, оценка сложности.
Как распределить 45 минут Уточнить 5 минут Проговорить идею 7 минут Писать код 23 минуты Тесты 10 минут Цветом выделено то, что чаще всего пропускают, — и именно это оценивается. Молча написанное верное решение проигрывает проговорённому неидеальному: на секции смотрят, как вы думаете, а не только что получилось. Первые 5 минут молчания над условием читаются интервьюером как «не знает», даже если вы просто читаете
45 минут лайвкодинга: где уходит время и что оценивают

Как распределить время

Типичная секция — 45 минут. Большинство начинает писать код на второй минуте и упирается на двадцатой.

Первые пять минут: уточнить

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

Что спросить

«Массив может быть пустым? Числа только целые и положительные? Дубликаты возможны? Насколько большой вход — миллион элементов влезет в память?»

Эти вопросы часто и есть скрытая часть задачи: ответ на них меняет решение.

Следующие семь: проговорить подход

Скажите, как собираетесь решать и почему, до того как начнёте писать. Начните с наивного решения — это нормально и даже полезно.

«Самое простое — два вложенных цикла, это квадрат. Для миллиона элементов не подойдёт. Можно за один проход со словарём: храним, что уже видели, — получится линейное время и линейная память. Пишу этот вариант, если не возражаете.»

Здесь вы уже показали, что видите несколько решений и понимаете их цену. Даже если дальше код не дойдёт до конца, эта часть засчитывается.

Двадцать три минуты: писать код

Комментируйте по ходу, но коротко. Не нужно проговаривать каждую строчку — достаточно объявлять блоки: «сейчас обработаю случай пустого входа», «здесь основной цикл».

Последние десять: проверить

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

Найденный вами баг — плюс, а не минус. Найденный интервьюером — наоборот.

Если решение не приходит

Это главный сценарий, к которому стоит готовиться отдельно: он случается часто, и именно в нём люди сдаются раньше времени.

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

Напишите наивное решение. Работающий перебор лучше пустого экрана. От него можно оттолкнуться: «работает, но квадрат — давайте подумаю, что тут лишнее».

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

Спросите про направление. «Я думаю в сторону хеш-таблицы. Это разумно или смотрю не туда?» Это не поражение — так работают на реальных задачах.

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

Технические мелочи, которые портят впечатление

  • Незнакомый редактор. Если секция в CoderPad или Google Docs — откройте их заранее и напишите пару строк. Борьба с отступами на глазах у интервьюера отнимает время и внимание.
  • Неудобный экран. При демонстрации экрана увеличьте шрифт: интервьюер смотрит на ваш код через сжатое видео.
  • Уведомления. Отключите до начала. Всплывшее личное сообщение в середине решения — не то, что нужно.
  • Названия переменных. a, b, tmp в спокойной обстановке простительны, на секции читаются как небрежность.

Как готовиться

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

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

Коротко

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

Шпора — ИИ-помощник, который слышит вопрос интервьюера и за секунду выводит опору для ответа. Работает на вашем компьютере с любой видеосвязью.

Попробовать бесплатно
Читать дальше

Какие вопросы задать работодателю на собеседовании: 30 рабочих и 5 бесполезных