Как быть с кандидатом, который списал на начальном тесте?

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

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

Платформа кодирования прямо указывает, что полное копирование решения не допускается (можно использовать только документацию API, StackOverflow и т. д.)

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

Мне интересно, как я должен реагировать на это во время интервью .

  • сказать кандидату - это явно смутит его, а также может заставить его обманывать более изощренно в будущем
  • не говорите кандидату - это может быть истолковано как несправедливость (отзыв неполный)

Вопрос: Как быть с кандидатом, который списал на тесте?

[РЕДАКТИРОВАТЬ]

Спасибо всем за конструктивные комментарии и ответы. Действительно, процесс не в порядке, так как большинству проблем с кодированием не менее 2 лет. К сожалению, я не могу контролировать процесс, но могу предложить своему менеджеру изменить его (т.е. обеспечить изменение/обновление задач).

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

Комментарии не для расширенного обсуждения; этот разговор был перемещен в чат .
Какой длины был фрагмент кода?
Only API documentation, StackOverflow etc. can be usedэм... вот что он сделал?
Именно так. Кандидат искал вещи в рамках разрешенных источников. Вопрос в том, понимает ли ОП , как работает код.

Ответы (7)

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

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

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

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

С философской точки зрения, у меня нет гарантии, что он обманул, но практически без опыта (из CV) в веб-разработке и написании запутанного JS-кода, который практически не отличается от SO-ответа, крайне маловероятно.
На самом деле он, однако, невиновен, пока его вина не доказана. Вы не знаете, кто изначально написал этот ТАК ответ, это может быть ваш заявитель. Скорее всего нет и они упадут при первом же запросе в свой код, но лучше пусть ошибаются, чем вы их обвиняете
«Невиновен, пока не доказана его вина» применяется только к судам общей юрисдикции. Правило для собеседований: «Нет найма, пока не будет подтверждено найм».
Если в инструкциях указано, что вы не должны копировать из Интернета, значит, человек не следовал инструкциям или не имел достаточно здравого смысла, чтобы указать, что он уже опубликовал ответ. В таком случае, зачем вносить небольшие изменения в имена переменных? Если у кого-то есть орфографические ошибки в резюме, я предполагаю, что они не умеют писать, а не то, что кто-то другой написал их резюме, что было бы еще хуже.
Когда я проходил вводный курс программирования в средней школе, инструктор был уверен , что мы с лучшим другом жульничаем. На тестах он усаживал нас в противоположных концах комнаты, писал вопросы на доске (чтобы мы не могли заранее увидеть мимеографированные вопросы) и наблюдал за нами, как ястреб. Тем не менее, наши ответы могут полностью совпадать — даже такие вещи, как комментарии и имена переменных. Он так и не понял этого: мы просто были очень похожи мыслями и решали одну и ту же проблему одинаково.
@Draken В вашей компании нет решения, которое повлияло бы на вашу прибыль больше, чем процесс найма. С точки зрения риска в минуту, собеседования — это самое рискованное поведение, которое вы совершаете на работе. Я скорее ошибочно отвергну хорошего кандидата, чем ошибочно приму плохого кандидата. И я бы не стал тратить время на кого-то, кто, кажется, с большой уверенностью обманул.
Я бы сказал, что опытный программист знает об этой проблеме и намеренно избегает выглядеть как свой собственный ответ SO. Это в основном то, что я бы сделал. После ответов на такие вопросы я бы погуглил, чтобы избежать именно этого сценария. Я думаю, вы можете склониться к предположению, что они обманули, чем нет. Я также согласен с corsiKa.
@JeffO, как сказано в инструкциях, цитируя вопрос, «полное копирование решения не допускается (можно использовать только документацию API, StackOverflow и т. д.)». Это действительно зависит от того, насколько длинным был фрагмент. В любом случае, этот ответ дает лучший подход.
@Alexei "... крайне маловероятно" Но дело не в этом. Мы все здесь согласны с вами, что это крайне маловероятно. Дракен не говорил, что вы должны принять их решение — он предоставил вам умный способ проверить их знания, не создавая ненужной драмы. Вы спросили, что вы должны делать с кандидатом. Попросите его лично объяснить свое решение — это абсолютно правильный ответ на этот вопрос. Вы узнаете то, что вам нужно знать, и вам не придется начинать конфронтацию.
««Невиновен, пока не доказана его вина» применяется только к судам общей юрисдикции». - нет, это только по закону. Это по-прежнему хороший способ мышления, поскольку он устраняет предвзятость. Ваше правило для собеседований здесь не нужно (и излишне, если вы извините за каламбур), поскольку речь идет о том, как решить, нанимать или не нанимать.
@Wildcard - Не совсем так. Даже если это несколько строк кода и все, что вы изменили, это имена переменных, это почти полная копия для всех практических целей.
@Alexei Когда вы говорите «опыт», вы учитываете опыт, полученный не в образовательном учреждении? Опрос StackOverflow показывает (каждый год), что большинство программистов — «самоучки».
Мне нравится идея, что кандидат должен понять ответ. Иногда решение действительно так же просто, как обратиться к StackOverflow, но у меня были ситуации, когда в остальном приличные разработчики копировали решение оттуда в наше приложение, не зная, почему оно работает. Плохая часть этого заключается в том, что некоторые ненужные вещи также могут быть извлечены, если они были скопированы и вставлены без дополнительных размышлений.
По крайней мере, он явно нарушил условия лицензии SO, пренебрегая указанием авторства оригинального поста(а), что для меня является черной меткой.
@Pharap - под «опытом» я подразумеваю соответствующий опыт, упомянутый в резюме, который может быть проектами, связанными с этим языком / структурой, курсами, ответами SO и т. Д.
«но практически без опыта (из CV) в веб-разработке и написании запутанного кода JS, который практически совпадает с ответом SO, крайне маловероятно». Зачем вообще тестировать кандидатов, которые утверждают, что не имеют опыта работы с JS? Это просто пустая трата времени каждого.
Хм, вам не кажется, что вы игнорируете (большую?) группу людей, которые могут объяснить существующее решение, но не в состоянии его придумать?

