> ## Content Index
> Fetch the complete content index at: https://admin.kod.ru/llms.txt
> Use this file to discover other available public pages before exploring further.

# Гайд по вопросам на интервью для разработчиков: к чему готовиться?
- URL: https://admin.kod.ru/intierviu-dlia-razrabotchikov-guide/
- Published: 2023-09-27T11:42:46.000Z
- Updated: 2023-09-27T11:42:46.000Z
- Description: Мы прочитали много историй, поговорили с коллегами-разработчиками о том, как проходили их интервью, и составили небольшой гайд.
- Author: МТС
- Tags: Блоги

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

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

Он поможет новичкам, которые только планируют устроиться на первую работу, а также тем, кто хочет сменить компанию или сферу.

### Этап 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?

Ещё больше вопросов для подготовки можно найти [здесь](https://h5bp.org/Front-end-Developer-Interview-Questions/translations/russian/?ref=admin.kod.ru).

**Backend-разработчик**

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

Вот несколько примеров:

- Назовите 3 главных преимущества и недостатка вашего любимого языка программирования.
- Расскажите о совместимости следующих языков: \*два языка\*.
- Чем объектно-ориентированное программирование отличается от функционального?
- Назовите преимущества и недостатки монолита и микросервисов.
- Как вы перенесёте приложение из базы \*название\* в базу \*название\*?
- Как NoSQL решает проблемы масштабируемости?
- Какие бывают типы NoSQL СУБД?
- Чем tag отличается от branch в GIT?
- Какими командами в GIT вы выполните следующие действия: \*названия действий\*?

> Вот хорошая [большая подборка](https://habr.com/ru/articles/349434/?ref=admin.kod.ru) вопросов, которые потенциальный работодатель может задать кандидату на позицию backend-разработчика.

**Java-разработчик**

Вопросы здесь могут касаться как объектно-ориентированного программирования в целом, так и более частных моментов: коллекций, методов, классов, исключений Java, SQL, особенностей Java 8-9-11 и др.

Вот несколько примеров реальных вопросов:

- Что такое ООП и каковы его принципы? В чём преимущества и недостатки ООП?
- Что такое класс, объект и интерфейс?
- Как работает сборщик мусора в Java?
- Почему char\[\] предпочтительнее String для хранения пароля?
- Какие нововведения появились в Java 8?
- Для чего нужны функциональные интерфейсы?
- Как вы понимаете понятия «сериализация» и «многопоточность»?
- Расскажите про java.util.collection.

> [Здесь](https://github.com/enhorse/java-interview?ref=admin.kod.ru) вы найдёте много примеров вопросов для собеседований по разным темам в области Java-разработки.

**Python-разработчик**

Интервью на эту позицию предполагает главным образом вопросы на знание языка (последовательностей, множеств, функций, классов, объектов, многопоточности и т. д.), баз данных, алгоритмов.

Несколько примеров:

- Что такое класс, итератор, генератор?
- Чем модуль в Python отличается от пакета?
- Что такое lambda-функции?
- Что такое Async Python и как он работает?
- Какие методы работы с SQL-базой данных в Python вы знаете?
- Как можно оптимизировать SQL-запросы?
- Какие уровни изоляции транзакций вы можете назвать?
- Что такое архитектура веб-сервисов?

> Ещё больше вопросов вы можете найти [здесь](https://github.com/yakimka/python%5Finterview%5Fquestions?ref=admin.kod.ru).

**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?
- Что такое изменение конфигурации?

> Вот интересная и довольно большая [подборка](https://itvdn.com/ru/blog/article/250-about-android?ref=admin.kod.ru) вопросов для собеседования с Android-разработчиком.

**Тестировщик и QA-инженер**

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

Примеры:

- Что представляет собой процесс тестирования? Какова его цель? Из каких этапов он состоит?
- Что такое ошибка, дефект и сбой?
- Чем отличаются QA, QC и Testing?
- Какие виды тестирования вы знаете?
- Что вы знаете о жизненном цикле ПО?
- Расскажите, как создать тест-план.
- Какие виды тестовой документации вы знаете? Какие документы оформляет тестировщик?

> По [этой ссылке](https://itvdn.com/ru/blog/article/250-questions-qa?ref=admin.kod.ru) вы найдёте подборку, наверное, всех возможных вопросов для QA.

**DevOps-инженер**

Вопросы на эту позицию могут касаться как теории DevOps, так и Linux, работы с сетями, базами данных, CI/CD, GIT, Docker, Ansible и других технологий и сервисов, которые используются специалистами в работе.

Вот несколько примеров вопросов:

- Зачем нужен DevOps?
- Какие практики DevOps вы знаете и применяете?
- Что такое Scrum и Kanban?
- Что такое GitOps, GitFlow?
- Что такое LA?
- Что такое TCP/IP? Чем UDP отличается от TCP?
- Какие стандартные коды ответов веб-серверов вы знаете?
- Что такое требования ACID в контексте баз данных?

> Ещё больше примеров вопросов вы можете найти [по этой ссылке](https://github.com/rmntrvn/adm%5Flinux%5Fops%5Fquestions?ref=admin.kod.ru), а также [здесь](https://itvdn.com/ru/blog/article/300-devops?ref=admin.kod.ru).

**ML-специалист**

Ему могут задавать вопросы по теории ML, проектированию ML-систем, Python и/или С++, CS, NLP, специальным библиотекам или фреймворкам.

Вот несколько примерных вопросов:

- Что такое машинное обучение с учителем и без?
- Что такое корреляция и ковариация?
- Что такое матрица смещения?
- Что такое алгоритм SVM?
- Что такое Random Forest?
- Чем отличаются друг от друга L1- и L2-регуляризация?
- Что такое ансамблевые модели?
- Как строить деревья решений?

### Этап 3\. Проверка софт-скилов

Умение общаться, работать в команде, задавать вопросы, критически мыслить, принимать решения в сложных ситуациях и другие «неспециализированные» скилы тоже очень важны для разработчика. Поэтому на третьем этапе можно ждать как простых, так и каверзных вопросов на отвлечённые темы.

**Что могут спрашивать**

- Почему вы решили стать \*название специальности\*?
- Как вы считаете, какие личные качества важны для \*название специальности\*?
- Какие у вас слабые и сильные стороны?
- Опишите ваше самое большое достижение и провал на работе.
- С каким самым серьёзным конфликтом в команде вы сталкивались? Как его разрешали?
- Расскажите о ситуации, когда вы не смогли выполнить задачу в срок. Как вы поступили?
- Что бы вы сделали в следующей ситуации? \*Описание ситуации\*

**Как отвечать**

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

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

![](https://lh5.googleusercontent.com/rvCRdJSGEybvV4XDUYOseBew2_9dK1YhRfWZ5wMCYhVulsS1Wr-XWG0L5-sMIl0PfdhNczu_uPzpl7cyffAh1d_As6eBJLKQwUkK3HbvJO3VHzqVjzCILQ2cEd9P-hIz4w3B1z0CIBvc0FbUvsnOnIM)

### Этап 4\. Финал — практические задания

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

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

**Как отвечать**

Не теряйтесь под действием необычных формулировок задания. Цель этого этапа — проверить, насколько хорошо вы умеете читать ТЗ, знаете алгоритм решения задачи и умеете пользоваться конкретными инструментами для её выполнения. Старайтесь не зацикливаться на лишних деталях. Можно уделить им время после, если основное задание уже выполнено.

### Что ещё?

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

Заранее не угадаешь, какие вопросы попадутся именно вам, но можно подготовиться:

1. Внимательно изучите список требований к вашей вакансии на сайте компании, hh.ru или ином агрегаторе. Например, все актуальные вакансии МТС собраны [здесь](https://job.mts.ru/jobs?ref=admin.kod.ru), для каждой чётко прописан список того, что нужно знать и уметь.
2. Если какой-то из пунктов требований вам незнаком, не ленитесь изучить тему за время, оставшееся до собеседования. Лучше знать ответ на трудные вопросы хотя бы в общих чертах, чем промолчать. Ваши честность, открытость и готовность идти на диалог многое скажут работодателю о вас.

## Ищете работу по одной из этих специальностей? Приходите в МТС

> Если сейчас вы в поиске нового места работы, возможно, нам с вами по пути. В МТС открыты самые [разные вакансии](https://job.mts.ru/jobs?ref=admin.kod.ru) для разработчиков, а также смежных специалистов IT-сферы — маркетологов, менеджеров проектов, перформанс-менеджеров и др.  
>  
> В описании каждой из них мы подробно рассказываем:  
>  
> — с каким продуктом или проектом МТС нужно будет работать;  
> — что конкретно нужно будет делать;  
> — что должен знать и уметь кандидат.  
>  
> Благодаря этому вы сможете качественно подготовиться к собеседованию и не нервничать.