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


28

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

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

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

Ответы:


21

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

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

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

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

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

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


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

5
Я не удивлен, что это популярный ответ на этом сайте. Аудитория здесь по определению оценивает «культуру программиста». (Я согласен с ответом, но встретил несколько отличных программистов, которые не пройдут этот тест, особенно те, кто в толпе старше 40 человек)
— AShelly

2
@AShelly: Да, я согласен. Вот почему я не считаю этот вопрос необходимым отклонить или принять программиста. Это просто еще одна техника, которую вы можете использовать во время интервью.
— Серхио Акоста

16

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

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


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 того, что вам нужно от интервью, оценки: человеческих навыков и личности, общего интеллекта и грубой оценки технических навыков.

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

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

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.