Почти наверняка, на собеседовании Вам придётся писать код на доске. Несмотря на то, что данный подход часто критикуют, он всё еще популярен у таких технических гигантов, как Google, Facebook, Microsoft, Amazon, а так же, во многих стартапах.

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

За кулисами


Чтобы не быть голословным скажу, что за 6 лет работы в Google я провел около 200 собеседований. Как известно, собеседования в Google достаточно сложные и отдел кадров часто связывается с кандидатами, даже если они не прислали примеры кода.

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

Чуть позже, я поменял работу и собеседовался в нескольких компаниях и стартапах в кремниевой долине (Silicon Valley). Таким образом, у меня была возможность посмотреть на весь этот процесс и с другой стороны.

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

Не спешите


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

Задавайте вопросы


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

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

Пишите код так, как Вы это обычно делаете


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

Проверяйте свою работу


Когда Вы считаете, что закончили, проверьте то, что сделали.

Большинство ошибок случается под конец. Чтобы их избежать, можно пройтись по коду с некоторыми тестовыми входными данными… Это не будет выглядеть так, как будто-бы Вы что-то забыли, или совершили ошибку. Вряд ли интервьюер будет возражать, если Вы потратите на проверку какое-то время. Напротив, он будет впечатлён этим.

Убедитесь в том, что Ваш код корректно обрабатывает нетипичные входные данные и граничные значения. Продумайте модульные тесты к коду (Unit Tests) и запишите их на доске.

Практикуйтесь


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

Продумайте, как бы вы реализовали helper для JQuery или метод из стандартной библиотеки вашего любимого языка. Поищите в интернете примеры вопросов, но игнорируйте сайты, которые рассказывают о крышках канализационных люков.

Когда Вы считаете, что закончили, возьмите свой код и проверьте, действительно ли он работает. Обратите особое внимание на то, что не работает.

Собирайте информацию


Предположим, Вы хотите работать в компании, в которой проходите собеседование. Постарайтесь поинтересоваться тем, что они вообще делают.

Несомненно, Вас спросят о продукции компании и “почему Вы хотите работать у нас”. Могут возникнуть трудности с хорошим ответом на месте. Так что, заранее разузнайте о компании и продумайте, что Вы будете говорить.

Получайте удовольствие


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



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

by Daniel F Pupius

Ошибки? Опечатки? Пишите в ЛС — обязательно всё исправлю.

в продолжение темы из habrahabr.ru/post/186002
(одна из ссылок там была именно на эту статью)