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