Подтвердить что ты не робот

Что было бы хорошим образцовым проектом, чтобы попросить потенциального программиста кодировать во время процесса найма?

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

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

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

Специально для тех, кто ранее нанимал этот тип и использовал этот метод.

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

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

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

4b9b3361

Ответ 1

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

Есть ли у заявителя какие-то ошибки?

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

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

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

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

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

Ответ 2

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

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

Ответ 3

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

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

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

Ответ 4

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

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

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

Ответ 5

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

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

Ответ 6

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

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

Ответ 7

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

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

Ответ 8

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

Ответ 9

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

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

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

Ответ 10

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

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

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

Edit:

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

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

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

Ответ 11

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

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

Ответ 12

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

Ответ 13

Мне когда-то пришлось сдать экзамен Visual Basic MCP, в конце которого они даже не потрудились дать мне результат.

К счастью, хотя, когда я задал вопрос о том, получит ли я результат, я сидел на экране Commit/Cancel.

Итак, я нажал отмену, поблагодарил их за то, что потратил мое время и вышел.

Ответ 14

Чтобы ответить на вопрос:

Для PHP, я думаю, что корзина, адресная книга и форум будут хорошими проектами. Обычно они охватывают широкий спектр тем веб-программирования - сеансы, регистрацию, базу данных, обработку форм и аутентификацию.

Лично говоря: Похоже, вы больше похожи на архитектора, чем на гуру кодирования. Я не стал бы налагать наказание на заявителя, потому что он не может придумать имя неясной функции или необходимости ссылаться в другом месте. Главное, что он имеет инициативу и знает, где искать (небо знает, сколько раз мне нужно искать PHP.NET). Хороший вопрос для архитектора, IMHO, заключается в том, чтобы сказать ему, что у вас есть набор данных, но у вас есть три разных способа их отображения, и каждый вид имеет разные операции. Если его ответ - это просто гигантский SWITCH-CASE, то он может быть неправильным выбором.

Ответ 15

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

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

Ответ 16

Обычно это зависит от языка, на который вы нанимаете. Например, когда я пошел и дал интервью для PHP, меня попросили написать блог script, используя пользовательскую среду MVC, тогда как когда я взял интервью для открытия в качестве разработчика JS, меня попросили закодировать определенный плагин в JQuery. Его более зависимая от вас нанимает парня в конечном счете. Вы не хотите, чтобы кто-то написал вам механизм музыкальных рекомендаций, а затем попросил его работать на процессоре платежного шлюза.