Что может быть хорошим примером проекта, чтобы попросить потенциального программиста написать код во время процесса найма? - PullRequest
16 голосов
/ 26 июня 2009

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

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

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

Особенно для людей, которые раньше нанимали этот тип и использовали этот метод.

Я также подумал, что смогу дать им код для рефакторинга и посмотреть, как они это делают. Кто-нибудь когда-нибудь давал тест на рефакторинг как часть процесса найма?

Разъяснение: Я не говорю о кодировании во время интервью. Я говорю о кодировании вместо интервью. Для контекста вдохновение для этого вопроса пришло из этой статьи в FastCompany о том, как образцы работы являются лучшими предикторами успеха работы, чем интервью:

Почему лучше нанимать людей, не встречаясь с ними http://www.fastcompany.com/magazine/136/made-to-stick-hold-the-interview.html

Ответы [ 16 ]

19 голосов
/ 26 июня 2009

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

Находит ли заявитель ошибки?

Как код заявителя интегрируется в существующий код?

Заявитель застревает на чем-то, что на самом деле не имеет значения?

Адаптируется ли заявитель к стандарту кодирования существующего кода?

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

ПРИМЕЧАНИЕ: что касается ответа @bpapa, я бы позаботился о том, чтобы эта проблема была новой и явно не использовалась в производстве.

13 голосов
/ 26 июня 2009

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

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

9 голосов
/ 26 июня 2009

Я бы прислушался к совету Джоэла, согласно которому домашние задания для интервью просто отсеивают лучших программистов (перефразировано из его книги). У лучших программистов есть много вариантов, и поэтому они не захотят выполнять задание по программированию. Они просто не будут применяться. Это оставит вас с людьми со средней компетенцией. К сожалению, по моему опыту, именно они, скорее всего, попытаются выглядеть лучше, чем они есть, и если вы сами не являетесь экспертом, то они скорее всего введут вас в заблуждение.

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

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

6 голосов
/ 26 июня 2009

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

Я не уверен, что есть хорошее решение для вас.

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

4 голосов
/ 26 июня 2009

Мне нравятся проблемы на streamtech . Они довольно просты и часто могут быть выполнены за довольно короткое время, но они показывают, что заявитель способен структурировать мышление и преобразовать это в структурированный код.

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

2 голосов
/ 26 июня 2009

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

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

В конце сеанса просто удалите свою работу. Ничего страшного.

2 голосов
/ 26 июня 2009

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

2 голосов
/ 26 июня 2009

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

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

2 голосов
/ 26 июня 2009

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

Если вы хотите проверить их на месте, попросите их перевернуть строку. С организационной точки зрения настойчивость, решительность и энтузиазм так же важны, как и технически искусные, ИМХО.

1 голос
/ 26 июня 2009

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

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

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