Техническое интервью в Опен Медиа: как проходит, где подготовиться и что обо всём этом думает СТО

Рассказываем, как подготовиться к одному из важнейших этапов собеседований в IT-компанию — техническому интервью. Делимся опытом наших программистов, а также подсказываем, как проходит техническое собеседование в Open Media.
Как выглядит процесс отбора кандидата в IT-компанию
В зависимости от компании, процесс найма может быть абсолютно разным. Часто отбор кандидатов состоит из нескольких ступеней:
- Первичное собеседование с рекрутером.
- Техническое интервью: проходит с вашим будущим руководителем и одним или несколькими сотрудниками компании.
- Тестовое задание: этап до или после технического собеседования.
- Cultural fit интервью; есть не во всех компаниях. Помогает понять, сработаетесь ли вы с командой, а команда — с вами.
- Финальное интервью.
В Опен Медиа процесс собеседования кандидатов на технические должности обычно проходит в 2 этапа: первый этап — знакомство и техническое интервью, второй — тестовое задание (есть не всегда).
На собеседованиях на веб-позиции в Опен Медиа, мы стремимся свести к минимуму количество затрачиваемого времени и для кандидата, и для себя, поэтому стараемся уместить всё в одно собеседование. Бывают ситуации, когда трудно выбрать из нескольких приблизительно равных кандидатов, и тогда мы можем попросить дополнительно ответить кандидата на интересующие нас вопросы.
Антон, ведущий фронтенд-разработчик
В обязательном порядке до технического интервью мы даём тестовое задание для кандидатов на позиции джуниор. Традиционно кандидатов на неё очень много, и тестовое сразу помогает понять, насколько человек заинтересован в вакансии, оценить его навыки и предметно поговорить на собеседовании.
На С++ вакансии в зависимости от того, указаны ли личные репозитории в резюме кандидата, даём тестовое задание или сразу назначаем техническое интервью.
Кандидатам на C++ вакансии мы даём одинаковое тестовое задание всем уровням программистов: оно сформулировано таким образом, что его можно сделать и поверхностно, и очень проработанно. Мы намеренно не даём конкретных технических требований, чтобы посмотреть насколько глубоко кандидат захочет погрузиться в задачу и будет ли задавать вопросы: кроме hard skills проверяем ещё и soft skills.
Максим, ведущий С++ разработчик
В тексте этой статьи мы не будем останавливаться на тестовом задании, а поговорим лишь о техническом интервью.
Как проходят технические собеседования
Формат тех. интервью и вопросы могут отличаться от компании к компании в зависимости от процесса отбора, проекта, должности, а также уровня кандидата.
Обычно технические собеседования проходят так: вас спрашивают о предыдущем опыте, могут предложить решить задачу, написать программу или найти ошибку в коде, в это время проверяя, а иногда и комментируя ваши действия.
Технические собеседования бывают нескольких видов; они могут многое рассказать о порядках, существующих в компании, и том, каково будет там работать. Обычно технические интервью проходят в таких форматах:
- Whiteboard (перед вами кладут лист бумаги, ставят доску или попросту просят открыть Google-документ и написать программу).
- Теоретические вопросы из области разработки и алгоритмической базы.
- Задачи на ревью кода.
Вопросы, которые могут задать на техническом собеседовании
В зависимости от опыта, грейда и навыков кандидата вопросы на техническом интервью могут различаться. Джунам придётся повторить теорию, а более опытным специалистам — мидлам и сеньорам — будут задавать практические вопросы с упором на понимание технических задач.
Вопросы можно условно разделить на три категории: теория и технологии, вопросы на сообразительность и задачи на кодинг.
Вопросы на знание технологий. Ответы на эти вопросы сложно вывести логически или догадаться о них; тут вы либо знаете/помните о конкретной технологии, либо нет. Такие вопросы обычно включают в себя вопросы знания терминологии, библиотек, функций и алгоритмов.
Вопросы на сообразительность и задачи на логику — это разнообразные головоломки. Во многих компаниях таких вопросов не задают, но в Google, например, когда-то была загадка о мячиках для гольфа и автобусе или блендере.
Кодинг или код на ревью. Вас могут попросить написать программу и/или сделать ревью кода: сказать, что вам в нём не нравится, найти ошибки, прокомментировать архитектуру.
Как проходит техническое собеседование в Опен Медиа
В технических собеседованиях Open Media помимо HR обычно принимает участие разработчик с того же направления или проекта, на который открыта вакансия, а также СТО. На собеседование фронтендера, например, может быть также привлечён бэкенд-разработчик для случаев, когда в резюме соискателя указаны навыки фулстека.
Мы задаём общие вопросы из разных областей разработки, чтобы проверить базовые технические знания, знания алгоритмов, структур данных и оцениваем широту кругозора соискателя.
Что спросим у джуна
Джунам важно иметь общее представление об используемом технологическом стеке и знать теорию.
На веб-вакансии джунам задаются теоретические вопросы из той области разработки, на которую претендует кандидат, вопросы на знание используемого стека, а также вопросы из сопряжённых областей.
На С++ вакансии задаём технические вопросы без лайвкодинга или код-ревью.
Интерес к проектам компании, портфолио и софт-скилы также играют не последнюю роль.
Что спросим у мидла
У кандидатов на вакансии уровня middle будем оценивать практические навыки и понимание процессов; им необходимо не просто знать определения, но и показать, как применить теорию на практике. В качестве подготовки к техническому интервью советуем посмотреть используемые в вашем последнем проекте паттерны и технологии.
Для кандидатов уровней мидл и сеньор на веб-позиции мы предлагаем лайвкодинг в сочетании с код-ревью. Это отличный способ посмотреть на ход мысли и рассуждений человека, попутно обсудить предпочтения по кодстайлу и выбору технологий для решения задач.
На С++ вакансии мидлам и сеньорам задаём теоретические вопросы без лайвкодинга или код-ревью. Вопросы, как правило, для всех грейдов одинаковые, но с ведущими программистами мы успеваем пройти большее число вопросов, добираясь до более сложных.
Что спросим у сеньора
Помимо теоретических знаний и понимания практического применения технологий для кандидатов уровня senior добавляется умение решать архитектурные задачи и развитые софт-скилы. Сеньорам важно уметь разобраться в новом для себя вопросе, самостоятельно найти решение незнакомой задачи и понимать её важность для бизнеса.
Как подготовиться к техническому интервью
Некоторые разработчики придерживаются принципа «чем больше ходишь, тем лучше становишься готов», а кто-то ходит на собеседования для поддержания формы, не ища работу.
Вне зависмости от вашей цели воспользуйтесь этими практическими советами от наших программистов:
- Перед собеседованием соберите портфолио на GitHub с техническими проектами.
💡Build your own X — репозиторий с гайдами о том, как создать свой проект в различных областях: от AR и ботов до эмуляторов, баз данных и ОС.
- Не нервничайте и спокойно демонстрируйте свои знания, не боясь показать, что чего-то не знаете.
- Чётко и без воды отвечайте на вопросы.
- Заранее ознакомьтесь с продуктами компании.
- Ориентируйтесь на свой опыт и знания, приобретённые в процессе работы: не страшно, если вы чего-то не знаете; главное — ваше глубокое понимание того, чем вы уже пользуетесь, и способность найти решение за пределами своих знаний.
- Если не знаете ответа на вопрос, вслух размышляйте, где бы вы нашли решение или предложите альтернативное решение из вашего опыта. Интервьюер ожидает от вас мыслей и рассуждений.
- Предлагая альтернативное решение, порассуждайте, чем ваш подход лучше или хуже.
- Если не знаете с чего начать решение задачи, попросите у интервьюера намекнуть на решение, начните с самого очевидного решения или даже псевдокода, чтобы было от чего отталкиваться.
- Проговорите алгоритм решения устно: тогда, возможно, и кодить не придётся.
- Заранее настройте камеру и звук, если собеседование проводится удалённо.
Спокойствие и вдумчивость однозначно помогут вам успешно пройти техническое собеседование. Стремление рассмотреть любой вопрос с позиции логики также будет не лишним. Не нужно фокусироваться на волнении, а просто посидеть, покрутить задачку или вопрос, чтобы подключилось логическое мышление. Никто не будет унижать за неправильный ответ.
Антон, ведущий фронтенд-разработчик
Чего не нужно делать, если не знаете ответ на вопрос
Невозможно знать ответ на любой вопрос, даже после многолетней практики: при небольшом опыте многое ещё не встречалось, а сеньоры и тимлиды уже успели многое позабывать. Но чего точно не нужно делать, если в голове ни одного решения, так это долго молчать, оправдываться, что обычно вы всё помните, а сейчас вдруг забыли.
Лучше честно сказать, что вы не встречали этого в работе и поразмышлять над альтернативным решением или тем, как бы вы стали искать ответ на этот вопрос на практике.
Ресурсы для подготовки к техническому собеседованию с примерами вопросов и задач
Программисты Опен Медиа при подготовке к собеседованиям выписывают себе что-то из прочитанных книг и статей, вспоминают задачи, которые приходилось решать в работе, а также смотрят записи открытых интервью.
Мы собрали несколько ресурсов, которые могут помочь подготовиться к техническому собеседованию:
- Tech Interview Handbook: справочник для технических собеседований со шпаргалками и практическими советами.
- Coding Interview University: базовый курс с вопросами и планом изучения информатики; подходит тем, кто только начинает ходить на тех. интервью.
- System Design Primer: полезный репозиторий для тех, кто готовится к собеседованию по системному дизайну.
- Awesome Interview Question: список вопросов по широкому кругу тем и языков: от C и C++ до .NET, CSS, различных технологий пользовательского интерфейса и баз данных.
- Interview: сборник с ресурсами, которые помогут подготовиться к техническому собеседованию.
- Coding interview: база с интервью по кодингу с типовыми вопросами, чтобы понять подход к настоящему собеседованию.
- GitHub репозиторий с коллекцией вопросов, которые могут встретиться на техническом собеседовании, а также информацией для знакомства с процедурами, связанными с процессом найма. От резюме до интервью — здесь полный пакет.
- Cracking the Coding Interview Steve Yegge's Blogspot: книга, которую наряду с Codeforces, рекомендуют HR Гугла.
- Interview Warmup: тренажёр от Google, который погоняет вас по всем популярным вопросам в направлениях IT support, Data Analytics, UX Design и других, проанализирует ваши ответы и даст рекомендации, что ещё нужно подтянуть.
- Интересные задачки с технических собеседований: статья на Хабре с примерами задач от интервьюера и кандидата в одном лице.
- Я пришел на собеседование с лайвкодингом — и меня с позором размазали: просто весёлая история расслабить нервы перед интервью 🫠
Техническое интервью глазами CTO
Что важно и показательно для интервьюеров во время собеседований? Не можем сказать однозначно, как в других компаниях, но вот что важно нашим программистам и техническому директору:
Помимо опыта и навыков общения, я отмечаю наличие своих проектов у кандидата; особенно у джунов и соискателей уровня мидл. Мне кажется, если у кандидата нет личных проектов, это говорит о том, что ему/ей не очень интересно программирование в целом, а интерес и желание работать — это самое главное. Во время интервью я также оцениваю уровень владения технической базой и знание алгоритмов.
Слава, директор
Обычно во время интервью я обращаю внимание на то, как кандидат формулирует мысли при ответе, делится ли опытом работы и личной позицией по конкретному вопросу. Мне интересно наблюдать за ходом мысли каждого кандидата. Всегда здорово найти человека, с которым можно будет обмениваться знаниями.
Антон, ведущий фронтенд-разработчик
Во время технических интервью я, кроме самих знаний, смотрю на то, как человек общается: оцениваю, впишется ли человек в команду. С точки зрения хард-скилов я смотрю на то, насколько кандидат дотошен, стремится ли он разобраться в вещах, с которыми работает, пытается ли он ответить на вопросы, на которые не знает ответа, и честно ли отвечает.
Максим, ведущий С++ разработчик
Теперь вы представляете, как проходят технические собеседования в целом, где можно подготовиться и чего ожидать.
На тех. интервью в Open Media ничего необычного и стрессового вас точно не ждёт. К тому же мы стараемся экономить ваше время, не приглашая на десятки созвонов, и сделать процесс собеседований максимально комфортным.