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

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

Tech interview

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

1. До собеседования

Что нужно делать:

  • Подготовьте ручку, бумагу, наушники.
  • Найдите тихое место с хорошим интернетом.
  • Убедитесь, что видео и звук записываются.
  • Выбрерите язык программирования, с которым вы знакомы.
  • Попросите о возможности провести ваше техническое собеседование в Skype или Hangouts, а не по телефону. Так вы сможете отправить какие-то материалы или ссылки.
  • Ознакомьтесь со средой разработки (CoderPad/CodePen), в которой будет проводиться техническое собеседование. Настройте горячие клавиши, включите автокомпиляцию.
  • Подготовьте ответы на часто задаваемые на собеседованиях вопросы.
  • Подготовьте свои вопросы к интервьюеру, которые вы сможете задать в конце.
  • Наденьте комфортную одежду. Джинсы и футболка прекрасно подходят в такой ситуации.
  • Ведите себя спокойно и сдержанно.
  • Выключите веб-камеру, если это возможно. Большинство дистанционных интервью не требуют видео чата и это будет только отвлекать.

2. Введение в ваше техническое собеседование

Что нужно делать:

  • Представьте себя в нескольких предложениях в течение пары минут.
  • Упомяните какие-либо интересные моменты, которые имеют отношение к должности, на которую вы претендуете.
  • Вы должны звучать заинтересованно. Говорите с улыбкой и вы будете звучать более естественно.

Чего нельзя делать:

  • Тратить слишком много времени на представление. Чем больше времени вы будете говорить, тем меньше времени останется на код.

3. Когда вы получили задание

Что нужно делать:

  • Повторите задание.
  • Уточните всё то, что приходит вам в голову касательно данного вопроса. Многие задания специально не до конца сформулированы. Дерево может легко оказаться графом, где не будет работать рекурсия, а нужны будут циклы.
  • Уточните входные данные. Спросите, можно ли считать ввод корректным и непустым.
  • Приведите небольшой пример, чтобы убедиться, что вы поняли задание.
  • Объясните решение высокого уровня, даже если оно грубое.
  • Постарайтесь улучшить и оптимизировать своё решение. Уберите повторяющиеся куски и вычисления в кэше.
  • Аккуратно подумайте и объясните, насколько ваше решение сложное в выполнении и сколько времени и памяти оно будет занимать.
  • Если вы застряли, попытайтесь вспомнить подобные задачи, и как они решались. Ознакомьтесь с советами по этому поводу.

Чего нельзя делать:

  • Игнорировать предоставленные вам данные. Каждая деталь важна.
  • Сразу же бросаться писать код, не дожидаясь разрешения интервьюера.
  • Сомневаться в вашем подходе или решении.

4. Во время написания кода

Что нужно делать:

  • Объясняйте интервьюеру всё, что вы делаете и чего пытаетесь добиться.
  • Придерживайтесь правил хорошего тона: правильные имена переменных, операторные скобки, отступы в нужных местах и т.д.
  • Печатайте с нормальной скоростью.
  • По возможности пишите нормальный компилируемый код, а не псевдокод.
  • Выделяйте повторяющиеся куски кода в функции.
  • Спросите, можно ли использовать тривиальные функции, а не писать их самостоятельно. Это сэкономит время.
  • Используйте подсказки, которые даёт интервьюер.
  • Продемонстрируйте преимущества выбранного языка программирования.
  • Продемонстрируйте знания структур данных и алгоритмов.
  • Если вы сокращаете ваш код, сообщите об этом вслух вашему интервьюеру и скажите, что бы вы сделали без ограничения по времени. Например, "Я бы написал регулярное выражение для синтаксического анализа этой строки, а не использовал split (), т.к. он может не охватывать все случаи".
  • Потренируйтесь распределять пространство на электронной онлайн доске.
  • Не забывайте проверять на нули, пустой ввод, если это не было обговорено заранее.

Чего нельзя делать:

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

5. После написания кода.

Что нужно делать:

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

Чего нельзя делать:

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

6. В завершении.

Что нужно делать:

  • Задавайте вопросы. Что более важно: задавайте релевантные вопросы, которые вас интересуют и касаются компании.
  • Поблагодарите интервьюера.

Чего нельзя делать:

  • Завершать интервью, не задавая вопросов.
  • Задавать вопросы о том, как вы справились. Это может создать неловкую ситуацию.

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

Оригинал статьи: The Tech Interview Cheatsheet

Дополнительные материалы по теме:

Собеседование на должность программиста: вопросы по алгоритмам

Как попасть на собеседование в компанию мечты

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

 

Комментарии

ВАКАНСИИ

Добавить вакансию
Разработчик C++
Москва, по итогам собеседования

ЛУЧШИЕ СТАТЬИ ПО ТЕМЕ