Как пройти собеседование в ИТ-компании

В среднем 80% соискателей проваливают собеседование, потому что плохо к нему подготовились.
В материале расскажем, как новичку или джуну эффективнее подготовиться к интервью в ИТ-сфере. Что-то из материала пригодится и мидл-разработчику.
План для прохождения собеседования на ИТ-специальность
Составить резюме
Чтобы попасть даже на начальное собеседование с рекрутером, нужно выделиться из потока кандидатов. Для этого понадобится хорошее резюме — в Т—Ж есть материал о том, как его составить. Качественное резюме хорошо структурировано и правдиво.
Четкая структура. Постарайтесь сделать резюме читабельным, включите в него действительно важную информацию: победа на олимпиаде по информатике в восьмом классе, вероятно, будущего работодателя не заинтересует. Также никому не интересно, сколько багов вы пофиксили: важно, что нового и полезного создали для компании.
Чтобы найти самое ценное, попробуйте конкретизировать свои достижения: на прошлых работах, стажировках, учебе. Уточнить поможет такой прием: выделите крупную задачу вроде разработки функциональности сервиса, вспомните, за что конкретно отвечали, как выполняли работу, и — главное — сформулируйте конечный результат. Так рекрутер быстро увидит ценность сделанного и с большей вероятностью заметит кандидата.
Правдивость. Пишите правду, только правду и ничего кроме правды. Указывайте технологии, языки, библиотеки и базы данных, с которыми взаимодействовали и работали. Компании часто ищут людей с определенным набором навыков — сэкономьте время себе и рекрутерам, не притворяйтесь тем, кем не являетесь.
В конечном счете такой поступок все равно себя не оправдает, ведь на собеседовании эйчар может зацепиться за любую строчку и начать спрашивать в глубину. Вообще, когда задают глубокие вопросы — это хорошо, потому что правильные ответы поднимают оценку кандидата на собеседовании. Если же он теряется, когда спрашивают что-то связанное с резюме, появляется повод задуматься, не соврал ли потенциальный сотрудник.
Пройти начальное собеседование с рекрутером
Собеседование с рекрутером во многом строится на базе того, что он увидел во время скрининга. Скрининг — это процесс отбора резюме из потока других. Так что на собеседовании нужно подготовиться к более общим вопросам о вас как о человеке и профессионале. Проверка базовых софт-скиллов начинается уже здесь, ведь рекрутер не только смотрит, соответствуют ли знания кандидата тому, что указано в резюме, но и оценивает коммуникативные навыки.
Здесь совет один: не бояться и идти на контакт. Рекрутер — такой же человек, в его задачи не входит напугать кандидата и вогнать его в жуткий стресс. Конечно, люди бывают разные, но в большинстве случаев нанимающий просто хочет пообщаться — профессионально и дружелюбно, в рамках интересов бизнеса. Также помните, что разговор с рекрутером — возможность рассказать, чем именно хочется заниматься в компании, обозначить свои амбиции, направления и проекты, над которыми было бы интересно поработать.
Дополнительные технические вопросы тоже возможны, но сильно не переживайте: самое страшное — с алгоритмами и кодом — впереди. Иногда на этапе скрининга предлагают небольшое техническое тестирование с вопросами базового уровня сложности, так отсеиваются совсем неготовые кандидаты. Главное — не оказаться среди них.
Так что перед собеседованием на всякий случай повторите, что такое, к примеру, многопоточность, и вспомните самые популярные структуры данных.
Процесс отбора резюме — взгляд рекрутера
Ваше резюме должно быть подробным и структурированным, но в то же время достаточно кратким и емким. Рекрутер не будет читать CV на три страницы, у него их миллион. Подсвечивайте свои самые сильные стороны и навыки, они не должны пропасть в море менее важной информации: указывайте опыт, релевантный для ИТ-среды, а про то, как вы работали официантом, можно не писать.
Можете просто создать резюме на «Хедхантере» и скачать его оттуда, у них приятная и понятная структура, привычная глазу рекрутера. А еще всегда оставляйте свой телеграм — это самое популярное средство быстрой связи с людьми.
Напомню о том, что кажется очевидным, но, как показывает практика, не для всех: не нужно ставить в резюме фотографию, где вы лежите на пляже. Не обязателен и строгий официальный портрет, как на паспорт, можете приложить какую-то лайфстайл-фотографию, где хорошо видно ваше лицо: это очень располагает к себе.
Рекрутер не только проводит скрининг, но и назначает все технические секции, организует финальное интервью с командами, а также занимается некоторыми вопросами трудоустройства. Он принимает решение, вести кандидата дальше или нет, анализирует его результаты по всем секциям и сопровождает вплоть до момента трудоустройства.
Если рекрутер прислал вам материалы и попросил подготовиться по ним, то, конечно, это необходимо сделать. Если вы подключаетесь к интервью и сразу показываете, что не открывали ни одну ссылку, присланную рекрутером, — это большой минус. Готовьтесь ко всему, что касается ваших навыков, специализации и позиции, на которую вы хотите попасть.
Важно задавать рекрутеру все вопросы, которые вас интересуют, и выяснять все нюансы. Не бойтесь рассказывать, что вы ищете в плане работы и вакансии, на каком проекте действительно хотели бы работать и чем заниматься в компании.
Если вы в другой стране и вас интересует порядок получения зарплаты или конкретный вид трудоустройства — не стесняйтесь, честно обсудите это с рекрутером с самого начала. Не говорите то, что, как вам кажется, от вас ожидают услышать, иначе рекрутер может подобрать совсем не ту позицию, о какой вы на самом деле мечтаете, а потом будет долго грустить из-за вашего отказа от оффера или увольнения спустя две недели после выхода на работу.
Будьте открыты, честны и доброжелательны при общении: мы, рекрутеры, такие же люди. Из-за потока кандидатов мы привыкаем держать тон на «вы», но совсем не против, когда кандидат сам предлагает перейти на «ты», если это уместно: такое обращение в целом распространено в ИТ-среде и делает атмосферу во время собеседования более непринужденной. Почему бы и нет, особенно если между вами и рекрутером нет большой возрастной разницы и есть обоюдный дружелюбный настрой.
Главное — показать, что вы искренне заинтересованы в работе, на которую собеседуетесь. Поверьте, если вы с ходу заявляете, что пробуетесь на какую-то позицию в компании, просто чтобы оценить свои навыки, дальше вы не пройдете. Как минимум это огромное неуважение к людям, которые вас собеседуют.
Не надейтесь на собственную уверенность или какие-то высшие силы, не думайте, что все априори пройдет легко, если вы просто придете на интервью: это одна из крайностей многих кандидатов. Даже если вы великолепны, потратьте время на подготовку. Если же вы честно подготовились, но чего-то не знаете и сомневаетесь в ответе на вопрос рекрутера — скажите об этом. А если вы знаете ответ, старайтесь излагать свои мысли подробно, объемно и глубоко.
Пробраться через техническую секцию
Если после интервью и легкого теста рекрутер пригласил вас на следующий этап, придется немного постараться. Секция программирования обычно состоит из двух-трех подсекций:
- Языковой секции, где проверяется знание языка, который был указан в качестве рабочего.
- Секции алгоритмов с написанием кода, где проверяют способность решать с помощью программирования базовые задачи — рабочие или не очень.
- При собеседовании на позицию сеньора или тимлида будет еще и архитектурная секция.
Практически все собеседования в ИТ проходят удаленно: вы открываете, например, «Яндекс Телемост» и, сидя в любимом кресле, в режиме реального времени показываете работу над кодом в каком-нибудь редакторе для кодинга. Писать алгоритм ручкой на бумаге, как это было принято раньше, может, и не заставят, но не исключено, что попросят нарисовать пару схем, объяснить и визуализировать ход мысли.
Чтобы подготовиться к собеседованию, можно решать задачи на LeetCode и пройти курс или освежить знания по вашему направлению. Занятия придадут вам уверенности в себе: вы будете понимать, какие могут попасться задачи, как их классифицировать и найти решение.
Как всегда, не забудьте про софт-скиллы: собеседование проводит живой человек, который будет подробно спрашивать о том, что вы делаете на экране своего компьютера.


