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

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

Рассказываем, как подготовиться к одному из важнейших этапов собеседований в IT-компанию — техническому интервью. Делимся опытом наших программистов, а также подсказываем, как проходит техническое собеседование в Open Media.

Как выглядит процесс отбора кандидата в IT-компанию

В зависимости от компании, процесс найма может быть абсолютно разным. Часто отбор кандидатов состоит из нескольких ступеней:

  • Первичное собеседование с рекрутером.
  • Техническое интервью: проходит с вашим будущим руководителем и одним или несколькими сотрудниками компании.
  • Тестовое задание: этап до или после технического собеседования.
  • Cultural fit интервью; есть не во всех компаниях. Помогает понять, сработаетесь ли вы с командой, а команда — с вами.
  • Финальное интервью.

В Опен Медиа процесс собеседования кандидатов на технические должности обычно проходит в 2 этапа: первый этап — знакомство и техническое интервью, второй — тестовое задание (есть не всегда).

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

Антон, ведущий фронтенд-разработчик

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

На С++ вакансии в зависимости от того, указаны ли личные репозитории в резюме кандидата, даём тестовое задание или сразу назначаем техническое интервью.

Кандидатам на C++ вакансии мы даём одинаковое тестовое задание всем уровням программистов: оно сформулировано таким образом, что его можно сделать и поверхностно, и очень проработанно. Мы намеренно не даём конкретных технических требований, чтобы посмотреть насколько глубоко кандидат захочет погрузиться в задачу и будет ли задавать вопросы: кроме hard skills проверяем ещё и soft skills.

Максим, ведущий С++ разработчик

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

Как проходят технические собеседования

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

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

Технические собеседования бывают нескольких видов; они могут многое рассказать о порядках, существующих в компании, и том, каково будет там работать. Обычно технические интервью проходят в таких форматах:

  • Whiteboard (перед вами кладут лист бумаги, ставят доску или попросту просят открыть Google-документ и написать программу).
  • Теоретические вопросы из области разработки и алгоритмической базы.
  • Задачи на ревью кода.

Вопросы, которые могут задать на техническом собеседовании

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

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

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

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

Кодинг или код на ревью. Вас могут попросить написать программу и/или сделать ревью кода: сказать, что вам в нём не нравится, найти ошибки, прокомментировать архитектуру.

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

Как проходит техническое собеседование в Опен Медиа

В технических собеседованиях Open Media помимо HR обычно принимает участие разработчик с того же направления или проекта, на который открыта вакансия, а также СТО. На собеседование фронтендера, например, может быть также привлечён бэкенд-разработчик для случаев, когда в резюме соискателя указаны навыки фулстека.

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

Что спросим у джуна

Джунам важно иметь общее представление об используемом технологическом стеке и знать теорию.

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

На С++ вакансии задаём технические вопросы без лайвкодинга или код-ревью.

Интерес к проектам компании, портфолио и софт-скилы также играют не последнюю роль.

Что спросим у мидла

У кандидатов на вакансии уровня middle будем оценивать практические навыки и понимание процессов; им необходимо не просто знать определения, но и показать, как применить теорию на практике. В качестве подготовки к техническому интервью советуем посмотреть используемые в вашем последнем проекте паттерны и технологии.

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

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

Что спросим у сеньора

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

💡
Сейчас у нас открыто две вакансии: Middle Frontend Developer на проект Waveroom и C++ Senior Software Engineer на проект 4K Download. В описаниях вакансий можно ознакомиться с используемыми в команде технологиями.

Как подготовиться к техническому интервью

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

Вне зависмости от вашей цели воспользуйтесь этими практическими советами от наших программистов:

  • Перед собеседованием соберите портфолио на GitHub с техническими проектами.

