Skip to main content

Технические вопросы интервью и советы - муза

10 ВОПРОСОВ НА СОБЕСЕДОВАНИИ И КАК НА НИХ ОТВЕЧАТЬ (Май 2025)

10 ВОПРОСОВ НА СОБЕСЕДОВАНИИ И КАК НА НИХ ОТВЕЧАТЬ (Май 2025)
Anonim

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

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

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

Будучи третьим инженером в Pocket Gems, в котором работают около 165 технических специалистов, я провел сотни телефонных и локальных интервью. За это время я многое узнал о том, как правильно к нему подготовиться. Вот советы, которые вам понадобятся для следующего технического интервью.

Фокус на Основах

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

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

Например, вас могут спросить что-то вроде: вам дано двоичное дерево и два узла в дереве. Найти наименьшего общего предка двух заданных узлов за O (n) времени.

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

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

Будьте готовы решать разные вопросы

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

Вот примерный вопрос: вам дано арифметическое уравнение в виде строки. Это уравнение будет иметь однозначные цифры 0-9, сложение, вычитание, умножение и скобки. Напишите функцию, которая принимает это уравнение и вычисляет правильный ответ. Примеры входных данных включают «1 + 1» и «2 * (1 + 9) - ((2 + 5) -9»).

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

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

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

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

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

Практика, Практика, Практика

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

Вот несколько советов, которые помогут вам получить максимум от тренировочного времени:

  • Убедитесь, что вы имитируете среду интервью. Дайте себе ограничение по времени на проблемы. Если вы собираетесь проводить собеседование по телефону, попрактикуйтесь как в Stypi, так и в Документах Google. (Я знаю, что отсутствие автозаполнения и выделения синтаксиса приводило меня в замешательство при телефонных интервью.) Если вы собираетесь проводить собеседование лично, попрактикуйтесь в выполнении задач на бумаге или на доске.
  • Попросите нетехнического друга задать вам вопросы на собеседовании и проведите его или ее через ваши ответы. Если вы можете объяснить это ему или ей, я уверен, что вы можете объяснить это своему техническому интервьюеру.
  • Не думайте, что вы обманываете, если используете какие-то инструменты для подготовки, которые там есть. Они часто предлагают отличное понимание и практические вопросы. Мои любимые сайты, такие как TopCoder и книги Head First . Некоторые другие книги, которые больше говорят о процессе собеседования, - это « Программируемые интервью» и « Взлом интервью» .

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

Хотите узнать больше? Я недавно выступал по этому вопросу на конференции UC Berkeley Engineering / Tech Career Conference. Проверьте мои слайды из выступления ниже для большего количества мыслей и ресурсов!