Как пройти техническое интервью

Sep 12, 2019
Blog

Один из самых волнительных этапов при устройстве на работу – техническое собеседование. Одни его откровенно боятся, мол, вдруг “завалят” и высмеют. Другие хладнокровно зубрят определения и нарешивают задачи, чтобы поскорее пройти и забыть. Ну а кто-то искренне наслаждается процессом и возможностью показать себя. А хотите знать, как это выглядит с другой стороны стола? Давайте поговорим с Денисом Кузьменко, нашим разработчиком, которому самому частенько приходится садиться в кресло интервьюера. Как готовиться? На что обращать внимание? Чего у вас не спросят напрямую?

Аndersen: Привет, Денис. Расскажи читателям, кто ты у нас и какое отношение имеешь к техсобесам.
Денис Кузьменко: Привет. На данный момент моя должность – Senior Software Engineer, мягко переходящий в тимлида. За последние год-полтора провёл в Andersen больше 60 технических интервью.

А: На какие позиции?
Д: На все, от стажеров до синьоров, но людей пониже уровнем всё чаще делегирую другим разработчикам. В основном по своему стеку: Golang и т. д.

А: За это время у тебя появились какие-то личные фишки?
Д: Я бы не назвал их конкретно моими. Всё, что я делаю на собеседованиях, основано на моём собственном опыте их прохождения, книгах и материалах, которые я читаю для наработки навыка. Например, я позаимствовал одну очень ценную мысль – человек на интервью не должен чувствовать, что он что-то знает/не знает, не должен думать, что он “плохой”. Нет плохих кандидатов, есть подходящие и неподходящие. И всегда я делаю так, чтобы человек мог что-то почерпнуть из интервью и знал, куда двигаться дальше. Чтобы это принесло ему пользу, а не только стресс.

А: Из чего состоит интервью? Сколько времени занимает?
Д: Где-то 75–90 минут. Я делю его на несколько секций:
1) Начинаю с вещей попроще, чтобы разговорить человека. Спрашиваю, как он пришёл в программирование и как пришёл к этому стеку. Что ему понравилось, а что нет. Ну, это такая “лёгкая” часть, чтобы понять заинтересованность.
2) Дальше я спрашиваю про сам язык, чтобы оценить глубину знаний. Там есть разного рода вопросы. Они тоже не экстраординарные. Если вопрос какой-то коварный, с хитринкой повышенной сложности, то я сразу человека об этом предупреждаю. Вообще, не очень люблю такие заковыристые вопросы, потому что мне важно знать, насколько человек погрузился в тему и насколько умеет рассуждать. И я задаю вопросы так, чтобы он мог это сделать. Этого достаточно. Сперва стараюсь сформулировать вопрос так, чтобы у человека было поле для развернутого ответа по теме. Затем конкретизирую, если ответ не идет. Задачки тоже задаю, но на размышление в контексте обсуждаемой темы, а алгоритмы писать обычно не требую. Не очень люблю такое.
3) Потом говорим по смежным технологиям, базам данных, контейнеризации, виртуализации, сетям и т.д..
4) И из предыдущего блока плавно переходим к гибким навыкам, касающимся самого человека. Например, нравится ли ему работать в команде. Как он видит свое рабочее место. Как собирается развиваться.
5) Рассказываю о всех возможностях в нашей компании.
6) Отвечаю на вопросы кандидатов.

А: И неужели кто-то так и заявляет, например, что “нет, ненавижу работать в команде”?
Д: А тут не спрашиваешь напрямую. Надо найти такие вопросы, которые тебе помогут это выяснить. Например, если человек говорит “мы подумали”, “мы сделали”, то очевидно, что ему хочется окружить себя другими такими людьми и работать в команде. И есть такие, которые выражаются “я решил” и “я сделал”. И ты понимаешь, что этому человеку комфортнее работать в одиночку.

А: Значит, если человек погружается в рассуждения и вспоминает свой прошлый опыт – это тебе интереснее, чем четкие быстрые решения?
Д: Именно. Есть, конечно, технические вопросы на “знаю/не знаю”. Есть логические вопросы на “могу понять”. А есть вопросы, на которые коротко ответить невозможно. И человек рассуждает, а я слышу, какой он, что ему нравится, и, самое главное, открыт ли он для обучения.

