itechart_logo

Live coding на собеседованиях: разбираем плюсы и минусы

Development & QA

Иногда от желаемого оффера отделяет только… live coding. В одних компаниях кандидатов могут попросить написать немудреный кусок кода в реальном времени ещё до технического собеседования. В других позовут на live coding этап уже после всех туров интервью, чтобы 100% быть уверенным в выбранном кандидате. В любом случае, быть готовым к такому формату общения с нанимателем – значит повысить свои шансы на оффер.

Как часто «живое программирование» используется при поиске разработчиков, как устроено «собеседование в прямом эфире» и реально ли к нему успешно подготовиться? Задали вопросы Group Manager Виктории Балакшиной и Department Manager Дмитрию Кремезу.

Наши собеседники
Кремез_Дмитрий_спикер.jpg

Дмитрий Кремез

Department Manager iTechArt

Department Manager iTechArt c 2020 года. Применяет live coding на собеседованиях с 2017 года. Называет такой формат собеседований «более лояльным к кандидату»

Балакшина_Виктория_спикер.jpg

Виктория Балакшина

Group Manager iTechArt

Group Manager iTechArt с 2017 года. Практикует live coding собеседования с 2018 года. Считает live coding одним из «наиболее органичных вариантов собеседования»

Как часто и для какого уровня соискателей в вашей команде предлагается пройти live coding?

ДМИТРИЙ КРЕМЕЗ: Я стараюсь применять live coding в виде одной несложной задачки для всех уровней от Junior до Senior/Lead. Практическое решение задачи показывает, как человек мыслит, как принимает задание, какие уточняющие вопросы задает, какие предлагает идеи. 

ВИКТОРИЯ БАЛАКШИНА: На мой взгляд, это лучше всего работает для разработчиков уровня Middle и выше, хотя Junior разработчиков тоже просим решить практическое задание. При этом есть определенная разница в заданиях для начинающих разработчиков и для тех, у кого уже есть опыт. В первом случае оцениваются знания синтаксиса языка, ООП, умение писать структурированный код. Во втором случае предлагаются уже более комплексные задания для оценки компетенций в тех технологиях, с которыми кандидат ранее работал.

Сколько длится такое собеседование? Как много специалистов при этом присутствует и в каком формате соискатель получает обратную связь?

ДМИТРИЙ КРЕМЕЗ: Длится live coding часть в среднем 15-30 минут. Обычно это несложная задачка, которую можно решить за 5-10 минут, но мы даем запас времени, если кандидат пойдет не по правильному пути, плюс время на общение и обсуждение. Присутствуют все те же люди, что были на интервью до этого: технический специалист, руководитель, рекрутер. Звонок проходит в Skype, в качестве площадки для live coding я использую https://codeinterview.io/, там же кандидат и получает обратную связь.

ВИКТОРИЯ БАЛАКШИНА: Длительность live coding этапа зависит от задачи и соискателя, минимально 20 минут, максимально доходило до 50. 

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

Обычно на собеседовании помимо рекрутера присутствует технический специалист и будущий руководитель. В основном вопросы задаёт технический специалист, но я тоже часто включаюсь с уточняющими вопросами. Более того, по некоторым технологическим направлениям могу проводить собеседования и сама :)

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

В каких случаях live coding – единственный верный способ проверки компетенций, а для каких специальностей такой формат не подходит?

ДМИТРИЙ КРЕМЕЗ: Любая проверка знаний должна быть комплексной, невозможно оценить кандидата только одним способом. Мы не придумываем тут что-то сверхъестественное, используем те же методики и способы, что используются на западе нашими клиентами и другими компаниями. 

ВИКТОРИЯ БАЛАКШИНА: Live coding – не единственный возможный вариант проверки технического уровня. Но по мне, это просто более органичный вариант собеседования, потому что другой вариант – просто сухой разговор о технических вещах на уровне определений или про узкие/воображаемые кейсы. 

Некоторая часть разработчиков считает тестовые задания и live coding архаизмом. Как часто приходится бороться с возражениями от кандидатов на счёт этапа с live coding?

ДМИТРИЙ КРЕМЕЗ: Ни разу не сталкивался с полным непринятием. Порой были некоторые отрицания и нежелание напрягаться и решать задачу, обычно из-за того, что кандидат не хотел вникать. После тактичного рассказа, для чего нам это нужно и что мы этим проверяем, кандидаты соглашаются с аргументами и приступают к решению, и это были единичные случаи. 

Был обратный случай: за время интервью не смогли полностью определиться и изучить кандидата. Решили дать задание на дом, где-то 4 часа кодинга. Кандидат отказался, сказав, что не берет и не решает задания такого объема. Для нас это был индикатор, что человек не сильно стремиться в нашу компанию. С другой стороны, я понимаю человека, 4 часа работы – это довольно много личного времени. Поэтому я считаю проверку через live coding более лояльной к кандидату + повторюсь, мы понимаем, что live coding – это стресс, поэтому даем не сложное задание и стараемся всячески помочь и направить кандидата по верному пути решения.

ВИКТОРИЯ БАЛАКШИНА: Тестовые задания и правда могут быть избыточными, так как зачастую требуют от 4х до 8ми часов времени. С учетом того, что кандидаты на момент поиска работы зачастую трудоустроены, то эти 4-8 часов будут распределены или на вечернее время, или на выходные. По этой причине стараюсь их избегать. А вот live coding как часть интервью не требует от кандидатов дополнительных временных затрат. 

Отказы от live coding получаем редко. Как правило, такое случается, если кандидат попросту не имеет технической возможности писать код в момент собеседования (проходит интервью с телефона/планшета). 

Кстати, по моему опыту, люди чаще отказываются от собеседования на английском, чем от кодирования :)

Как кандидату подготовиться к такого рода собеседованию? На что обратить особое внимание?

ДМИТРИЙ КРЕМЕЗ: Сегодня есть много ресурсов где можно готовиться к live coding интервью, из популярных: http://leetcode.com/, https://www.hackerrank.com/, https://www.codewars.com/. Не думаю, что стоит уделять этим ресурсам много времени. 

Обратить внимание нужно на другое: не стесняться задавать вопросы, делать ошибки, общаться и стараться найти решение. Интервьюеры сами заинтересованы помочь кандидату решить задачу, поэтому не стоит относиться к live coding как к тесту, проверке. Это скорее возможность поработать над задачей вместе с людьми, с которыми вам в будущем предстоит работать. Воспринимайте это как pair programming.

ВИКТОРИЯ БАЛАКШИНА: Прежде всего, подготовить техническую возможность кодить. С учетом наличия таких ресурсов, как codeshare, будет достаточно иметь монитор и клавиатуру.

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

Моя главная рекомендация – в процессе решения задачи рассуждать вслух и задавать уточняющие вопросы. Если человек выслушал условие задачи молча, молча начал писать код и так же молча закончил – в 99% случаев задача будет решена неверно.

И, конечно, важно не нервничать и не ожидать (по крайней мере, в нашей компании) каких-то подвохов. По крайней мере мы со своей стороны стараемся создать спокойную и партнерскую атмосферу во время решения задач.