Как подготовиться к техническому собеседованию разработчика

Собеседование — это не экзамен, где нужно знать всё идеально. Это встреча двух профессионалов, чтобы понять, сможете ли вы решать задачи вместе. Большинство разработчиков теряются не из-за отсутствия знаний, а из-за неправильной стратегии подготовки. Они зубрят теории, забывая о практике, или панически боятся задать вопрос, который кажется «глупым».

В этой статье я разберу, как подготовиться к техническому собеседованию разработчика максимально эффективно. Мы уйдём от абстрактных советов к конкретным шагам: что писать в резюме, как решать задачи на кодинге, что спрашивать про архитектуру и как вести себя в неформальной части. Здесь нет воды. Только реальный опыт, типовые ошибки и чек-листы, которые помогут вам пройти собеседование в любую компанию в России — от стартапа до крупного банка.

Почему большинство разработчиков проваливают собеседования

Давайте начнём с честного разбора. Почему опытный разработчик с 3–5 годами опыта может получить отказ? За годы проведения собеседований я выделил пять ключевых причин, которые повторяются из раза в раз.

  1. Непонимание формата. Кандидат готовится к собеседованию в Google, а приходит в российский банк, где фокус на бизнес-процессах и стабильности кода. Он рассказывает про красно-чёрные деревья, а его спрашивают про транзакции и уровни изоляции. Результат — взаимное разочарование.
  2. Зубрёжка вместо понимания. Человек знает, как работает HashMap в теории, но не может объяснить, что произойдёт, если в него загрузить 10 миллионов объектов без пересчёта хешей. А ведь именно такие вопросы проверяют глубину: вы действительно понимаете механизм или просто выучили определение.
  3. Паника перед кодингом. В стрессе даже простые задачи — например, реверс строки или поиск элемента в массиве — превращаются в камень. Знакомая ситуация: кандидат открывает редактор, видит пустой экран и забывает всё, что знал. Это вопрос не знаний, а психологической подготовки.
  4. Отсутствие вопросов. Кандидат молчит, не спрашивает про стек технологий, команду, процессы. Со стороны это выглядит как отсутствие интереса. Когда я провожу собеседование и слышу «у меня нет вопросов», я понимаю: человек либо не готов, либо ему всё равно, куда идти.
  5. Неумение говорить о ошибках. Разработчик не может честно рассказать, где он ошибся в прошлом проекте и как это исправил. А ведь это один из главных маркеров зрелости специалиста. Все ошибаются, вопрос в том, какие выводы вы сделали.

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

Этап 1: Анализ компании и формирование стратегии

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

Типы компаний и их требования

Тип компании Фокус собеседования Что важно знать Примеры в РФ
Стартапы (Early Stage) Скорость, гибкость, готовность делать «всё» Основы языка, умение быстро учиться, опыт с MVP, Git, CI/CD Яндекс.Стартапы, локальные fintech-проекты
Крупные продукты (Big Tech) Алгоритмы, архитектура, оптимизация Сложные алгоритмы, Big Data, микросервисы, паттерны, глубина языка Яндекс, VK, Сбер, Тинькофф
Банки и Финтех Стабильность, безопасность, процессы Тестирование, безопасность, SQL, процессы разработки, строгая архитектура Альфа-Банк, ВТБ, Газпромбанк
Корпоративный сектор (Enterprise) Процессы, документация, поддержка ООП, базы данных, legacy-код, умение работать в команде Росатом, Газпром, крупные ритейлеры

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

Как провести анализ за 30 минут