А: А бывает такое, что люди начитаются всяких советов по прохождению интервью и как-то необычно пытаются построить беседу? Задают много вопросов, пытаются сами тебя подловить?
Д: Прям таких хитрецов не попадалось. Но вообще собеседование чаще ведётся в одну сторону, хотя на самом деле это действительно двухсторонний процесс. Когда я провожу техническое интервью, то я тоже расту и развиваюсь. Всегда можно узнать от кандидата что-то новое, в какой-то теме его знания могут быть глубже моих, это нормально.

А: Но ты знаешь всё, о чем спрашиваешь? И можешь сам решить любую свою задачу?
Д: Было бы странно, будь это иначе. 🙂 Допускаю, что человек может знать больше меня. И стараюсь строить вопросы так, чтобы можно было не просто дать ответ, но и углубиться в тему. Многим высококвалифицированным программистам приходится задать буквально один вопрос. А дальше сидишь и слушаешь лекцию, как это работает.

А: Случалось ли, что уже в начале собеседования ты понимал, что человек не подходит? Как ведешь диалог в такой ситуации?
Д: Всегда довожу интервью до конца. Вообще, возможны три ситуации:
1) Кандидат очень нравится, у него всё хорошо получается. Мы его точно возьмем, он идеален с нашей точки зрения.
2) Кандидат чего-то не знает. Тут мы его или возьмем, или нет – по ситуации. Всегда даю фидбек прямо по ходу беседы, советую, что почитать, узнать. Просто спрашиваю у человека видел ли он статью/курс/выступление, откуда я взял эту информацию, и говорю, где он её может найти. Многие люди это себе записывают.
3) Ну и самая печальная ситуация – когда и давать нечего. Но это бывает если кандидат и сам не сильно позитивно настроен, и я не чувствую в нём желания. Тогда просто пробегаешься по вопросам в рамках запланированного времени и заканчиваешь. Ну, нет так нет, а хорошее впечатление я оставить все равно обязан.

А: А после собеседования фидбек даёшь?
Д: Обычно во время. Бывает, что люди приходят уже после и спрашивают, что у них было плохо. Но обычно они просто не дотягивали и мы им не смогли предложить вакансию. Но не то, чтобы эти люди были плохими. Им просто не хватило немного знаний. Я им рассказываю, что почитать/поучить.

А: Как думаешь, чего человек больше всего боится, приходя на техсобес?
Д: Мы все боимся показаться глупыми, получить порицание или насмешку. Поэтому я всегда стараюсь минимизировать стресс. И если вижу, что человеку тяжело, то всегда стараюсь понизить планку и задать такой вопрос, чтобы кандидат смог ответить. Потому что когда ты задаёшь один, второй, третий вопрос, а человек не знает ответа, то у него очень сильно падает мотивация и он уже просто закрывается, переходит в защиту. И приходится либо его вытаскивать из этого панциря, либо признать, что интервью провалилось.

А: Что хочешь сказать тем, кто готовится к собесу?
Д: В принципе, таких подборок советов в интернете валом, но вот моя личная:
1) Нет “серебряной пули” (универсального эффективного решения).
2) Нет “плохих” кандидатов и компаний. Только подходящие и неподходящие.
3) Выспитесь, чтобы быть в хорошем самочувствии.
4) Почитайте в интернете топ самых популярных вопросов на техсобесах.
5) Откройте stackowerflow и посмотрите самые частые вопросы по вашему стеку.

Разумеется, можно панически готовиться в последнюю ночь. Или вообще не париться… Если вам удавалось так закрывать сессию – то и с собеседованием может получиться.

А: Спасибо, Денис. Надеемся, что теперь ты и твои собесы покажутся людям не такими пугающими. 🙂

***

Как видите, “на той стороне” никто не собирается вас “валить” и попрекать некомпетентностью. Все заинтересованы в том, чтобы интервью прошло профессионально, грамотно и полезно для обеих сторон. Даже если с этой компанией вы друг другу не подойдёте – опыт пригодится в следующей раз.

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

Если нужно порешать типовые задачи – рекомендуем ресурсы типа https://codeforces.com/, https://leetcode.com/ или https://www.interviewbit.com/. Подборки заданий по сложности и теме могут здорово прокачать ваш скилл (ну, как минимум скилл прохождения собеседований 🙂 ).

И главное – говорите. Рассказывайте о своём прошлом опыте, рассуждайте в поисках решения, объясняйте ход своей мысли. В хорошей компании искать будут не винтик в корпоративный механизм, а человека, способного мыслить и развиваться.

Удачи!

P. S. Кстати, а как прошло ваше первое техническое интервью? Делитесь историями в комментариях! Если соберётся подборка – с удовольствием опубликуем.

Previous articleNext article