Секция языка. В ней кандидат разбирается с языками и платформами, на которых ведется разработка. Необходимо знать и понимать их особенности, уметь о них рассказать.
Здесь могут задать теоретические вопросы, показать код и попросить объяснить, что он делает, как его улучшить и какие есть проблемы. Или предложат написать код, который не только будет работать, но и подсветит особенности языка, на котором вы пишете. Вот о чем чаще всего спрашивают в теоретической части:
- о примитивах языков;
- о многопоточности;
- об известных фреймворках;
- о реализации типовых задач;
- о моделях памяти.
Стратегия подготовки здесь одна: читать, смотреть, изучать то, что кажется полезным и применимым.
Секция алгоритмов. Задача здесь — за определенное время придумать решение, объяснить его интервьюеру и написать работающий и более-менее оптимизированный код. Чаще дают небольшое задание, которое может встретиться на работе. Вряд ли спросят что-то совсем специфичное вроде конкретного алгоритма поиска кратчайших путей в графе.
Во время алгоритмической секции лучше проговаривать все решения, которые приходят в голову. Даже если они максимально простые и неэффективные, дайте понять, что вы знаете: задачу можно решить и так. И если собеседующий говорит, что нужен более эффективный способ, начинайте смотреть по сторонам.
Бывает, что кандидат придумал решение, но держит его в голове, поскольку оно не оптимальное. А на самом деле оно достаточно хорошее — и интервьюер разрешил бы пойти с ним дальше.
Ресурсы для подготовки к собеседованию на позицию бэкенд-разработчика
Курсы по алгоритмам:
- алгоритмы, первая часть на «Курсере»;
- «Алгоритмы и структуры данных: ознакомительный курс» на «Степике»;
- «Алгоритмы и структуры данных» от «Яндекс Практикума»;
- специализация «Структуры и алгоритмы данных».
Сайты, где можно потренироваться в решении алгоритмических задач:
- LeetCode — платформа с задачами;
- Codewars — тоже для кодинга и задач, здесь также можно посоревноваться с другими пользователями;
- HackerRank — сервис, помогающий кодить в рамках подготовки к интервью;
- Codeforces — сайт соревнований и конкурсов по кодингу.
Литература:
- «Алгоритмы. Построение и анализ» — все о злосчастных алгоритмах. На Ozon книга стоит от 3 830 до 5 530 ₽;
- Cracking the Coding Interview: 189 Programming Questions and Solutions — рассказывает, как справиться с типовыми задачами, которые часто попадаются на интервью в ИТ.
Часто соискатели невнимательно читают условия задачи, а это важнейший момент, потому что там кроются подсказки и ключевые детали.
Пример: дан отсортированный массив, нужно проделать с ним определенные манипуляции. Кандидат пытался придумать, как отсортировать массив, хотя в условии было сказано, что он и так отсортирован.
Порой важно задавать уточняющие вопросы, ведь задача может быть сформулирована так: дан набор чисел, сделайте с ним то-то и то-то. Но из условия непонятно, набор каких чисел: отрицательных, вещественных? Это небольшая проверка внимательности и софт-скиллов, такие ситуации предполагают коммуникацию и взаимодействие.
Общие советы для языковой и алгоритмической секций
Узнайте, чего компания хочет от кандидата. Наверняка рекрутер пришлет полезные ссылки для подготовки. Часто у крупных компаний есть заготовки заданий, чтобы соискатель заранее узнал, как все проходит. Не игнорируйте их, обязательно посмотрите и изучите все, на что предлагают обратить внимание: это в ваших интересах. И лучше делать это не вечером перед собеседованием, а заранее. У некоторых компаний, например у Т-Банка, вся информация есть в открытом доступе.
Подготовьтесь. Если у вас есть материал, присланный рекрутером, выделите все, чего не знаете или не понимаете. Попробуйте проработать эти аспекты, исключить ситуацию «меня спросили именно о том, чего я не знал, вот неудача».
Если материала нет, попробуйте определить свои слабые стороны, пробелы в знаниях. В этом помогут краткие технические тесты наподобие тех, что иногда дают рекрутеры на первом этапе. Попробуйте нагуглить что-то вроде «какие вопросы задают на собеседованиях по C++, Python, Golang» и ответьте хотя бы на парочку из них.
Отдохните перед собеседованием и постарайтесь снизить общий уровень стресса. Пригодится, чтобы сконцентрироваться на том, что действительно требуется. Планируйте время и постарайтесь сделать так, чтобы до собеседования оставалась пара свободных часов. Заварите чай, пролистайте методичку от рекрутера еще разок, подышите, лениво и расслабленно потянитесь в кресле.
Будьте вежливы. Если прийти на секцию программирования со словами «что я эти алгоритмы решать буду, они все равно на работе никогда не встретятся», хорошо она не закончится. Не начинайте так взаимодействие с тем, кто вас собеседует. Лучше познакомьтесь, поймите, кто перед вами, попытайтесь выстроить начальный диалог. Задайте пару вопросов. Любые попытки разрядить атмосферу встретят с взаимностью.
Выбирайте для работы и собеседования язык, на котором вы хорошо умеете писать. Кажется очевидным, но в реальности не все следуют этому правилу. Хорошие работодатели не ограничивают людей в языках программирования: можно писать на C++, Python, JavaScript и многих других языках. Главное, чтобы решение соискателя было верным.
Не бойтесь спрашивать, рассуждать и предлагать. Собеседующий разработчик не заинтересован в том, чтобы кандидат просто показал готовое сухое решение, поэтому продемонстрируйте ход мыслей, умение рассуждать и искать разные варианты. Важны не только знания, но и то, как ими пользуются, применяют на практике. Именно это и делает из вас профессионального разработчика.
Архитектурная секция, или дизайн распространенных систем, — сложный этап для сеньоров или тимлидов. В этой секции нужно не просто решить какую-то задачу, а спроектировать сложную систему, задизайнить решение для комплексного проекта. Глубже и подробнее об этой секции рассказывал CTO Т-Банк Александр Поломодов.
Это важная секция не столько в плане технических навыков, сколько с точки зрения софт-скиллов. Нужно задавать вопросы собеседующему: чем больше удастся узнать о системе, которую предстоит спроектировать, тем будет проще.
Например, на собеседовании вам ставят какую-то высокоуровневую задачу: спроектировать ленту публикаций как в «Твиттере» или что-то в этом духе. Сначала нужно узнать функциональные требования, потом нефункциональные требования к системе. А потом уже по кусочкам, по частям собирать ее. При выборе каждого инструмента, каждой части системы стоит объяснить, почему выбираете именно его и чем он лучше остальных.
То же относится к выбору базы данных. Например, вы хотите использовать реляционную базу. Но выясняется, что она по каким-то причинам не подходит. Значит, вам нужно выбрать другую и обосновать выбор в связи с особенностями и нуждами проекта.
Есть хорошая книжка, которая в народе называется «книжка с кабанчиком», — Designing Data-Intensive Applications Мартина Клеппмана. Она дает введение в высоконагруженные системы, в принципы их работы и взаимодействия. Также в интернете много статей, видео и платформ с типовыми задачами этой секции. Примеры можно поискать на Architectural Katas, а на System Design Primer есть базовые темы по дизайну систем, упражнения по объектно ориентированному анализу и проектированию.
Сама секция обычно проводится, например, в Sketchboard — это сервис для создания схем.