Как быть с кандидатом, который списался на тесте?

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

Если кто-то будет обманывать, что еще они будут делать, если вы их наймете?

Краткий ответ : Забудьте о мошеннике и переходите к другим кандидатам.

Но что, если он получил его из-за переполнения стека?
@SandraK Это попытка пошутить, потому что в настоящее время мы используем Stack Exchange, или вы думаете, что это имеет значение?
@MatthewRead OP сказал, что « копирование решения запрещено (можно использовать только документацию API, StackOverflow и т. д.) ». Я имел в виду, что если кандидат получил решение от Stack Overflow. Я не получил ваш комментарий.
Если это именно то, что он сказал, неясно, можете ли вы скопировать решение из StackOverflow. Как написано, это не просто двусмысленно, это сбивает с толку. Если он пытается сказать, что вы не можете копировать решения с любого сайта, но можете использовать StackOverflow так же, как вы можете использовать любой другой сайт, зачем вообще упоминать StackOverflow? Это не исключение и не дополнительное ограничение.
Я предполагаю, что их обучал профессор колледжа, который не использовал никаких инструментов, чтобы увидеть, кто жульничал в их работе по программированию.
@DavidSchwartz Schwartz Нет, это совсем не двусмысленно. Плакат явно означал, что им разрешено использовать сайт в качестве ресурса. Это, очевидно, не включает прямое копирование ответа. Это вопрос здравого смысла и языка. Когда кто-то говорит, что вы можете найти что-то на StackOverflow, они не говорят вам, что можно копировать ответ напрямую; они говорят вам, что можно использовать сайт в качестве ресурса для изучения концепции, с которой вы иначе не были бы знакомы. Попытка найти лазейку, чтобы обойти то, что всем известно как читерство, не оправдывает себя.
@DavidSchwartz Я согласен с BooleanChese здесь, если неясно, можете ли вы скопировать решение SO, что мы должны сделать для кандидата, который скопировал решение, изменив все имена переменных?
@PierreArlaud Это может быть кандидат, который, как и некоторые из нас, несколько не уверен, означает ли « использовать Stackoverflow » « просто прочитать о чем-то на нем » или включает в себя подъемные фрагменты кода. Изменения имени могут быть связаны с другими частями кода (которые они написали). В своей работе я с удовольствием беру фрагменты из SO (зачисленные и часто адаптированные): вероятно, их самая большая ошибка заключается в том, что они не включают подтверждение того, что они это сделали. Я бы попросил их объяснить , как работает код, и если они смогут это сделать, то нет проблем.
Коллеги, с которыми мне было труднее всего работать, были теми, кто постоянно неправильно понимал указания и все равно шел вперед. В любом случае, это может быть нормально, если работа связана со значительной гибкостью в том, что делается, или наоборот, когда требования написаны настолько явно, что не может быть никакой путаницы.
@SandraK: Использование переполнения стека и прямое копирование / вставка из него без каких-либо оригинальных мыслей не обязательно одно и то же. Существует «правильный» и «неправильный» способ использования SO.
@LightnessRacesinOrbit Candidate получил правильный ответ и изменил имена некоторых переменных. Это не копирование/вставка без раздумий.
@SandraK: изменение имен некоторых переменных не является «мышлением».
@SandraK В лучшем случае он думает о том, как они могут скрыть тот факт, что это копирование / вставка. Это просто еще одно доказательство того, что это был преднамеренный обман, а не честное неверное толкование инструкций.

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

