- PVSM.RU - https://www.pvsm.ru -

Шпаргалка для стажера: пошаговое решение задач на собеседовании Google

image

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

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

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

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

Рекомендуем бесплатные интенсивы по программированию для начинающих:
Основы Java всего за 3 дня [1] — 8–10 августа;
Пишем первую модель машинного обучения [2] — 12–14 августа;
Разработка мессенджера на Python [3] — 15–17 августа

Шпаргалка для технического интервью

Сайты

Pramp [4]

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

Codesignal [5]

Хорошие вопросы с реальных собеседований в Facebook, Google, Microsoft, etc. Я советую использовать этот сайт вместе с ресурсами по практике кодинга, включая изучение алгоритмической сложности.

Книги

Cracking the Coding Interview

Мои любимые части: Interview Preparation Grid (стр. 32), раздел, посвященный поведению на собеседовании, а также Interview Questions: Data Structures (стр. 88–107). Если вы ранее не сталкивались с термином «алгоритмическая сложность», то сейчас самое время, книга отлично вводит в тему.

А что делать на собеседовании?

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

Собеседование шаг за шагом

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

  1. Прочитайте вопрос.
  2. Разберите все данные, как входные, так и выходные, и обратите внимание на побочные эффекты.
  3. Уточните суть задания и озвучьте ваши предположения, чтобы интервьюер понимал ход ваших мыслей. Например, какие будут объемы данных и кто станет пользователем.
  4. Подыщите пример и озвучьте его интервьюеру, чтобы быть уверенным, что вы верно понимаете задачу. Не бойтесь потратить время, вникая в условия задачи. Чем лучше вы ее поймете, тем быстрее найдете оптимальное решение.
  5. Разработайте алгоритм. Постарайтесь решить похожую, но менее сложную задачу. Записывайте мысли, разбирайте в черновике примеры.
  6. Пройдитесь по своему алгоритму с примерами, чтобы убедиться, что код работает верно. Проверьте все критические и пограничные случаи.
  7. Оцените сложность алгоритма как по времени, так и по памяти.
  8. Если вам удалось придумать более эффективное решение проблемы, то вернитесь к пункту 4.
  9. Напишите решение, используя выбранный алгоритм. Разбейте проблему на несколько методов, если это допустимо в конкретном случае.
  10. Проверьте код на ошибки.
  11. Подумайте, как реализация алгоритма справляется с критическими и пограничными случаями.
  12. Проверьте реализацию на примере, просмотрите код на ошибки.
  13. Как только убедитесь, что код выполняется правильно, проверьте его чистоту и стиль.

Вот, собственно, и все!

Автор: fokus-lop

Источник [6]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/shpargalka/326466

Ссылки в тексте:

[1] Основы Java всего за 3 дня: https://webinar.skillbox.ru/java/?utm_source=habr-com&utm_medium=banners&utm_campaign=all_all_habr-com_banners_banners_intensive-1_all_code_skillbox&utm_content=08-08-2019

[2] Пишем первую модель машинного обучения: https://webinar.skillbox.ru/data-science-intensive/?utm_source=habr-com&utm_medium=banners&utm_campaign=all_all_habr-com_banners_banners_intensive-11_all_code_skillbox&utm_content=08-08-2019

[3] Разработка мессенджера на Python: https://webinar.skillbox.ru/messenger-python/?utm_source=habr-com&utm_medium=banners&utm_campaign=all_all_habr-com_banners_banners_intensive-25_all_code_skillbox&utm_content=08-08-2019

[4] Pramp: https://www.pramp.com/#/

[5] Codesignal: https://codesignal.com/

[6] Источник: https://habr.com/ru/post/462979/?utm_campaign=462979&utm_source=habrahabr&utm_medium=rss