Как пройти техническое интервью: советы эксперта
Что такое техническое собеседование? По какому алгоритму оно строится? Каких типичных ошибок можно избежать при его прохождении? Senior Machine Learning Scientist и владелец телеграм-канала Boris Again Борис Цейтлин рассказал, как проходит техническое интервью и как к нему подготовиться.
Что такое техническое интервью и зачем оно нужно
— Техническое интервью — это один из этапов найма технических специалистов в IT-компании, — объясняет Борис, — На этом этапе инженер из компании тестирует знания кандидата. Во время технического интервью проверяют, насколько навыки кандидата соответствуют позиции, на которую человека планируют нанять. Именно на технических интервью отсеивается большинство кандидатов.
Технических интервью, как правило, несколько, и они бывают разных типов.
Типичный процесс найма включает два технических интервью:
— Далее я буду говорить только про первый тип интервью, — поясняет Борис, — В крупных компаниях существуют свои специфические правила проведения технических интервью. Например, это могут быть несколько собеседований с задачами на алгоритмы. Я же буду говорить не о них, а о процессе найма в большинстве компаний.
Как проходит техническое собеседование
— Детали технического собеседования сильно разнятся от компании к компании, — поясняет Борис, — Но можно выделить часто встречающиеся подходы.
Стандартная структура первого технического интервью следующая: первые 10-15 минут кандидату задают несложные вопросы про язык программирования и технологии. Про Python, например, часто спрашивают: «Что такое декоратор?», «Что такое GIL и как он работает?», «Как Python работает с памятью?». Здесь интервьюер пытается оценить уровень кандидата.
Также популярна другая структура, где кандидату задают вопрос про его прошлый опыт, а затем углубляются дополнительными вопросами в упомянутые выше темы. Детали зависят от позиции:
- Программиста обычно спрашивают про язык и алгоритмы, структуры данных и технологии из стека компании.
- Для аналитика будет больше вопросов про SQL и базы данных, теорию вероятностей и матстатистику.
- На собеседованиях ML специалистов спрашивают про статистику и теорию вероятностей, теорию машинного обучения и детали работы моделей.
Осташиеся 30-45 минут в любой из структур — это лайф-кодинг задача. Интервьюер и кандидат подключаются в коллаборативную среду, где можно совместно писать код, но нельзя его исполнять. Интервьюер дает условие задачи, а кандидат задает вопросы, уточняет условие, пишет код и оценивает асимптотическую сложность решения в O(N) нотации.
Советы, как пройти техническое собеседование
— Самое важное — это отказаться от ментальности студента на экзамене, — считает Борис, — Интервью стоит воспринимать как общение двух специалистов. Плохие интервьюеры создают впечатление допроса, но не стоит на это поддаваться. Волнуясь и защищаясь, вы, скорее всего, провалитесь. Простой лайфхак для правильного настроя — это представить, что вы с интервьюером уже коллеги и находитесь на одной стороне.
Второе, о чем нужно помнить, — это то, что на собеседовании тестируют не только технические знания. Люди пытаются выяснить, хотят ли с вами работать. Соответственно, вам нужно продемонстрировать свое мышление: не стесняйтесь задавать вопросы и не бойтесь, если вы чего-то не знаете.
Практические советы
— Чтобы пройти первый этап с простыми вопросами, нужно подготовиться. Здесь интервьюер, как правило, пытается отсеять совсем ничего не знающих людей. Обычно все задают одни и те же вопросы, их список можно найти в интернете, — продолжает Борис, — Если вы не знаете ответа на вопрос, который можно найти в интернете за пять минут, то это ваш «прокол». Также будьте готовы, что вам будут задавать вопросы о технологиях, которые вы упоминали в резюме.
Алгоритмическая часть — самая сложная. Подготовка к ней раскладывается на два этапа:
- Изучение правильного процесса прохождения интервью;
- Практика в решении задач.
Процесс проведения интервью стандартный. Знание правил этой «игры» сильно помогает. Алгоритм следующий:
— Зная структуру, остается только практиковаться решать задачи и писать код без исполнения и помощи IDE, — подытоживает Борис, — Открываем leetcode, сортируем задачи по сложности или популярности и решаем. Скорее всего для подготовки к типичным собеседованиям достаточно прорешать задачи уровня Easy.
Смотреть вакансии в разделе Работа.