{"id":13890,"url":"\/distributions\/13890\/click?bit=1&hash=6025fe1fe5514addd4535f535644e401c345130a049c43dab6b06f51b175b677","title":"\u041a\u0430\u043a \u0440\u0438\u0435\u043b\u0442\u043e\u0440\u0430\u043c \u043f\u0440\u043e\u0434\u0430\u0432\u0430\u0442\u044c \u043e\u0431\u044a\u0435\u043a\u0442\u044b \u0431\u044b\u0441\u0442\u0440\u0435\u0435","buttonText":"\u0423\u0437\u043d\u0430\u0442\u044c","imageUuid":"51599a0b-19c1-55c0-9e85-a19f00101081","isPaidAndBannersEnabled":false}

«Первое техническое интервью как первый секс»: как избежать ошибок и подготовиться

Бонус – примеры задач с решениями и советы от сеньора-разработчика.

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

Привет, мы команда Skillscanner. Наш продукт — агрегатор онлайн-курсов. Знаем, как быстро освоить новую профессию и хотим, чтобы опыт топовых специалистов рынка пригодился тем, кто только начинает свой путь.

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

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

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

К техническому интервью кандидат подходит после знакомства с HR-ом. То есть вы уже рассказали о своих сильных сторонах, показали резюме и портфолио, если оно есть. Теперь предстоит познакомиться с одним из синьоров-разработчиков и тимлидом. Иногда они могут проводить интервью вместе. Это нужно, чтобы точно проверить технические знания кандидата и убедиться, что он «потянет» работу на проекте.

Техническое интервью состоит из нескольких этапов:

1 этап: Кандидат рассказывает про свой опыт и знания.

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

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

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

«В нашей компании джуниор всегда получает тестовое задание и
попадает на техническое собеседование, только если успешно
справился с ним. Есть компании, где джун получает тестовое после
технического интервью. Он выполняет его и приходит на еще одно
техническое, где объясняет решение, узнает о своих ошибках, если
они есть», — поясняет Александр Корзун.

Мидлы vs джуны vs синьоры: чем отличается техническое интервью для разных уровней

Описанная выше схема применяется для проверки разработчиков всех уровней. Отличается сложность вопросов и глубина погружения в предыдущий опыт. Например, опыт джунов — это чаще всего pet-проекты, которые они выкладывают на Git либо выполненные задания со стажировок и курсов. Вопросы более поверхностные, ответы на них можно найти в Google по запросу «Вопросы для собеседований и название языка».

Если кандидат — мидл, его опыт — это конкретные проекты. Значит вопросы чаще касаются их: какой функционал реализовал разработчик, участвовал ли он в создании архитектуры вместе с командой, оценивал ли сроки, как настраивал взаимодействие между разными модулями и так далее.

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

Примеры задач с решениями

Задачи, которые дают разработчикам на собеседовании в «Конвертум», мы привести не можем — это внутренняя информация. Александр подобрал примеры задач из своей практики — он не раз проходил собеседования в другие компании, когда был джуном.

Задача по SQL

Есть таблица Employee с колонками (Id, Name,Salary). Нужно вывести сотрудников, у которых зарплата выше средней.

Ответ: SELECT * FROM Employee

WHERE salary > (SELECT AVG (salary) FROM Employee)

Примечание: в этой задаче кандидаты чаще всего забывают про агрегатные функции.

Задача по алгоритмам

Как найти средний элемент односвязного списка за один проход?

Примечание: Решение задачи можно дать либо в виде алгоритма, либо в виде кода. На собеседованиях чаще просят описать именно алгоритм.

Решение: Можно использовать два указателя — p1 и p2. Сначала оба указателя указывают на начало списка. Затем перемещаем p2 на 2 узла вперед. А p1 на 1. Когда p2 дойдет до конца списка, p1 будет указывать на нужный нам элемент.

Логическая задача про поезд

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

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

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

Логическая задача про кувшинки

В озере есть участок, заросший кувшинками. Каждый день этот участок увеличивается в размере в 2 раза. Известно, что кувшинки покроют всю поверхность озера за n дней. За сколько дней кувшинки покроют ровно половину поверхности озера?

Решение: За n-1

И еще один бонус — тренажеры для подготовки к техническому собеседованию

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

Leetcode — онлайн-платформа с алгоритмическими задачами по программированию.

Больше по теме:

0
4 комментария
Дмитрий Войнов

и там и там тебя могут вы*бать

Ответить
Развернуть ветку
Александр Иванов

Ну в одном случае, ты этого хотел, а в другом нет)

Ответить
Развернуть ветку
Александр Иванов

Мое первое собеседование это групповое изнасилование 😂

Ответить
Развернуть ветку
Some One

Может он про то, как робко и стеснительно отдавался процессу -вкладывал. А вы такие пошлые.

Ответить
Развернуть ветку
Читать все 4 комментария
null