Пройти финальное собеседование с тимлидом или командой
Если техническая секция пройдена успешно, рекрутер назначает дату собеседования с тимлидом или с целой командой, куда хочется попасть. Это расхожая практика в больших компаниях: сначала команды выбирают кандидата, а потом кандидат выбирает команду.
Если здесь что-то и проверяют, то исключительно софт-скиллы. Мучить никто не будет, все просто хотят познакомиться, узнать, кто вы такой, как с вами общаться и что вас интересует в профессиональной среде.
Не относитесь к этому этапу с большим напряжением: расслабьтесь и получайте удовольствие от общения с потенциальными коллегами. Задавайте вопросы, чтобы узнать больше о работе, поинтересуйтесь спецификой процессов внутри компании и так далее. Помните, что это ваш шанс окончательно понять, хотите ли вы эту работу, и выбрать свою команду, если их несколько.
Если у команды не возникнет возражений, рекрутер пришлет официальный оффер — после того как вы сами захотите, чтобы вас приняли. А дальше — вперед и за работу.
Что делать, если собеседование не принесло результата
Предлагают грейд ниже. В больших компаниях есть критерии и грейды, по которым определяется успешность кандидата на собеседовании. И случается так, что кандидат заваливает архитектурную секцию, но все равно получает оффер — если хорошо прошел два предыдущих этапа. Например, соискатель целился на позицию сеньора, а ему предложили мидла. Возможно, он хорошо знает язык и решает определенные задачи, но ему негде было получить опыт по архитектуре.
Такое предложение спокойно можно принять. Во многих компаниях есть программы повышения квалификации и подготовки для будущих сеньоров и тимлидов, куда входят не только технические дисциплины, но и курсы по психологии и софт-скиллам. Там можно набраться опыта — и через некоторое время повысить грейд. Если же в такой ситуации кричать, что «в предыдущей компании я работал тимлидом», в отчете собеседующего точно появится строка о плачевном состоянии софт-скиллов.
Не взяли на работу. Если вы не прошли секцию программирования или вас не взяли дальше по какой-то другой причине, не расстраивайтесь — хотя, конечно, говорить такое всегда просто. Если вы не подошли одной компании, это не значит, что не подходите всем остальным. А если это была компания мечты, через некоторое время можно попробовать еще раз.
Не переживайте, что здесь и сейчас вы не смогли что-то сделать. Возможно, просто был не ваш день. Попробуйте подать резюме в другие компании или получше подготовиться к форматам, с которыми не удалось справиться: попросите у рекрутера советы и развернутую обратную связь. Можно решать те же задачи по алгоритмам, читать о том, что спрашивают на секции по языку.
Новости из мира образования, советы по карьере и учебе, вдохновляющие истории — в нашем телеграм-канале: @t_obrazovanie.














































