Как разработчику провалить собеседование

Перевод статьи «How to fail a programming interview».

Как провалить собеседование

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

Незнание основ программирования

Вот это меня всегда очень напрягает.

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

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

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

Возможно, вы работаете со многими языками и технологиями. Я это понимаю, сам такой. Мне случается забыть, как что-то делается в определенном языке. Но это не оправдание. Если вы выбрали язык для прохождения собеседования, нужно повторить основы заранее. Я знаю, что в C++ основы сложнее, чем в Python, но подразумевается, что вы будете владеть выбранным вами языком.

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

Вы не говорите; говорите, но плохо, или не проявляете интереса

На собеседовании нужно говорить.
Image by lograstudio on Pixabay

Собеседования это разговоры, так что необходимость говорить не должна быть для вас сюрпризом.

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

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

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

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

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

Говорите внятно и показывайте свой интерес к делу.

Вы слишком все усложняете

Собеседования длятся не долго и все, что вы будете делать, должно уложиться в отведенное время. Если ваше собеседование будет длиться один час, то на программирование у вас будет только 35-40 минут. Ведь нам нужно и пообщаться, а не только код писать.

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

Если вы будете слишком усложнять задачу и учитывать слишком много вариантов «что, если?» , это съест все ваше драгоценное время. Фокусируйтесь на проблеме как таковой. Не ищите скрытый смысл, не пытайтесь создать совершенную систему. Это еще одна причина, по которой озвучивание идей в ходе собеседования необходимо. Оно дает интервьюеру шанс направить вас на нужный путь.

Просто решайте данную вам проблему.

Не нужно переусложнять
Image by music4life on Pixabay

Вы не знаете ничего о своей прежней работе

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

Я улавливаю названия технологий. Вы full-stack разработчик, но что это означает в вашем случае? Вы использовали NodeJS и Angular? Как вы обращались к серверу? Какую базу данных использовали? Над чем конкретно вы работали? Я хочу понять степень вашей вовлеченности в процесс.

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

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

Написание неряшливого кода

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

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

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

У меня редко кто проваливался на собеседовании только из-за неряшливости. Однако, было много случаев, когда паршивый код замедлял собеседование: то кандидат не мог разобраться в том, что написал, то мне приходилось спрашивать, что происходит в этом коде.

Плохие отзывы о ком-то или о чем-то

Не отзывайтесь ни о чем плохо
Image by AbsolutVision on Pixabay

Просто не делайте этого!

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

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

Что, если вас подбивают говорить о чем-то плохо? Вас вполне могут спросить что-то вроде «что не так с Х?» или «каков ваш худший опыт?». В такие моменты следует проглотить свою гордость и рассказать о том, чему вы научились, что поняли, что вам удалось превозмочь. Говорите скромно и фокусируйтесь на позитиве. Я люблю, когда люди могут превратить отвратительную ситуацию в позитивную историю. Вот с такими людьми мне хотелось бы работать.

Заключение: побольше soft skills

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

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

Заметили, что допускаете на своих собеседованиях какие-то из перечисленных ошибок? Исправьте их. Все эти навыки можно и нужно нарабатывать и оттачивать.

[customscript]techrocks_custom_after_post_html[/customscript]

[customscript]techrocks_custom_script[/customscript]

1 комментарий к “Как разработчику провалить собеседование”

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

Прокрутить вверх