💡Build your own X — репозиторий с гайдами о том, как создать свой проект в различных областях: от AR и ботов до эмуляторов, баз данных и ОС.

  • Не нервничайте и спокойно демонстрируйте свои знания, не боясь показать, что чего-то не знаете.
  • Чётко и без воды отвечайте на вопросы.
  • Заранее ознакомьтесь с продуктами компании.
  • Ориентируйтесь на свой опыт и знания, приобретённые в процессе работы: не страшно, если вы чего-то не знаете; главное — ваше глубокое понимание того, чем вы уже пользуетесь, и способность найти решение за пределами своих знаний.
  • Если не знаете ответа на вопрос, вслух размышляйте, где бы вы нашли решение или предложите альтернативное решение из вашего опыта. Интервьюер ожидает от вас мыслей и рассуждений.
  • Предлагая альтернативное решение, порассуждайте, чем ваш подход лучше или хуже.
  • Если не знаете с чего начать решение задачи, попросите у интервьюера намекнуть на решение, начните с самого очевидного решения или даже псевдокода, чтобы было от чего отталкиваться.
  • Проговорите алгоритм решения устно: тогда, возможно, и кодить не придётся.
  • Заранее настройте камеру и звук, если собеседование проводится удалённо.
Спокойствие и вдумчивость однозначно помогут вам успешно пройти техническое собеседование. Стремление рассмотреть любой вопрос с позиции логики также будет не лишним. Не нужно фокусироваться на волнении, а просто посидеть, покрутить задачку или вопрос, чтобы подключилось логическое мышление. Никто не будет унижать за неправильный ответ.

Антон, ведущий фронтенд-разработчик

Чего не нужно делать, если не знаете ответ на вопрос

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

Лучше честно сказать, что вы не встречали этого в работе и поразмышлять над альтернативным решением или тем, как бы вы стали искать ответ на этот вопрос на практике.

Ресурсы для подготовки к техническому собеседованию с примерами вопросов и задач

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

Мы собрали несколько ресурсов, которые могут помочь подготовиться к техническому собеседованию:

  1. Tech Interview Handbook: справочник для технических собеседований со шпаргалками и практическими советами.
  2. Coding Interview University: базовый курс с вопросами и планом изучения информатики; подходит тем, кто только начинает ходить на тех. интервью.
  3. System Design Primer: полезный репозиторий для тех, кто готовится к собеседованию по системному дизайну.
  4. Awesome Interview Question: список вопросов по широкому кругу тем и языков: от C и C++ до .NET, CSS, различных технологий пользовательского интерфейса и баз данных.
  5. Interview: сборник с ресурсами, которые помогут подготовиться к техническому собеседованию.
  6. Coding interview: база с интервью по кодингу с типовыми вопросами, чтобы понять подход к настоящему собеседованию.
  7. GitHub репозиторий с коллекцией вопросов, которые могут встретиться на техническом собеседовании, а также информацией для знакомства с процедурами, связанными с процессом найма. От резюме до интервью — здесь полный пакет.
  8. Cracking the Coding Interview Steve Yegge's Blogspot: книга, которую наряду с Codeforces, рекомендуют HR Гугла.
  9. Interview Warmup: тренажёр от Google, который погоняет вас по всем популярным вопросам в направлениях IT support, Data Analytics, UX Design и других, проанализирует ваши ответы и даст рекомендации, что ещё нужно подтянуть.
  10. Интересные задачки с технических собеседований: статья на Хабре с примерами задач от интервьюера и кандидата в одном лице.
  11. Я пришел на собеседование с лайвкодингом — и меня с позором размазали: просто весёлая история расслабить нервы перед интервью 🫠

Техническое интервью глазами CTO

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

Помимо опыта и навыков общения, я отмечаю наличие своих проектов у кандидата; особенно у джунов и соискателей уровня мидл. Мне кажется, если у кандидата нет личных проектов, это говорит о том, что ему/ей не очень интересно программирование в целом, а интерес и желание работать — это самое главное. Во время интервью я также оцениваю уровень владения технической базой и ‎знание алгоритмов.

Слава, директор

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

Антон, ведущий фронтенд-разработчик‎

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

Максим, ведущий С++ разработчик


Теперь вы представляете, как проходят технические собеседования в целом, где можно подготовиться и чего ожидать.

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

💡
Сейчас мы ищем Middle Frontend Developer на проект Waveroom и C++ Senior Software Engineer на проект 4K Download и хотим с вами пообщаться. Если вас заинтересовали вакансии, откликнуться можно через наш сайт! Ждём вас в нашей команде 🙃
Клара

Клара

Автор