Комментарии 19
Из личного опыта, если при интервюировании кандидат без запинки отвечает что такое SOLID, то это свидетельствет только о том, что он недавно уже проходил собеседования.
Предполагаю что и в сабже вопросы для интервью брались из открытых источников и главное понять как кандидат думает, а не услышать шаблонный ответ.
О даа. Однажды меня спросили, что такое solid, а я даже не слышал. Потом начал читать про это и понял, что все адекватные практики написания кода, которые я также применяю в работе просто обернули в красивое название SOLID. Делает ли это ли это меня плохим разработчиком? Я думаю что нет. Повлияло ли как то, что я выучил, что же за такой SOLID на качество моего кода? Тоже нет.
В сущности, солидоцефалия - это примерно как определение качеств бегуна по его способности перечислить названия всех костей в его ступне.
Притянуто за уши.
От бегуна требуется результат. От программиста требуется *не только* результат. От него требуется еще и понимание того, почему он должен быть таким, и как к нему прийти. Иначе говоря, недостаточно скопипастить код, который волей случая будет работать: важно его еще и понять, и мочь сопровождать. И вот тут солидодиссиденты будут крайне опасны.
Либо сам проводил собеседования
Еще чаще можно услышать сбивчивый ответ на вопрос о том, что такое SOLID, от кандидатов, только что проходивших другие собеседования...
Если человек удосужился изучить, что такое SOLID, это делает его чуть-чуть более подходящим кандидатом, чем те, кто ни в зуб ногой.
Я прямо представил, как в процессе работы такой честный собеседованный получает задание сделать какой-нибудь сервис, говорит: «Ой, вы знаете, я его вообще-то уже раньше делал» и ему: «А, ой, тогда ладно, посидите пока на бенче, пока мы другой проект поищем». Собеседование — это оценка опыта, в конце концов.
Может кандитат ещё и работу делал раньше, на которую его берут? Нужно честно признать это и искать другую работу.
Однажды на собеседовании мне попалась задачка, которую я решал на хакерранке. И я честно признался, что как раз такое же решал какое-то время назад, но, черт побери, забыл как. И начал думать вслух. Но затупил. Интервьюер слегка подсказал, я справился. И собеседование прошло неплохо, технари меня одобрили.
Но есть нюанс: туда меня так и не взяли, а куда взяли — там не требовали задач с литкода etc. Было неплохое домашнее задание (на пару часов работы со сроком в неделю, с учетом того, что на него время еще выделить надо), явно синтетическое, при этом, явно связанное с реальной работой, а потом два разговора, "за жизнь" по-русски и по технике на инглише. И если бы у меня было два оффера, я бы предпочел второй, гораздо больше понравилось.
Какая-то высосаная проблема. Если вопрос на интервью когда-то в жизни встречался никого это не волнует. Все что было до интервью осталось до интервью.
Другое дело, когда интервью проходит в несколько раундов и на одном задают ровно такой же вопрос как и на предыдущем. Вот тут уже не стоит ничего скрывать и нужно сразу сказать, что на одном из предыдущих раундов такой вопрос уже был. Иначе одинаковые вопросы все равно всплывут в отчетах.
Я встречался со второй ситуацией в Гугл с обоих сторон. Как кандидат говорил, что такая задача сегодня уже была, и мне, как интервьюеру тоже один раз так ответили. В обоих случаях поменяли задачу и все.
Leetcode - новый диплом, все хотят, но не знают зачем)
В моей практике была комичная ситуация. Проходил собеседование в одной организации, назовём её N, и мне понравилась поставленная ими задача. Через некоторое время уже я сам в другой организации проводил массу собеседований, и иногда включал в них подобную задачу (с небольшими отличиями — восстанавливал её по памяти, плюс кое-что от себя добавил). И вдруг очередной кандидат честно признаётся, что недавно встречал почти такую же на собеседовании в N. Я, в свою очередь, честно признался, что задачу у них и позаимствовал. Посмеялись, далее он рассказал пути решения и получил в итоге оффер. Практически хэппи-энд.
Не думаю, что поднятая в статье проблема является проблемой, если собеседование не исчерпывается этой задачей. По всему остальному уровень и бэкграунд собеседника в среднем понятен, так что искажение, внесённое уже некогда решённой — но решённой же в итоге! — задачей не слишком сильно влияет на общую картину.
Когда я работал в известной крупной постоянно собеседующей российской компании, я с удивлением обнаружил, что сами интервьюеры не всегда знают ответов на свои же типовые задачи. Как-то мне на глаза попался разбор канонических решений, и понял, что и мои знания были далеки от полных.
Главное -- это не ответ, а аргументация. И даже сдав (правильно) задачу на другом собеседовании, ты не всегда можешь адекватно ее обосновать на следующем.
ЕМНИП, для собеседования в ФБ было условие, что если раньше кандидат(-ка) уже решал такую задачу, то он/она обязан об этом сообщить. Не знаю как в ФБ это проверяют. Я в любом случае не сообщал бы, потому что решал много задач и сразу не вспомню решал я её или нет, во-вторых это может быть решённая задача, которая сформулирована по-другому, и в третьих я могу помнить что решал, но не помнить алгоритм решения, так что нет разницы.
Вот он, момент когда "мнение" искусственного идиота, по сути рекомбинирующего результаты миллионов поисковых выдач, начало вставляться в тексты мясных мешков и служить подкреплением "морального компаса" отдельно взятых авторов.
Вообще не понятно, зачем переживать по этому поводу. Смысл такой проверки в том, чтобы определить навыки решения практических задач, а не за сколько времени ты решишь новую, не имеет ровным счётом никакого значения, когда задача была решена.
Вопреки всеобщему мнению, очень часто собеседование - не способ отбора лучших кандидатов. Различные испытания кандидатов на собеседовании в большом количестве компаний - всего лишь способ снизить цену на труд, в крайнем случае подловить и нанять лучшего за зарплату заурядного, а его возможными ошибками объяснить более низкий грейд. Я когда на собеседованиях сталкивался с известными задачами, говорил об этом честно и смотрел на реакцию. Это очень хороший способ диагностики уровня токсичности внутри компании и истинных намерений интервьюеров. И если результат собеседования для меня был положительный, вовсе не факт, что я безусловно радовался и бежал писать заявление о приеме на работу. Некоторые мои тесты не проходили. Это вполне обычное явление, ведь собеседование - процесс взаимный.
Почитав комментарии я понял вот что: если не знаешь как решить задачу на собеседовании, можно сказать что уже решал такую, и есть вероятность что тебе дадут другую, с которой ты справишься :-)
Нужно ли говорить на собеседовании, что предложенная задача вам уже встречалась?