Если на техническом собеседовании вы понимаете, что уже решали эту задачу – что делать?

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

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



Мудрый совет от старого доброго Reddit в лице u/_RollForInitiative_

«Поблагодарите свою счастливую звезду и перескажите решение. Собеседование – такой гемор для всех задействованных, что нет смысла пытаться что-то менять.
Может закончиться тем, что собеседующий растеряется или даст вам взамен что-нибудь гораздо более сложное. Оставьте как есть.
Нет необходимости ни говорить, что знаете задачу, ни лицемерить. Просто скажите: “Хммм, ну вот самый примитивный способ…”, и распишите. Потом дождитесь, пока попросят более проработанных решений – и вперед. Незачем врать и незачем рисковать».

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

Как смотрят на это работодатели?


Я пошел дальше и узнал, как смотрят на этот вопрос руководитель технической команды и программист-сениор из Uber – у обоих был обширный опыт найма сотрудников и управления целым рядом команд. Меня интересовало их мнение и как претендентов на вакансии, и как собеседующих.

Руководитель: «Мне кажется, честность и надежность – необходимые компоненты для команды. У меня на собеседованиях было несколько случаев, когда кандидат уже знал решение задачи, и все честно об этом говорили. Я говорил, чтобы всё равно продолжали и решали, как любую другую. Но их откровенность становилась для меня очень хорошим знаком, нередко именно она в конечном счете склоняла нас от положительного впечатления к положительному решению».

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

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

Моё собственное мнение


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

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

По этой причине со стороны собеседующего было бы наивно ожидать, что все задания в процессе отбора будут для кандидата новыми. Полагаю, что я в какой-либо вариации перерешал все задания, касающиеся деревьев или массивов, которые вообще реально предложить в ходе сорокапятиминутного собеседования. На самом деле, я удивляюсь скорее тогда, когда мне дают задачи, в корне отличающиеся от всего, что мне встречалось раньше! В конце концов, секрет успешного прохождения собеседований заключается именно в том, чтобы освоить распространенные паттерны и прилагать их к новым сценариям (а иногда и к старым).

Поэтому когда мне дают задачу, которая кажется знакомой, я не вижу большого смысла говорить: «Я уже встречал похожее задание на манипуляцию строками». Ведь если бы я не прорешал предварительно сотню заданий, я бы не прошел их отбор. В конце концов, зачем брать расхожие задачи с Leetcode, если хочешь, чтобы кандидат решал что-то незнакомое? Моё знакомство с заданием – свидетельство хорошей подготовки и награда за труды. Это не значит, что нужно обязательно скрывать это знакомство от собеседующего, скорее, я хочу сказать, что несправедливо наказывать кандидата за то, что он готовился, и от работодателя я жду реакции, соответствующей этой точке зрения.

Ну и конечно, в технической статье 2023 года нельзя обойтись без упоминания ChatGPT, так что послушаем, что думает ИИ на этот счет.



ChatGPT тоже выступает за честность.

«Если на техническом собеседовании вам задают задачу, которую вы уже решали, необходимо честно это признать. Вы можете сказать что-то в духе: “Вообще, я уже сталкивался с этой задачей и сумел ее решить следующим образом… (описание решения)”.
Однако не стоит на этом останавливаться. Следует также воспользоваться возможностью подробнее описать свой ход мысли и объяснить, как вы пришли к решению. Это покажет собеседующему, что у вас есть не только технические навыки для решения задачи, но и способность к критическому мышлению и эффективной коммуникации.
Если собеседующий просит вас решить задачу еще раз, вы можете либо решить ее, либо спросить, нет ли другой задачи, которую вы могли бы решить вместо этой. В любом случае держитесь вежливо и профессионально и не забывайте, что цель собеседующего – оценить ваши навыки и способности».

