Какие методы вы используете при опросе разработчиков? [закрыто]

28

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

Мне интересно, какие методы и вопросы были эффективны для вас при опросе потенциальных разработчиков для работы.

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

Paddyslacker
источник

Ответы:

21

Помимо реальных технических вопросов, и обычно в конце интервью я пытаюсь понять их уровень интереса к отрасли и его культуре с помощью таких вопросов, как:

  • Вы видели что-нибудь недавно связанное с программированием, что вам показалось интересным и которое вы бы хотели порекомендовать другим программистам? Новый язык, инструмент, платформа, техника, сайт?

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

  • Что вы читаете сейчас или какую последнюю книгу о программном обеспечении вы читали?

  • Какие сайты, посвященные программированию, вы часто посещаете?

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

Серхио Акоста
источник
4
Я бы даже сказал, что это самая важная вещь в любом интервью по программному обеспечению. Можно утверждать, что написание кода важнее, но люди, которые освещали что-то подобное в последнее время или в университете, могут догадаться, как это сделать, в то время как очень трудно подделать настоящий, подлинный интерес.
Майк Б,
5
Я не удивлен, что это популярный ответ на этом сайте. Аудитория здесь по определению оценивает «культуру программиста». (Я согласен с ответом, но встретил несколько отличных программистов, которые не пройдут этот тест, особенно те, кто в толпе старше 40 человек)
AShelly
2
@AShelly: Да, я согласен. Вот почему я не считаю этот вопрос необходимым отклонить или принять программиста. Это просто еще одна техника, которую вы можете использовать во время интервью.
Серхио Акоста
16

Заставьте их написать код, настоящий код.

Интервьюер может позволить вам выбрать язык программирования, который вам наиболее удобен, будь то C ++, Java, C # или любой другой, и попросить вас решить простую задачу, например, выполнить некоторую работу со строкой или двусвязным списком или любым другим. Если у вас есть проблемы с использованием вашего лучшего языка для решения простой проблемы, тогда есть проблема. Пожалуйста, смотрите сообщение в блоге Стива Йегге и, в частности, раздел «Умственная подготовка».

grokus
источник
6
Да, но не слишком много.
Дамовиза
Написание реального кода поможет вам войти в элитные компании-разработчики программного обеспечения (Google, Amazon, Microsoft и т. Д.) И не стесняется выбирать все остальное.
Грокус
3
Пожалуйста, уточните свой ответ. Что вы подразумеваете под «реальным» кодом? Какой код не является "реальным"?
МАК
+1 @MAK: Согласен, что за реальный код? Если это код, который вы собираетесь использовать в своем программном обеспечении ...
Стивен Эверс,
1
Я бы посчитал «реальный код» чем-то вроде просьбы интервьюируемого написать функцию «strdup ()». Он имеет реальное применение и раскрывает их опыт и отношение к таким вещам, как управление памятью и обработка ошибок.
JBRWilkinson
11

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

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

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

Брайан Р. Бонди
источник
2
+1 за "интервью не должны проводиться только менеджерами". Если новый наем не сможет сократить код так же, как его коллеги, в команде будут волнения.
Дж.Б. Уилкинсон
7

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

Я делаю это, чтобы увидеть, могут ли они сформулировать так, чтобы я понял, что они делают, и посмотреть, поняли ли они, что они делают.

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

(Думаю, я добавлю этот вопрос, поскольку все остальные ответы, как правило, носят технический характер. Я хочу, чтобы люди, которые знают, почему они решают проблемы, которые они тоже решают, в противном случае они склонны решать неправильные проблемы, которые не делает конечный пользователь ». не волнует :)

сойка
источник
6

Попросите их принять важное архитектурное решение

Например. Вот программа x, которая одновременно выполняет y подзадач. Что бы вы выбрали, многопроцессную или многопоточную структуру.

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

Есть множество вопросов, которые интервьюер может сформулировать так:

  • TCP или UDP?
  • Динамический или статически типизированный язык?
  • Монолитное приложение или несколько небольших приложений?
  • Что бы вы использовали для межпроцессного взаимодействия?
  • Хранимые процедуры или ORM?

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

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

Эван Плейс
источник
Единственное предостережение, которое я хотел бы добавить к этому, - убедиться, что вопрос не относится к конкретной области для компании, проводящей интервью.
JBRWilkinson
1

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

Вы можете судить, насколько они удобны с их языком, без помощи компилятора, и вы можете судить об их мыслительном процессе (особенно если они никогда не реализовывали такую ​​вещь - большинство «новых» программистов никогда не делали).

Иосип Медведь
источник
8
Я не согласен. Связанные списки и сортировка - это довольно хорошо известные проблемы, связанные с общей проблемой. Любой, кто написал один, знает, как они работают, но большинство людей не заботятся о том, чтобы писать свои, потому что большинство языков уже хорошо справляются с этим.
Эван Плейс,
Я согласен с Эваном. На практике часто бывает достаточно знать о производительности различных алгоритмов сортировки / поиска и базовых структур данных. Знание того, как их реализовать, аккуратно, но в конечном итоге бесполезно. Кроме того, в большинстве заданий по программированию более важно знать, как правильно выбрать каркас / библиотеку для задачи, чем как реализовать QuickSort в три строки.
Алан Плам
0

Поговорите, пусть он плывет и блуждает по техническому и профессиональному маршруту и ​​по пути ищите проницательные или глупые комментарии. Это дает вам 3/4 того, что вам нужно от интервью, оценки: человеческих навыков и личности, общего интеллекта и грубой оценки технических навыков.

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

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

Марк Брэкетт
источник