Я абсолютно хочу, чтобы вы протестировали код доски, который я прошу вас написать. Я хочу, чтобы вы говорили вслух, пока вы пишете, просматриваете, обнаруживаете большинство синтаксических ошибок, которые вы сделали, и указываете, как это может быть более эффективным. На самом деле, это своего рода смысл делать это на доске. Это не одноразовый, пиши все-таки, ну-а-а-а-а-а-а-а-а-а-а-а-а, Это разговор, опосредованный кодом и проведенный за доской вместо моего стола.
Вот несколько отличных способов не пройти тест «Кодирование доски»:
- откажись
- не задавайте ни одного уточняющего вопроса (язык, платформа, что-то о требованиях), И не рассказывайте мне свои предположения о каком-либо из них И делайте предположения, далекие от того, на что я бы ответил
(например: напишите это на Фортране, интерпретируйте «display» или «print» как «запись в журнал событий», что-то в этом роде. Я мог бы разрешить это, если вы заранее сказали мне, что это были ваши предположения)
- спросите меня, на каком языке я хочу, получите ответ, который есть в должностной инструкции, а затем напишите его на другом языке, потому что вам неудобно на языке, который я просил.
(Мы здесь консультанты. Я проверяю поведение консультантов так же, как и кодирование. Спрашивать клиента правильно, только если у клиента действительно есть выбор. Управлять разговорами с людьми, которые будут вам платить, сложно. Это урок 1. Это отметьте себя на любую тему, но для конкретного «вы нанимаете программиста на X, но я не хочу писать для вас на X», теперь у вас есть две большие черные отметки.)
- Покажите мне, какой вы астронавт архитектуры, заполнив две доски интерфейсами, фабричными шаблонами, абстракциями, инъекциями и тестами, когда я хотел, чтобы вы «печатали числа от одного до 5».
(вы думаете, что я преувеличиваю, но у меня был парень, который резко обобщил мою проблему - придерживаясь приведенного выше примера, скажем, вместо 1 - 5 его решение сделало бы любую произвольную последовательность целых чисел (откуда взято? Интересно) и было 5 столько же раз, сколько кто-либо другой - и он забыл на самом деле вызвать функцию, которая выполняла эту работу. Повторение подсказок и предложение, чтобы он прошел через это, как будто он был отладчиком, не привело к тому, что он заметил, что функция никогда не вызывается.)
Я всегда говорю "тебе это нравится?" "Вы можете улучшить это?" «проведи меня через это» и тому подобное. Как правило, пропущенная точка с запятой обнаруживается, или один за другим, в этом разговоре. Если нет, я обычно отмечаю это до нервов.
Другие вещи, которые вы можете не иметь значения на доске, которые важны для меня:
- когда ты закончишь, я все еще могу это прочитать? Вы испачкались, набросали, поменяли цвета, нарисовали стрелки, вычеркнули и вообще оставили беспорядок, который теперь нельзя использовать? Или вы знаете, что доски стираются, указывают на строки кода в воздухе вместо того, чтобы обводить их стрелками или стрелками, и оставляют мне то, что я могу сфотографировать и сохранить в файле дизайна?
- сколько ты спросил у меня как ты это сделал? Вам нравится оставаться в одиночестве и не обсуждать свой код, или вы рассматриваете код как вещь для совместной работы? Как вы ответили, когда я спрашивал вас, когда вы еще это писали?
- Вы насмехались над «легкой» задачей или падали в обморок от «тяжелой»? Вы были грубы из-за того, что вас попросили показать, что вы можете кодировать? Вы легко запуганы технической проблемой или высокомерны из-за своей способности придумать хороший алгоритм?
- Вы решаете это в своей голове или вспоминаете решение, которое вы где-то читали? Я обычно могу сказать о трудных проблемах.
- Вы планировали заранее о том, где вы начали писать? Люди, у которых заканчивается доска, обычно начинают слишком низко или пишут слишком много - я могу сказать, что они не знали, что это будет 20 строк кода, и поэтому оставалось место только для 5 - верьте этому или нет, эта крошечная деталь отражена в большие задачи оценки, а также.
- Вы смотрели это до того, как сказали, что закончили? Я видел, как вы указали или постучали по нему и сами проверили его, прежде чем я вас об этом попросил? Когда я вам подсказывал или задавал конкретные вопросы по этому поводу, вы смотрели на это снова или просто уходили из памяти? Готовы ли вы считать, что ваш первый черновик может быть неполным?
Я настоятельно рекомендую практиковать кодирование на доске. Я всегда предупреждаю интервьюируемых, что их попросят это сделать. Если у вас есть доступ к реальной доске, то поставьте перед собой несколько простых задач и попрактикуйтесь в их решении. Это поможет вашей производительности и вашей уверенности.
Извините, я знаю, что нахожусь на территории TL; DR, но вот в чем дело - кодирование на доске - это больше, чем кодирование . Это проверка не только понимания синтаксиса. В ваших ответах на эту задачу продемонстрировано множество поведений хороших программистов. Если вы думаете, что речь идет только о кодировании, вы упускаете суть.
В других разговорах о тестировании доски люди говорили мне, что я могу отказаться от хорошего кандидата. Честно говоря, это риск, на который я готов пойти. Каждый раунд найма содержит несколько человек, которых я могу нанять. Некоторые люди с отличным резюме, у которых все хорошо в части вопросов и ответов на интервью, разваливаются на доске и явно не могут (с любым количеством подсказок) написать простой код на языке, который, как они утверждают, знают. Я мог бы нанять некоторых из них. Любой инструмент, который предотвращает это, я буду продолжать использовать. Я никогда не заканчивал тем, что нанимал лодку, потому что все мои кандидаты запутались в доске, и я не ожидаю, что когда-либо буду.