Комментарии (16)


  1. ZetaTetra
    00.00.0000 00:00
    +2

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

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


    1. inferusvv
      00.00.0000 00:00
      +5

      О даа. Однажды меня спросили, что такое solid, а я даже не слышал. Потом начал читать про это и понял, что все адекватные практики написания кода, которые я также применяю в работе просто обернули в красивое название SOLID. Делает ли это ли это меня плохим разработчиком? Я думаю что нет. Повлияло ли как то, что я выучил, что же за такой SOLID на качество моего кода? Тоже нет.


    1. Anarchist
      00.00.0000 00:00

      Либо сам проводил собеседования


    1. dkuzminov
      00.00.0000 00:00

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

      Если человек удосужился изучить, что такое SOLID, это делает его чуть-чуть более подходящим кандидатом, чем те, кто ни в зуб ногой.


  1. CTheo
    00.00.0000 00:00
    +14

    Я, наверное, слишком буквоедствую, но вижу тут подмену понятий. Разве кандидата спросили, решал ли он задачу ранее, и он соврал что нет? Тогда это было бы нечестно. А так он просто отвечает по существу задачи, и умалчивает про то, что не спрашивают. Если вам интересно, решал ли он - то так и спросите.


    1. Occama
      00.00.0000 00:00
      +9

      Я прямо представил, как в процессе работы такой честный собеседованный получает задание сделать какой-нибудь сервис, говорит: «Ой, вы знаете, я его вообще-то уже раньше делал» и ему: «А, ой, тогда ладно, посидите пока на бенче, пока мы другой проект поищем». Собеседование — это оценка опыта, в конце концов.


  1. radioxoma
    00.00.0000 00:00
    +13

    Может кандитат ещё и работу делал раньше, на которую его берут? Нужно честно признать это и искать другую работу.


  1. RomeoGolf
    00.00.0000 00:00
    +3

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


    Но есть нюанс: туда меня так и не взяли, а куда взяли — там не требовали задач с литкода etc. Было неплохое домашнее задание (на пару часов работы со сроком в неделю, с учетом того, что на него время еще выделить надо), явно синтетическое, при этом, явно связанное с реальной работой, а потом два разговора, "за жизнь" по-русски и по технике на инглише. И если бы у меня было два оффера, я бы предпочел второй, гораздо больше понравилось.


  1. Zuy
    00.00.0000 00:00
    +1

    Какая-то высосаная проблема. Если вопрос на интервью когда-то в жизни встречался никого это не волнует. Все что было до интервью осталось до интервью.

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

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


  1. ReDev1L
    00.00.0000 00:00

    Leetcode - новый диплом, все хотят, но не знают зачем)


  1. alcanoid
    00.00.0000 00:00

    В моей практике была комичная ситуация. Проходил собеседование в одной организации, назовём её N, и мне понравилась поставленная ими задача. Через некоторое время уже я сам в другой организации проводил массу собеседований, и иногда включал в них подобную задачу (с небольшими отличиями — восстанавливал её по памяти, плюс кое-что от себя добавил). И вдруг очередной кандидат честно признаётся, что недавно встречал почти такую же на собеседовании в N. Я, в свою очередь, честно признался, что задачу у них и позаимствовал. Посмеялись, далее он рассказал пути решения и получил в итоге оффер. Практически хэппи-энд.

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


  1. dkuzminov
    00.00.0000 00:00
    +1

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

    Главное -- это не ответ, а аргументация. И даже сдав (правильно) задачу на другом собеседовании, ты не всегда можешь адекватно ее обосновать на следующем.


  1. enabokov
    00.00.0000 00:00
    +2

    ЕМНИП, для собеседования в ФБ было условие, что если раньше кандидат(-ка) уже решал такую задачу, то он/она обязан об этом сообщить. Не знаю как в ФБ это проверяют. Я в любом случае не сообщал бы, потому что решал много задач и сразу не вспомню решал я её или нет, во-вторых это может быть решённая задача, которая сформулирована по-другому, и в третьих я могу помнить что решал, но не помнить алгоритм решения, так что нет разницы.


  1. Stavr666
    00.00.0000 00:00
    +1

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


  1. Boethiah
    00.00.0000 00:00

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


  1. hostbest
    00.00.0000 00:00

    Вопреки всеобщему мнению, очень часто собеседование - не способ отбора лучших кандидатов. Различные испытания кандидатов на собеседовании в большом количестве компаний - всего лишь способ снизить цену на труд, в крайнем случае подловить и нанять лучшего за зарплату заурядного, а его возможными ошибками объяснить более низкий грейд. Я когда на собеседованиях сталкивался с известными задачами, говорил об этом честно и смотрел на реакцию. Это очень хороший способ диагностики уровня токсичности внутри компании и истинных намерений интервьюеров. И если результат собеседования для меня был положительный, вовсе не факт, что я безусловно радовался и бежал писать заявление о приеме на работу. Некоторые мои тесты не проходили. Это вполне обычное явление, ведь собеседование - процесс взаимный.