Рубрики
Uncategorized

Как успешно пройти собеседование по программированию

Автор оригинала: David Wong.

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

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

Перед собеседованием

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

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

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

Когда я готовился к собеседованию в Microsoft, я начал готовиться в течение двух недель. Оглядываясь назад, я думаю, что это сыграло важную роль в моем успешном собеседовании в Microsoft. Не убедили? Вот еще один пример: этот парень потратил восемь месяцев на подготовку к техническому собеседованию в Google. Это может показаться немного экстремальным. Я не рекомендую вам заходить так далеко, но вы знаете, что я имею в виду.

Список технических книг Ниже приведен список необходимых книг для предстоящих технических собеседований.

Интервью с взломщиком кода, Гейл Лакманн Макдауэлл. Эта книга включает в себя 150 вопросов и ответов на собеседования по программированию, а также другие предложения, которые помогут вам подготовиться к собеседованию, необходимому для получения работы в качестве ведущего разработчика программного обеспечения.

Интервью по программированию, опубликованные Джоном Монганом и др. Это оценка от Amazon:

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

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

Элементы программных интервью, Аднан Азиз и др. Эта книга делит технические вопросы для интервью на разные главы, каждая из которых посвящена основным концепциям CS, таким как массивы, списки и т. Д.

Комментарии от Amazon:

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

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

Ну, может быть, еще нет.

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

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

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

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

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

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

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

Интервью

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

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

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

Проблема анализа В тот момент, когда вы сталкиваетесь с этой проблемой, очень вероятно, что вы захотите решить ее с помощью прямого кодирования. Пожалуйста, не делай этого. Напротив, убедитесь, что вы сначала полностью понимаете проблему, ее ограничения, граничные условия и так далее. Всякий раз, когда у вас есть вопросы или вам нужны разъяснения, попросите интервьюера проверить вашу гипотезу. Например, “Могу ли я получить доступ к C++ STL?” Или “Могу ли я использовать рекурсию для решения этой проблемы?”

Вы также можете привести несколько примеров, и пусть интервьюер подтвердит, что ваше понимание правильное. Например: “Я думаю, что после этого шага в массиве будет три элемента. Это a, B и C. Правильно ли это?”

Если вы справитесь с данной проблемой, вы сможете ее решить.

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

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

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

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

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

Например, ниже приведен ряд проблем с кодированием:

  • Рекрутер: Реализуйте алгоритм сортировки массива объектов.
  • Интервьюируемый: Нет проблем.
  • Рекрутер: Что делать, если размер массива составляет 10 ГБ, а физическая память составляет всего 4 ГБ?
  • Интервьюируемый: Нет проблем.
  • Рекрутер: Что делать, если рост массива превышает емкость жесткого диска?
  • Интервьюируемый: Нет проблем.

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

Ресурсы

Полный план изучения компьютерных наук, чтобы стать инженером-программистом

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

Как устроиться на работу в Big 4 – Amazon, Facebook, Google и Microsoft

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