В комментариях вы сказали,

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

Наверняка это не тот язык, который был представлен кандидату? Если бы не было ясно, что такое «мелочь» и что такое «большое дело», мне кажется, что кандидат использовал явно разрешенные ресурсы.

Ваша компания обязана представить вопрос, на который нельзя ответить путем копирования и вставки из SO, если вы хотите разрешить кандидатам ссылаться на SO, но не копировать и вставлять.

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

Согласен, он нашел передовое решение, которое хорошо сработало. Вам нужен кандидат, который предложил бы худшее решение, когда легко доступно лучшее?? Если вы хотите избежать копирования/вставки, то дайте задачу, где полное копирование/вставка было бы невозможно. Если вы этого не сделаете и отвергнете хорошие решения, то, я думаю, вы заслуживаете своих средних разработчиков.
Здесь вы столкнулись с большой проблемой: это был плохой контрольный вопрос. Тесты «Открытая книга» должны быть более продвинутыми, чем может ответить простой вопрос SO. Более того, как бы вы узнали, если бы другой кандидат просто заплатил кому-то за то, чтобы он написал свой ответ? Спишите это на плохой просмотр и возьмите у него интервью. Я аплодирую ему за то, что он знал, что ответ был правильным. Я бы все же попросил его рассказать мне о своем решении, так как я не хочу, чтобы программисты копировали/вставляли из SO, не понимая , почему ответ - это то, что им нужно.
Если это то, что произошло (а я подозреваю, что это так), их самая большая ошибка, вероятно, заключается в том, что они не включили соответствующее подтверждение CC-by-SA. Если они могут адекватно объяснить код (независимо от того, написали они его или подняли), возможно, вы захотите упомянуть об этом в будущем.
@BloodGain, очевидно, почему мне нужен ответ, потому что он сработал. ржунимагу

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

Если нет, вам нужно пересмотреть свою концепцию читерства — является ли читерством просмотр Stackoverflow, документации по API, Github для поиска решений проблем?

Какие юридические последствия этого предполагаемого мошенничества существуют? Будут ли судиться с компанией? Тогда этот кандидат не для вас.

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

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

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

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

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

Нам просто пришлось вытерпеть несколько лекций по «Этике и комплаенсу». Похоже, что в будущем вы не сможете продавать созданный вами код, если он содержит скопированный материал, даже если он взят с справочного сайта и предназначен для копирования. У нас есть инспекторы, которые приходят и фактически выполняют поиск в Интернете по частям кода, чтобы увидеть, не был ли он плагиатом. Скопированный код должен быть правильно указан и, при необходимости, лицензирован. Или действительно можно засудить.
@RedSonja Является ли это статус-кво в отношении юридических аспектов продуктов с закрытым исходным кодом? А как насчет лицензионного кода GPL или MIT (если назвать только два)? Насколько я знаю, допустимо (читай законно) использовать свободно лицензионный код в проприетарном лицензионном программном обеспечении.
@RedSonja Ты в США? Это абсолютно не так в США
Я не юрист, поэтому не очень разбираюсь в законах об авторском праве. Но в лекции, которую мы услышали, было сказано, что у вас должна быть действующая лицензия, где это уместно, — мы все можем с этим согласиться. Даже бесплатный код имеет некоторые ограничения, если вы читаете мелкий шрифт. Им нравится, когда вы доверяете этому. Теперь у нас есть клиенты, которые покупают у нас исходный код, а не только исполняемый файл, и использование скопированного кода является деликатной областью. Мы заявляем, что это все наша собственная работа, а на самом деле это не так. Да, это сложно.

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

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