У меня есть проверенный алгоритм, который занимает полчаса и даёт чёткое понимание, к чему готовиться.

  1. Посмотрите сайт компании. Читайте раздел «О нас», «Карьера». Что они пишут? «Мы меняем мир» или «Мы обеспечиваем стабильность»? По тону коммуникации уже многое понятно. Стартапы говорят про миссию и скорость, банки — про надёжность и масштаб.
  2. Проверьте стек технологий. На сайте в разделе «Технологии» или на GitHub компании. Если они пишут Java, Spring, PostgreSQL — готовьтесь именно к этому. Не учите Go, если вакансия на Python. Кажется очевидным, но сколько раз я видел кандидатов, которые распылялись на всё подряд.
  3. Читайте отзывы. На сайтах вроде Habr Career, Glassdoor (если доступен), Telegram-чатах по компании. Узнайте, как проходят собеседования: есть ли кодинг, есть ли интервью с архитектором, какие темы спрашивают. Люди охотно делятся опытом, грех этим не пользоваться.
  4. Определите уровень. Junior, Middle, Senior? Для Junior важно знание основ и желание учиться. Для Senior — опыт проектирования, умение вести команду, решение сложных архитектурных проблем. Не пытайтесь прыгнуть выше головы, но и не занижайте планку.

Чек-лист подготовки к анализу:

  • Я знаю, какой стек технологий использует компания.
  • Я понял, какой тип компании (стартап, банк, продукт).
  • Я определил уровень вакансии (Junior/Middle/Senior).
  • Я нашёл отзывы о собеседованиях в этой компании.

Этап 2: Обновление резюме и портфолио

Резюме — это ваш пропуск на собеседование. Если оно не цепляет, вас не пригласят. Я просматриваю десятки резюме в месяц и могу сказать точно: решение о том, читать дальше или закрыть, принимается за 10–15 секунд.

Что писать в резюме разработчика

  1. Конкретика, а не вода.
    • Плохо: «Работал с Java, делал веб-приложения».
    • Хорошо: «Разработал REST API на Java 17 + Spring Boot, который обрабатывает 5000 запросов в секунду. Оптимизировал SQL-запросы, снизив время ответа от 2с до 150мс».

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

  2. Результаты и метрики.
    • Укажите, что вы улучшили: скорость, надёжность, стоимость.
    • Используйте цифры: «Снизил нагрузку на сервер на 30%», «Увеличил покрытие тестами до 85%».

    Цифры работают безотказно. Даже если точных метрик нет, можно дать оценку: «примерно в два раза ускорил сборку».

  3. Технологии в блоке «Skills».
    • Разделите на группы: Languages, Frameworks, Tools, Databases.
    • Не пишите «всё подряд». Пишите только то, с чем реально работали. Если вы указали Kafka, а на вопрос «как настроить consumer group» не можете ответить — это минус.
  4. Портфолио (GitHub).
    • Если у вас есть проекты на GitHub, укажите ссылки.
    • Код должен быть читаемым: есть ли README.md, есть ли структура, нет ли «мусора» в коммитах.
    • Для Junior: лучше показать 2–3 качественных пет-проекта, чем 10 пустых. Один хорошо проработанный проект с тестами и документацией скажет о вас больше, чем десяток заготовок.

Типовые ошибки в резюме

  • Слишком много «воды». Фразы вроде «коммуникабельный», «стрессоустойчивый» без примеров не работают. Это штампы, которые все выучили наизусть.
  • Неправильный формат. Если вы отправляете PDF, убедитесь, что он читаем. Проверьте, как выглядит файл на телефоне — многие HR читают резюме именно там.
  • Ошибка в контактах. Укажите правильный email и Telegram. Банально, но я не раз пытался связаться с кандидатом и не мог, потому что почта была с опечаткой.
  • Отсутствие ссылок. Если вы работали в команде, укажите, какой проект вы делали и где можно посмотреть код. Даже если это закрытый проект, опишите его суть и вашу роль.

Чек-лист идеального резюме:

  • В резюме есть конкретные цифры и метрики.
  • Я указал только те технологии, с которыми работал.
  • У меня есть ссылка на GitHub с рабочими проектами.
  • Резюме написано без воды и канцелярита.
  • Я проверил контакты и формат файла.

Этап 3: Подготовка к техническим вопросам (Hard Skills)

Это самая важная часть. Здесь проверяют ваши знания языка, алгоритмов, баз данных и архитектуры. Я разбил подготовку на пять ключевых блоков — именно в такой последовательности я рекомендую их прорабатывать.

1. Основы языка программирования

