Уместно ли на собеседовании вдаваться в подробности технологии/языка?

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

Например, имеет смысл попросить кого-то псевдокодировать или даже легитимно закодировать некоторую логику , применимую к выполняемой работе, но я сомневаюсь в полезности интервьюера, задающего теоретический вопрос, такой как «объясните ковариантность и контравариантность», или какой-либо другой вопрос о язык, в котором, вероятно, хорошо разбирается только команда создателей продукта (например, команда .NET Framework в Microsoft).

Я знаю, что первой реакцией на этот вопрос может быть: «Конечно, это показывает, как кандидат отвечает на сложный вопрос, которого он, вероятно, не знает, йада, йада, йада» или «Если это применимо, то «Да»... ." Однако все больше и больше кажется, что вопросы такого типа касаются того, чтобы команда, проводящая собеседование, показала кандидату, как много она знает. (Я был по ту сторону стола, когда мои коллеги сделали это, и моя первоначальная мысль была о том, насколько неуместным был вопрос.)

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

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

Ответы (2)

Дело не обязательно в эго.

Я склонен пытаться копать и находить что-то, чего другой человек не знает, просто чтобы увидеть, пытаются ли они блефовать или просто честно говорят: «Нет, я не сталкивался с этим раньше… что это такое? " (этот последний бит для бонусных баллов). Но я не усердствую в этом и никогда не унижаю кандидата. Я даже не хочу, чтобы их унижали до конца интервью. Я просто хочу знать, как они реагируют на то, чего не знают.

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

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

Когда кандидат чего-то не знает и признает это, я объясняю ему это, а потом спрашиваю что-то об этом, чтобы посмотреть, что он узнал из этого обмена мнениями. Если он понял объяснение, а затем применил это знание, это золото. (Я не гонюсь за такими моментами, но я так с ними справляюсь, если это случается.)

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

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

В типичной среде разработчик, достаточно высокий, чтобы его пригласили на собеседование, вероятно, является самым занятым человеком в здании. А собеседования составляют < 5% его работы. Таким образом, существует множество незлонамеренных причин, по которым они могут быть неэффективны. Надеюсь, они извлекут уроки из того, что им потребовалось 6 месяцев, чтобы найти кого-то, кто изучал кодирование Хаффмана, наняв его и наблюдая, как он выгорает, потому что в целом он не был таким сообразительным, как 10 кандидатов, которых они пропустили, но которые ничего не добились.