В качестве одного мнения от того, кто запрашивает образцы кода при оценке кандидатов, есть несколько высокоуровневых функций (содержимое кода) и несколько низкоуровневых функций (структура кода). Особенности высокого уровня:
- Идентичность : вкус кода. Если вы выставляете себя как UI / HCI-кодировщик, я хочу увидеть, как что-то визуально выглядит при запуске. Если вы разработчик БД, я хочу увидеть что-то интересное с представлением или анализом данных. Образец должен быть чем-то, чем вы гордитесь . Если у вас нет хотя бы одного из них, у вас нет личности.
- Зрелость : Вы меняете стратегии для разных проблем? Вы решаете интересные проблемы? Будет ли код или подход легко распространяться на аналогичную проблему? Наоборот, я чувствую, что я смотрю на члена коммуны грузового культа?
- Коммуникация : легко ли код объясняет, что он делает и почему? Это не означает, что код должен быть простым. На самом деле, это бонус для того, чтобы сделать сложный код легким для понимания.
Низкоуровневые аспекты проще:
- Стиль : код должен быть чистым, последовательным (следует некоторым установленным рекомендациям) и хорошо документированным.
- Упаковка : должно быть как минимум краткое readme, работоспособная версия и работоспособные тесты. В файле readme должно быть указано, как запустить последние два, а также почему вы демонстрируете этот конкретный пример кода.
- Язык (и) : Обычно я спрашиваю у кого-нибудь образец языка на должность, а также тот, на котором он чувствует себя сильнее всего. Дает хорошее представление о текущих потолках человека.
Для хорошего кандидата я ожидаю, что образец будет либо: A) Пуленепробиваемый маленький образец, либо B) Хорошая часть более крупного интересного проекта (например, модуль из личного репозитория Github). Я ожидаю, что это будут личные проекты или академические проекты. Если они отправят один из платного проекта, я ожидаю, что им будет дано разрешение на его использование. Если я не получу эту записку, я буду вырезать их из кандидатов (слабый кандидат) или спросить их об этом во время собеседования (сильный кандидат). Отсутствие разрешения будет большим красным флагом (вероятно, непреодолимым). Для продвинутого кандидата я ожидаю отказа от ответственности, отмечая, что некоторые из их лучших исходных образцов не могут быть показаны, потому что это было сделано как часть их работы. Тем не менее, я ожидаю мимолетного свидетельства о том, почему они гордятся этим невероятным дизайном и как они любят его, как ребенка.
Наконец, хотя некоторые люди упрекают, что «О, кто-то может просто получить пример кода из Интернета», контраргумент в том, что большинство людей, которые не понимают хорошего кода производственного качества, также не понимают его, когда видят его , Кроме того, всегда можно Google отличительную черту для кода, чтобы проверить. Кроме того, в лучшем случае кража кода приведет кандидата на собеседование, где они смущаются («Так почему же вы так поступили ...?»).
Как последнее примечание по коду от предыдущей работы: просто не надо. С точки зрения HR, запрос кода от предыдущей работы неуместен и красный знак о компании. Вы оба несете юридическую ответственность (то есть на вас обоих могут подать иск), и это показывает, что они понятия не имеют, что они делают. Код, сделанный для предыдущего работодателя, никогда не должен предоставляться, если код уже общедоступен или у вас нет явного разрешения от этого работодателя. Хуже того, в большой компании ваш непосредственный начальник может не иметь полномочий давать вам разрешение, так что в таком случае повеселитесь с юридическим отделом? Я уверен, что они будут очень рады выставить свой IP для бывшего сотрудника.