Как стать автором
Обновить
537.1
YADRO
Тут про железо и инженерную культуру

«Есть вопросы, на которые не ответит даже наниматель»: три истории о собеседованиях разработчиков на С++

Время на прочтение4 мин
Количество просмотров14K

21 ноября в рамках митапа по С++ Константин Владимиров, Илья Шишков (@ishfb) и Елена Степанова — эксперты с многолетним «стажем» в собеседованиях — обсудят, как проводить технические интервью, говорить про алгоритмы без синтетических задач и оценить знания кандидата. Регистрируйтесь и присоединяйтесь к дискуссии в Москве или онлайн. 

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

Нужно ли тому, кто проводит собеседования, самому их проходить?

Константин Владимиров

Ведущий инженер в Syntacore. Проводит собеседования 13 лет и много преподает.

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

Последнее интервью, на котором мне задавали интересные вопросы, было в 2018 году. Тогда еще модно было ездить на интервью «погулять» — в моем случае это было собеседование в Amazon в Стамбуле. Компания оплатила билеты и гостиницу, а я приехал, прошел собеседование и еще пару дней осматривал город.

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

Илья Шишков

Экс-разработчик в Яндексе, автор курса «Алгоритмический фундамент программиста». Провел более 250 технических интервью.

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

Изредка полезно оказаться в кресле кандидата и пройти собеседование, чтобы откалибровать навыки. Например, понять, как выглядишь со стороны как интервьюер. Были моменты, когда я в роли кандидата выделял поведенческие аспекты интервьюеров, которые казались неудачными, и отмечал, что не буду так делать, потому что это вызывало дискомфорт.

Елена Степанова

Техлид в YADRO. Последние 8 лет проводит до нескольких собеседований в неделю.

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

Проходить собеседования полезно, но не нужно ожидать, что это поможет эффективнее собеседовать. Зато точно становишься терпеливее к кандидатам.

Собеседование неотделимо от вакансии, и нельзя просто взять и использовать какие-то приемы с технических интервью в других компаниях. Чтобы лучше проводить собеседования кандидатов, полезнее сходить на обсуждение бэклога и на код-ревью, быть в курсе текущих задач.

Бывало ли такое, что ответ кандидата ставил вас в тупик?

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

Однако реакция кандидата меня поразила: он напрягся и предложил мне ответить на его вопрос. Я люблю такие игры, поэтому согласился. Он спросил, что произойдет, если вызвать функцию main рекурсивно из функции main. «Именно в С++ будет что угодно», — ответил я.

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

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

Однажды кандидат в самом начале интервью сказал, что не хочет тратить время на решение алгоритмических задач, так как не собирается работать в Яндексе. Мы закончили разговор через 3-4 минуты после этой реплики. Я был в ступоре и не знал, как себя вести. Я предоставляю услуги стартапу, а человек отказывается проходить собеседование. Сначала растерялся, а затем попытался убедить его, что есть ценность в решении задачек и работе в этом стартапе и что стоит продолжить собеседование. Но он был непреклонен и отказался. Алгоритмические задачи Яндекса ему не интересны —  на этом все и закончилось.

Елена Степанова: Бывает. Чаще всего —  когда кандидат абсолютно уверен в неправильном ответе. Порой приходилось судорожно искать цитату из стандарта C++, чтобы переубедить человека. Иногда специалист глубоко погружен в предметную область и начинает рассказывать про какие-то тонкости, где ты не можешь поддержать разговор. Остается только задумчиво кивать.

На каких задачах чаще всего проваливаются кандидаты?

Константин Владимиров: Заваливать на интервью — это совсем не мой метод. Считаю это неспортивным. По языку С++ я сам себя могу завалить за три вопроса: первый «пристрелочный», второй «глубинный», третий «похоронный». На третий никто не ответит, в том числе я. Нет ничего сложного в том, чтобы завалить вопросами по языку, у которого в стандарте более 1800 страниц. На интервью же надо понять, что человек знает, а не наоборот. Но если брать статистику, то заваливаются чаще на задачах вида «напиши код» — там все сразу видно.

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

Елена Степанова: Обычно я даю очень простые задачи, на основании которых можно поговорить об общих принципах computer science. Собственно, на самом базовом computer science у кандидатов больше всего пробелов. Среди «болевых точек» — вопросы про представление данных в памяти и области памяти; про то, как работает выравнивание, приведение типов, кэширование. Оценка сложности алгоритмов, обоснование выбора структур данных и тому подобное также нередко ставят в тупик.

Если хотите задать вопросы экспертам вживую или в чате онлайн-трансляции, регистрируйтесь на бесплатный митап по С++, который пройдет 21 ноября. На встрече будет еще больше контента по «плюсам»: о болях нового стандарта языка, lifetime extension и собеседованиях на С++. 

Теги:
Хабы:
Всего голосов 21: ↑14 и ↓7+12
Комментарии29

Публикации

Информация

Сайт
yadro.com
Дата регистрации
Дата основания
Численность
1 001–5 000 человек
Местоположение
Россия
Представитель
Ульяна Малышева