Собеседование для разработчика — это не просто беседа об опыте и навыках, а многоступенчатая проверка теоретической базы, практических умений и коммуникативных способностей.
Как подготовиться к таким мероприятиям? Мы прочитали много историй, поговорили с коллегами-разработчиками о том, как проходили их интервью, и решили составить небольшой гайд на эту тему.
Он поможет новичкам, которые только планируют устроиться на первую работу, а также тем, кто хочет сменить компанию или сферу.
Этап 1. Беседа о навыках и опыте Чтобы познакомиться с кандидатом, ему задают стандартные вопросы: про образование, опыт и прошлые места работы, успешные рабочие и личные проекты, ожидания, пожелания и др. Да, эту же информацию могут уточнять и на предыдущем этапе (беседа с HR-специалистом), но будьте готовы повторить.
Что могут спрашивать
Расскажите о себе. Где вы учились? Проходили ли курсы по специальности? Где вы раньше работали и почему ушли? Почему вы выбрали эту профессию? Что вам в ней нравится? Как вы видите ваше идеальное место работы? Что вас мотивирует? Есть ли у вас опыт работы с требуемыми технологиями/языками/сервисами? Каковы ваши ожидания по зарплате? Какой режим работы вас интересует? Как отвечать
Доброжелательно, честно и кратко. Не стоит подробно описывать все детали своей прошлой работы, личную жизнь и хобби. Изложите факты, относящиеся к профессии, сделав акцент на достижениях и реализованных проектах. Чтобы этот этап прошёл успешно, мы рекомендуем заранее узнать больше о компании, её продуктах, технологиях и продумать свои ответы.
Этап 2. Техническое собеседование — проверка хард-скилов Если первый этап прошёл успешно, разработчика приглашают на техническое собеседование для проверки базовых знаний. Скажем честно, это один из самых сложных этапов. Перед беседой лучше освежить в памяти теорию по своей специальности.
Ниже мы собрали небольшую шпаргалку о том, чего могут касаться вопросы для нескольких востребованных IT-специальностей, а также дали ссылки на дополнительные полезные материалы.
Frontend-разработчик
Здесь могут встречаться самые разные вопросы по HTML, CSS, JavaScript, тестированию, сетям и другим темам.
Например:
Назовите самые популярные способы ускорения загрузки страницы. Как можно оптимизировать загрузку внешних ресурсов на странице? Какие преимущества и недостатки у анимаций на CSS и JavaScript? Что такое doctype? Чем отличаются cookie, sessionStorage и localStorage? Что такое прогрессивная отрисовка? Что такое floats-элементы? В чём разница между отзывчивым сайтом и mobile-first-сайтом? В чём разница между attribute и property? Что такое event loop? Какие основные различия между var, let и const в JavaScript? Ещё больше вопросов для подготовки можно найти здесь .
Backend-разработчик
Вопросы для этой позиции могут касаться архитектуры, принципов разработки и жизненного цикла ПО, баз данных, различных языков программирования, NoSQL, GIT и других моментов.
Вот несколько примеров:
Назовите 3 главных преимущества и недостатка вашего любимого языка программирования. Расскажите о совместимости следующих языков: *два языка*. Чем объектно-ориентированное программирование отличается от функционального? Назовите преимущества и недостатки монолита и микросервисов. Как вы перенесёте приложение из базы *название* в базу *название*? Как NoSQL решает проблемы масштабируемости? Какие бывают типы NoSQL СУБД? Чем tag отличается от branch в GIT? Какими командами в GIT вы выполните следующие действия: *названия действий*? Вот хорошая большая подборка вопросов, которые потенциальный работодатель может задать кандидату на позицию backend-разработчика. Java-разработчик
Вопросы здесь могут касаться как объектно-ориентированного программирования в целом, так и более частных моментов: коллекций, методов, классов, исключений Java, SQL, особенностей Java 8-9-11 и др.
Вот несколько примеров реальных вопросов:
Что такое ООП и каковы его принципы? В чём преимущества и недостатки ООП? Что такое класс, объект и интерфейс? Как работает сборщик мусора в Java? Почему char[] предпочтительнее String для хранения пароля? Какие нововведения появились в Java 8? Для чего нужны функциональные интерфейсы? Как вы понимаете понятия «сериализация» и «многопоточность»? Расскажите про java.util.collection. Здесь вы найдёте много примеров вопросов для собеседований по разным темам в области Java-разработки.Python-разработчик
Интервью на эту позицию предполагает главным образом вопросы на знание языка (последовательностей, множеств, функций, классов, объектов, многопоточности и т. д.), баз данных, алгоритмов.
Несколько примеров:
Что такое класс, итератор, генератор? Чем модуль в Python отличается от пакета? Что такое lambda-функции? Что такое Async Python и как он работает? Какие методы работы с SQL-базой данных в Python вы знаете? Как можно оптимизировать SQL-запросы? Какие уровни изоляции транзакций вы можете назвать? Что такое архитектура веб-сервисов? Ещё больше вопросов вы можете найти здесь . Android-разработчик
Кандидата на эту позицию могут спрашивать про языки Android-разработки Java, Kotlin (и здесь становятся актуальны все вопросы, которые мы описывали выше для Java-разработчика), про работу с сетью, Android SDK, базы данных в Android-приложениях, тестирование и архитектуру.
Несколько примеров:
Что такое Null safety в Kotlin? Почему классы Kotlin по умолчанию final? Почему у Kotlin нет checked exceptions? Что такое Extensions? Пользовались ли вы ими в проектах? Что такое объект Unit и Any в Kotlin? Какими способами можно хранить данные в Android? Какие компоненты входят в библиотеку Room? Какие Android-компоненты вы знаете? Что такое Fragment? Зачем он нужен? Чем отличается от Activity? Что такое изменение конфигурации? Вот интересная и довольно большая подборка вопросов для собеседования с Android-разработчиком. Тестировщик и QA-инженер
Обычно вопросы для этих позиций касаются теории и техники тестирования, методологий разработки ПО и его жизненного цикла, тестовой документации. Кроме того, работодатели могут спрашивать и о дополнительных языках или технологиях: JavaScript, HTML, CSS, jQuery и др.
Примеры:
Что представляет собой процесс тестирования? Какова его цель? Из каких этапов он состоит? Что такое ошибка, дефект и сбой? Чем отличаются QA, QC и Testing? Какие виды тестирования вы знаете? Что вы знаете о жизненном цикле ПО? Расскажите, как создать тест-план. Какие виды тестовой документации вы знаете? Какие документы оформляет тестировщик? По этой ссылке вы найдёте подборку, наверное, всех возможных вопросов для QA. DevOps-инженер
Вопросы на эту позицию могут касаться как теории DevOps, так и Linux, работы с сетями, базами данных, CI/CD, GIT, Docker, Ansible и других технологий и сервисов, которые используются специалистами в работе.
Вот несколько примеров вопросов:
Зачем нужен DevOps? Какие практики DevOps вы знаете и применяете? Что такое Scrum и Kanban? Что такое GitOps, GitFlow? Что такое LA? Что такое TCP/IP? Чем UDP отличается от TCP? Какие стандартные коды ответов веб-серверов вы знаете? Что такое требования ACID в контексте баз данных? Ещё больше примеров вопросов вы можете найти по этой ссылке , а также здесь . ML-специалист
Ему могут задавать вопросы по теории ML, проектированию ML-систем, Python и/или С++, CS, NLP, специальным библиотекам или фреймворкам.
Вот несколько примерных вопросов:
Что такое машинное обучение с учителем и без? Что такое корреляция и ковариация? Что такое матрица смещения? Что такое алгоритм SVM? Что такое Random Forest? Чем отличаются друг от друга L1- и L2-регуляризация? Что такое ансамблевые модели? Как строить деревья решений? Этап 3. Проверка софт-скилов Умение общаться, работать в команде, задавать вопросы, критически мыслить, принимать решения в сложных ситуациях и другие «неспециализированные» скилы тоже очень важны для разработчика. Поэтому на третьем этапе можно ждать как простых, так и каверзных вопросов на отвлечённые темы.
Что могут спрашивать
Почему вы решили стать *название специальности*? Как вы считаете, какие личные качества важны для *название специальности*? Какие у вас слабые и сильные стороны? Опишите ваше самое большое достижение и провал на работе. С каким самым серьёзным конфликтом в команде вы сталкивались? Как его разрешали? Расскажите о ситуации, когда вы не смогли выполнить задачу в срок. Как вы поступили? Что бы вы сделали в следующей ситуации? *Описание ситуации* Как отвечать
Лучше отвечать кратко, без долгих раздумий и с улыбкой. Для многих HR-специалистов важнее не что вы ответите на этом этапе, а как. Рассказывая о реальных ситуациях, делайте акцент на конкретных фактах и своих заслугах.
На вопросы, связанные с вашими проектами, очень удобно отвечать по шаблону PARLA, чтобы не увязнуть в ненужных деталях:
Этап 4. Финал — практические задания Здесь тоже можно ожидать разного. Например, нам рассказывали про собеседования на позицию тестировщика, на которых нужно было протестировать какой-либо предмет, находящийся в комнате: блокнот, стул, карандаш и т. д.
К счастью, большинство компаний всё же дают задачи, напрямую связанные с будущей работой и проектами.
Как отвечать
Не теряйтесь под действием необычных формулировок задания. Цель этого этапа — проверить, насколько хорошо вы умеете читать ТЗ, знаете алгоритм решения задачи и умеете пользоваться конкретными инструментами для её выполнения. Старайтесь не зацикливаться на лишних деталях. Можно уделить им время после, если основное задание уже выполнено.
Что ещё? Работодатели могут придумывать и другие вопросы и задания, чтобы проверить кандидатов (разумеется, в рамках тайминга встречи). Не теряйтесь, если получите вопрос о незнакомом сервисе или технологии. Правильным ответом в этом случае будет рассказать всё, что вы о них знаете, и честно резюмировать, что у вас пока не было опыта работы с ними, но вы готовы научиться.
Заранее не угадаешь, какие вопросы попадутся именно вам, но можно подготовиться:
Внимательно изучите список требований к вашей вакансии на сайте компании, hh.ru или ином агрегаторе. Например, все актуальные вакансии МТС собраны здесь , для каждой чётко прописан список того, что нужно знать и уметь. Если какой-то из пунктов требований вам незнаком, не ленитесь изучить тему за время, оставшееся до собеседования. Лучше знать ответ на трудные вопросы хотя бы в общих чертах, чем промолчать. Ваши честность, открытость и готовность идти на диалог многое скажут работодателю о вас. Ищете работу по одной из этих специальностей? Приходите в МТС Если сейчас вы в поиске нового места работы, возможно, нам с вами по пути. В МТС открыты самые разные вакансии для разработчиков, а также смежных специалистов IT-сферы — маркетологов, менеджеров проектов, перформанс-менеджеров и др. В описании каждой из них мы подробно рассказываем: — с каким продуктом или проектом МТС нужно будет работать; — что конкретно нужно будет делать; — что должен знать и уметь кандидат. Благодаря этому вы сможете качественно подготовиться к собеседованию и не нервничать.
Комментарии