Образцы кода и интервью? [закрыто]

23

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

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

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

В итоге стоимость для нашей компании и польза для кандидата от плагиата очень минимальны.

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

Так что же отличает нас? Почему так важно поставить кого-то перед компьютером и заставить его кодировать слияние данных или факториальный калькулятор, иногда без доступа к тем самым инструментам, которые мы используем ежедневно, например, к интернету? Что не так с идеей портфолио кода?

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

прецизионный самописец
источник

Ответы:

14

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

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

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

Джастин Кейв
источник
1
+1 Хороший ответ. Последующий вопрос: если я попрошу пример кода, что мешает описанному кандидату решить потратить 8 часов на решение своей собственной надуманной проблемы, а не надуманной проблемы моего выбора? Я бы очень уважал это.
фунтовые
3
Распространенная, надуманная проблема, такая как конкретная проблема Project Euler, должна дать вам лучшие результаты и быть более внимательными к кандидатам, чем предлагать кандидатам свои собственные проблемы. Это доброжелательно для кандидатов, потому что есть четко определенная точка остановки - никто не будет чувствовать давление, чтобы тратить кучу времени на полировку пользовательского интерфейса или добавление «еще одной функции». Это лучше для вас, потому что гораздо легче сравнивать кандидатов, когда они решают похожие проблемы. В противном случае трудно не поддаваться влиянию тех, у кого была самая крутая идея или чьи образы были лучшими.
Джастин Кейв
Конечно, наличие примеров кода является более разумным ожиданием для веб-разработчика на стороне клиента, но лучший формат интервью, с которым я когда-либо сталкивался, состоял в том, чтобы сидеть и смотреть код, который я написал, делиться мыслями о вещах, которые мне нравились, желали Я справился бы лучше и т. Д., А затем посмотрел код, написанный разработчиками интервью, и делал то же самое. Гораздо важнее для обеих сторон, чем интервью в стиле расстрела, ИМО. Подход Google к приемлемым ложным негативам - причина, по которой я не хотел бы работать на них. Это неуклюже, не элегантно и расточительно. Так же, как их JavaScript.
Эрик Реппен
6

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

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

user281377
источник
4

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

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

бит-бездельник
источник
2

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

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

Заявитель должен обсудить реализацию, как они это делают.

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

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

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

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

dietbuddha
источник
1

Пример кода - довольно эффективный способ отсеивания кандидатов. Я могу оценить пример кода за 5–10 минут, но даже экран телефона занимает 15 минут и требует планирования (и не очень полезен для отсеивания чего-либо, кроме самого дно кучи по моему опыту).

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

  • что требование примера кода ставит искусственный барьер для некоторых талантливых разработчиков

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

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

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

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

  • что образцы легко подделать

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

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

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

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