Независимо от языка (Java, Python, C#, Go), вас будут спрашивать о фундаментальных вещах. Это база, которую нужно знать назубок.

  • Типы данных: Какие типы есть, как они работают, разница между int и Integer (в Java), list и tuple (в Python). Казалось бы, просто, но на этих вопросах спотыкаются даже мидлы.
  • ООП: Классы, объекты, наследование, интерфейсы, абстрактные классы, полиморфизм. Важно не просто дать определения, а показать на примерах, где и зачем вы это применяли.
  • Управление памятью: Как работает стек и куча, что такое garbage collection, как избежать утечек памяти. Для Java-разработчиков — обязательный блок, для Python — тоже актуально, хоть и с нюансами.
  • Исключения: Как обрабатывать ошибки, разница между try-catch и throw. Проверяют не столько синтаксис, сколько понимание, когда какое исключение уместно.
  • Многопоточность: Threads, Locks, Race conditions, Synchronization. Для Senior это одна из ключевых тем, для Junior — достаточно базового понимания.

Пример вопроса:

«Что произойдёт, если в Java создать 10 миллионов объектов в одном методе?»

Ответ: Стек может не выдержать (если объекты большие), но куча (Heap) выделит память. Если памяти не хватит, возникнет OutOfMemoryError. Важно объяснить, как работает GC и как объекты удаляются. Хороший кандидат ещё и расскажет про настройки JVM, которые могут повлиять на поведение.

2. Алгоритмы и структуры данных

В крупных компаниях (Яндекс, Сбер) это обязательная часть. В стартапах — реже, но базовые вещи спросят везде. Я рекомендую не зубрить реализации, а понять, когда и зачем применять каждую структуру.

Что нужно знать:

  • Структуры данных:
    • Массивы, списки (linked list), хеш-таблицы (HashMap), стеки, очереди, деревья (BST, AVL), графы.
    • Когда использовать каждую? Например: HashMap для быстрого поиска по ключу, Tree для отсортированных данных, очередь для обработки задач в порядке поступления.
  • Алгоритмы:
    • Поиск (Binary Search), сортировка (Merge Sort, Quick Sort).
    • Рекурсия, динамическое программирование.
    • Графы (BFS, DFS).
  • Сложность алгоритмов:
    • Понимать, что значит O(1), O(n), O(log n), O(n²).
    • Уметь оценить сложность своего кода. Это показывают на каждом втором собеседовании: «Какова сложность вашего решения? Можно ли лучше?»

Как решать задачи на кодинге:

  1. Понять задачу. Не начинайте писать код сразу. Спросите: «Какие входные данные? Что должно быть на выходе? Есть ли ограничения?». Это показывает, что вы не просто исполнитель, а думающий специалист.
  2. Пример. Напишите пример на бумаге или в редакторе. Проговорите его вслух.
  3. Подход. Объясните, какой алгоритм вы выберете. Даже если решение неоптимальное, сам факт объяснения — это плюс.
  4. Код. Пишите чистый код, с комментариями. Не экономьте на читаемости.
  5. Тест. Проверьте код на краевых случаях: пустой массив, отрицательные числа, дубликаты, очень большие значения.

Типовая задача:

«Найти второй наибольший элемент в массиве без использования сортировки».

Подход: Пройти массив один раз, сохраняя два максимальных значения. Сложность O(n). Ключевой момент — не забыть обработать случай, когда все элементы одинаковые или массив состоит из одного элемента.

3. Базы данных (SQL и NoSQL)

Вас обязательно спросят о базах данных, даже если вы фронтендер. Для бэкендеров это критическая тема.

  • SQL:
    • Основные запросы: SELECT, INSERT, UPDATE, DELETE.
    • JOIN (INNER, LEFT, RIGHT), GROUP BY, HAVING. Разница между WHERE и HAVING — классический вопрос.
    • Индексы: как они работают, когда их использовать, что такое B-Tree. Объясните, почему индекс ускоряет поиск, но замедляет вставку.
    • Транзакции: ACID, уровни изоляции. Для финтеха — обязательная тема.
  • NoSQL:
    • MongoDB, Redis, Cassandra.
    • Когда использовать NoSQL вместо SQL? Например: для больших данных с простой структурой, для кэширования (Redis), для высокой скорости чтения при гибкой схеме данных.

Пример вопроса:

«Что произойдёт, если сделать SELECT * на таблице с 10 миллионами записей без индекса?»

Ответ: Это будет очень медленно. Если нет индекса, база данных будет перебирать все записи (Full Table Scan). Нужно использовать индексы или ограничить выборку (LIMIT). Хороший кандидат ещё добавит про explain-запросы и мониторинг.

4. Архитектура и паттерны

Для Middle и Senior это критично. Junior могут спросить базовые вещи, но глубокого погружения не ждите.

Что нужно знать:

  • Паттерны проектирования: Singleton, Factory, Observer, Strategy, Adapter.
    • Не просто назвать, но объяснить, когда и зачем использовать. Например: «Strategy применял, когда нужно было переключать алгоритмы расчёта скидок в зависимости от типа клиента».
  • Микросервисы:
    • Что такое микросервис, в чём разница с монолитом.
    • Проблемы: сетевые сбои, согласованность данных, отладка. Расскажите про Circuit Breaker, саги, распределённую трассировку.
  • API:
    • REST vs GraphQL vs SOAP.
    • HTTP-методы: GET, POST, PUT, DELETE.
    • Коды ответов: 200, 400, 404, 500. И не путайте 401 и 403 — это частая ошибка.
  • Безопасность:
    • Аутентификация (JWT, OAuth), защита от XSS, SQL Injection. Даже если вы не безопасник, базовые вещи знать обязательно.

Пример вопроса:

«Как вы спроектируете систему для хранения миллионов фотографий пользователей?»

Ответ:

  1. Использовать облачное хранение (S3, GCS) — сами файлы не храним в базе.
  2. База данных для метаданных (PostgreSQL) — кто загрузил, когда, размер, ссылка на файл.
  3. Индексы для быстрого поиска по пользователю и дате.
  4. Микросервисы для обработки изображений (конвертация, сжатие, генерация превью).
  5. Кэширование (Redis) для частых запросов — например, аватарки пользователей.

5. Инструменты разработчика

Без этого сегодня никуда. Даже если вы гениально решаете алгоритмы, неумение работать с Git и CI/CD вызовет вопросы.

  • Git:
    • Основные команды: commit, push, pull, merge, rebase.
    • Что такое конфликт, как его решить. Расскажите про свой опыт: как разруливали сложные конфликты в большой команде.
    • Branching strategies: Git Flow, Trunk Based Development. Объясните, где что применяли и почему.
  • CI/CD:
    • Что такое Jenkins, GitLab CI, GitHub Actions.
    • Как настроить автоматическое тестирование и деплой. Даже базовый опыт настройки пайплайна — это огромный плюс.
  • Отладка:
    • Как использовать IDE (IntelliJ, VS Code), отладчики.
    • Как найти ошибку в коде. Расскажите про свой подход: логи, брейкпоинты, пошаговое выполнение.

Этап 4: Практика кодинга (Live Coding)

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

Как подготовиться к Live Coding

  1. Решайте задачи на платформах.
    • LeetCode, HackerRank, Codewars, E-olymp.
    • Начните с простых задач (Easy), затем переходите к средним (Medium).
    • Решайте задачи на время — это имитирует давление на собеседовании.
  2. Пишите код в IDE.
    • Не пишите на бумаге. Используйте среду, где есть автодополнение — на собеседовании вам тоже дадут редактор.
    • Убедитесь, что вы знаете, как запустить код. Казалось бы, мелочь, но в стрессе можно забыть даже это.
  3. Объясняйте ход мысли.
    • Не молчите. Говорите: «Я выбираю этот алгоритм, потому что…», «Сначала я сделаю так…».
    • Это показывает, что вы умеете думать, а не просто писать. Для интервьюера это важнее идеального кода.
  4. Тестируйте код.
    • После написания функции проверьте её на простых примерах.
    • Убедитесь, что код работает на краевых случаях. Лучше самому найти ошибку, чем ждать, пока её найдёт интервьюер.

Типовые ошибки на кодинге

  • Начинают писать код сразу, не поняв задачу. Это самая частая ошибка. Потратьте две минуты на уточнение — это сэкономит десять минут переписывания.
  • Пишут «грязный» код, без комментариев, без структуры. Даже если решение рабочее, нечитаемый код — это минус.
  • Не проверяют код, запускают только один тест. А что будет на пустом массиве? На отрицательных числах?
  • Паника. Если не получается, не останавливаются, а продолжают писать в надежде, что «сейчас заработает». Лучше сделать паузу, подумать и объяснить, где затык.

Чек-лист решения задачи:

  • Я понял задачу и уточнил все детали.
  • Я написал пример на бумаге или в редакторе.
  • Я выбрал алгоритм и объяснил почему.
  • Я написал код с комментариями.
  • Я проверил код на краевых случаях.

Этап 5: Вопросы про опыт и проекты (Behavioral)

После технических вопросов вас спросят о вашем опыте. Это проверка soft skills, и многие недооценивают этот этап. А зря — именно здесь часто принимается финальное решение.

Как отвечать на вопросы про опыт

  1. Используйте формулу STAR.
    • Situation (Ситуация): Что было?
    • Task (Задача): Что нужно было сделать?
    • Action (Действие): Что вы сделали?
    • Result (Результат): Что получилось?

    Эта формула работает безотказно. Она структурирует ответ и не даёт уйти в пустые рассуждения.

  2. Рассказывайте о ошибках.
    • Не скрывайте ошибки. Скажите: «Я ошибся в выборе архитектуры, потому что…».
    • Объясните, как вы это исправили. Честность и рефлексия ценятся выше, чем образ «идеального разработчика».
  3. Показывайте лидерство.
    • Если вы были в команде, расскажите, как вы помогали другим, как вы решали конфликты. Даже если вы не тимлид, проявление инициативы — это плюс.

Пример вопроса:

«Расскажите о проекте, который вам не удался. Что случилось?»

Ответ (STAR):

  • S: Мы делали проект для клиента, который требовал быстрой доставки.
  • T: Нужно было сделать MVP за 2 недели.
  • A: Я выбрал слишком сложную архитектуру, потому что хотел сделать «идеально». Это заняло время.
  • R: Мы не успели. Я понял, что нужно было выбрать проще. В следующем проекте я выбрал монолит, и мы успели.

Вопросы, которые вы должны задать интервьюеру

Не бойтесь спрашивать. Это показывает интерес и зрелость. Вот список вопросов, которые я рекомендую задать на каждом собеседовании.

  • Про команду: «Сколько человек в команде? Как вы работаете? Есть ли тимлид?»
  • Про процессы: «Как вы тестируете код? Есть ли CI/CD? Как вы проводите ревью?»
  • Про технологии: «Какой стек вы используете? Почему выбрали его? Планируют ли переходить на что-то новое?»
  • Про карьеру: «Как вы растёте? Есть ли программа для джуниоров? Как вы оцениваете успех?»
  • Про культуру: «Как вы решаете конфликты? Что вам нравится в компании?»

Чек-лист вопросов:

  • Я спросил про размер команды и роли.
  • Я спросил про процессы разработки (тесты, CI/CD).
  • Я спросил про технологии и стек.
  • Я спросил про карьерный рост.
  • Я спросил про культуру компании.

Этап 6: Неформальная часть и финал

Последние 10–15 минут — это неформальная часть. Здесь проверяют, сможете ли вы работать в команде. Технические навыки уже оценили, теперь смотрят на человека.

Как вести себя в неформальной части

  1. Будьте открыты.
    • Не молчите. Спрашивайте, делайте комментарии.
    • Покажите, что вы человек, а не робот. Расскажите, чем увлекаетесь помимо кода — это помогает установить контакт.
  2. Не спорьте.
    • Если интервьюер не согласен с вами, не спорьте. Скажите: «Я понимаю вашу точку зрения, но я думаю так…». Это показывает гибкость мышления.
  3. Покажите интерес.
    • Спросите: «Что вам нравится в компании?», «Какой проект вам запомнился?». Люди любят рассказывать о своём опыте, и это располагает.
  4. Завершите позитивно.
    • В конце скажите: «Спасибо за встречу. Мне было интересно. Я хочу работать в вашей компании». Это банально, но работает — многие забывают просто поблагодарить.

Что делать после собеседования

  1. Получите обратную связь.
    • Если не получили ответ в оговоренный срок, спросите: «Когда я могу получить решение?». Это нормально, рекрутеры иногда задерживаются.
  2. Проанализируйте.
    • Что было хорошо? Что было плохо?
    • Запишите вопросы, на которые вы не смогли ответить. Это ваш план на следующую подготовку.
  3. Повторите.
    • Если не получилось, не останавливайтесь. Подготовьтесь лучше и идите на другое собеседование. Каждый отказ — это точка роста.

Чек-лист: Подготовка к собеседованию за 7 дней

Вот пошаговый план, как подготовиться к собеседованию за неделю. Он проверен на практике и работает для большинства вакансий уровня Junior и Middle.

День Что делать
День 1 Анализ компании. Посмотрите сайт, стек, отзывы. Определите уровень.
День 2 Резюме. Обновите резюме, добавьте метрики, проверьте ссылки на GitHub.
День 3 Основы языка. Повторите типы данных, ООП, память, исключения.
День 4 Алгоритмы. Решите 5 задач на LeetCode (Easy/Medium). Повторите сложные алгоритмы.
День 5 Базы данных. Повторите SQL, индексы, транзакции. Решите 2 задачи на SQL.
День 6 Архитектура. Повторите паттерны, микросервисы, API. Решите задачу на проектирование.
День 7 Практика. Решите задачу на кодинге в IDE. Повторите вопросы STAR.

FAQ: Часто задаваемые вопросы

1. Сколько времени нужно готовиться к собеседованию?

Для Junior: 1–2 недели. Для Middle: 2–3 недели. Для Senior: 3–4 недели. Но главное — не зубрить, а понимать. Лучше готовиться по часу в день в течение месяца, чем пытаться выучить всё за два дня.

2. Что делать, если я не знаю ответ на вопрос?

Не молчите. Скажите: «Я не знаю точного ответа, но я думаю, что…». Или: «Я не работал с этим, но я могу догадаться, как это работает». Это показывает, что вы умеете думать. Худшее, что можно сделать — замереть и ждать.

3. Нужно ли знать все алгоритмы?

Нет. Для Junior важно знать базовые (сортировка, поиск). Для Middle/Senior — сложные (графы, динамическое программирование). Но главное — понимать, когда и зачем использовать. Никто не ждёт, что вы с ходу напишете красно-чёрное дерево, но объяснить, где оно применяется, — вполне.

4. Что если я ошибился в коде на кодинге?

Не останавливайтесь. Исправьте ошибку. Объясните, как вы её нашли. Это показывает, что вы умеете тестировать и исправлять. Честно говоря, я больше доверяю кандидатам, которые находят и исправляют свои ошибки, чем тем, кто пишет идеально с первого раза.

5. Нужно ли спрашивать про зарплату на собеседовании?

Лучше не на первом техническом собеседовании. Спросите про зарплату на этапе с HR или после успешного собеседования. Если вопрос поднимает сам интервьюер — отвечайте честно, но без ультиматумов.

6. Что если я не прошёл собеседование?

Не расстраивайтесь. Проанализируйте, что было плохо. Подготовьтесь лучше и идите на другое. Успех приходит к тем, кто не останавливается. Я сам получал отказы десятки раз, и каждый из них чему-то учил.

Заключение

Подготовка к техническому собеседованию — это не просто зубрёжка. Это стратегия, которая включает анализ компании, обновление резюме, подготовку к техническим вопросам, практику кодинга и развитие soft skills.

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

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

Ваша следующая задача:

  1. Выберите компанию, куда хотите пойти.
  2. Обновите резюме.
  3. Начните решать задачи на LeetCode.
  4. Подготовьте вопросы для интервьюера.

Удачи на собеседовании! Вы справитесь.