Редактирует:

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

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

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

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

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

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

Дальнейшее редактирование: В заключение я бы добавил, что ИМО, по этим причинам, но в зависимости от ваших потребностей, самым мудрым выбором может быть противопоставление ему ваших наблюдений и предоставление ему возможности оправдать свои действия.

1. Сотрудник, который мошенничает в погоне за прибылью, подвергает компанию риску юридических и других опасностей. 2. Если кандидат жульничает в хорошо разработанном тесте (я так не думаю), вы теряете возможность оценить его навыки.
Да, это общее рассуждение, но сотрудник может сделать это, полагая, что он не причинит реального вреда и будет знать, где остановиться в реальной жизненной ситуации (возможно). Все ли люди, которые когда-либо в своей жизни списывали школьный экзамен, представляют опасность для их компании? также в некоторых случаях преимущества превышают недостатки, или даже компании было бы выгодно иметь кого-то, кто будет нести вину вместо них за некоторые действия (например, в производстве программного обеспечения: известны случаи, когда компании украли код под лицензией GPL). в своем программном обеспечении. Они могут быть рады, если кто-то уволит, когда это обнаружится).
Конечно, я не рекомендую такие злоупотребления, но я просто хочу проиллюстрировать, что нельзя видеть вещи черным на белом. В реальных жизненных ситуациях много серого, и, вероятно, следует рассматривать такие случаи с более широкой точки зрения, чем просто придерживаться морали.
Да, и по поводу «обманывания в хорошо разработанном тесте» я бы добавил, что хорошо разработанным тестом будет тот, который учитывает это мышление (например, для оценки способности идти на риск), и что сотрудник, способный обманывать тест, может быть умнее, чем сам тест.
Если кандидат не считает, что мошенничество причинит вред, это причина не нанимать его, а не причина нанимать его.
«Кандидат, способный обмануть такой хорошо разработанный тест, может считаться более умным, чем сам дизайн теста». Кто-нибудь еще сразу думает о капитане Кирке и Кобаяши Мару? Перезагрузите версию, конечно.....
@The photon: Бывают случаи, когда желателен хороший обман. В общем, я бы согласился с вами по многим причинам, но обычно это хорошая практика - мыслить нестандартно. Возьмем, к примеру, спор между Эммануэлем Кантом и Бенджамином Константом о праве на ложь: неправильно ли лгать убийцам, которые спрашивают вас о вашем друге, спрятанном в вашем доме? Социальная конструкция основана на соблюдении правил, но социальная эволюция основана на их нарушении. Важным моментом является то, что обществу нужно, чтобы уровень преступности оставался низким, но не искоренялся.
Кстати, интересно сравнить количество лайков и реакцию на мой ответ с остальными и с вопросом. Это хорошо иллюстрирует тот факт, что у общества есть определенное количество вопросов о своих правилах и использовании, и что это количество должно поддерживаться в определенном диапазоне, который является небольшим, но не нулевым ... И я считаю, что оптимальное количество - это то, что приходит. от естественного отбора: правильное количество дает и эволюционное преимущество группам, которые находятся рядом с ним. Недостаток препятствует способности группы приспосабливаться к обстоятельствам, но слишком много подрывает доверие.

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

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

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

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

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

Реально, сколько ситуаций вы как программист, когда вы не можете просто скопировать и вставить из SO. В любом случае у вас должно быть последующее интервью, на котором разработчики должны защищать свои дизайнерские решения, после чего вы можете спросить его, что он думает по этому поводу. Он либо объяснит вам код, либо объяснит вам код и скажет, что это было быстрее, чем его писать. Люди предполагают, что все младшие разработчики одинаковы. У некоторых людей мозг кодирования лучше. Jr. Dev — это просто титул для программиста начального уровня.

Вы уверены, что он обманул? Если да: Идея не в том, чтобы "найти решение уже решенных проблем", или "производительности", или "имеет достаточно знаний". Это также не о том, можно ли его проверить или нет, из-за того, что он сделал... нет.

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

Если нет:

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

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