Как проходит собеседование на Python-разработчика
Воронка найма
Типичный процесс в продуктовой компании занимает 2–6 недель:
Бывают и варианты: в стартапе всё может уместиться в один разговор с CTO, в крупной компании — пять-шесть секций и «комитет». Спросите рекрутера заранее, какие будут этапы и что на них проверяют: это нормальный вопрос, и ответ на него экономит недели подготовки не к тому.
Чего ждут на разных уровнях
| Junior | Middle | Senior | |
|---|---|---|---|
| Язык | синтаксис, коллекции, функции, ООП, исключения | модель данных, генераторы, декораторы, контекстные менеджеры, typing, GIL и конкурентность | внутренности CPython, производительность, архитектурные компромиссы |
| Задачи | простые алгоритмы, аккуратный код | алгоритмы среднего уровня, оценка сложности, тесты | быстрое решение + обсуждение вариантов |
| БД и веб | SQL-запросы, HTTP, REST | индексы, транзакции, N+1, кеш, очереди | масштабирование, консистентность, отказоустойчивость |
| Проектирование | — | спроектировать модуль или API | system design целиком |
| Опыт | учебные и пет-проекты | самостоятельное ведение задач | влияние на команду, менторство, решения |
Резюме
Резюме читают 30 секунд, а часто сначала его фильтрует ATS по ключевым словам. Что работает:
- 1–2 страницы, сверху — желаемая позиция («Python-разработчик (backend)»), контакты, GitHub.
- Навыки — те, что в вакансии и что вы реально готовы обсуждать: Python, Django/FastAPI, PostgreSQL, Redis, Docker, Git, pytest, Linux.
- Опыт — результатами, а не обязанностями: не «занимался разработкой API», а «перевёл каталог на FastAPI и Redis-кеш: p95 время ответа с 800 до 120 мс». Глагол + что сделали + измеримый эффект.
- Без опыта работы — проекты: что за проект, стек, ваша роль, ссылка на репозиторий с README, тестами и инструкцией по запуску. Один доведённый до конца проект с CI и деплоем лучше десяти учебных.
- Адаптируйте резюме под вакансию: переставьте акценты, используйте её формулировки.
- Сопроводительное письмо — 3–5 предложений: почему именно эта компания и чем вы полезны для этой роли.
Пет-проект, который помогает на собеседовании
API на FastAPI или Django с PostgreSQL, миграциями, аутентификацией, тестами (pytest, покрытие), Docker Compose, CI на GitHub Actions и деплоем. На интервью его можно обсуждать часами — и это лучше любых вопросов «по билетам».
План подготовки на 2–4 недели
- Язык (неделя 1): пройдите вопросы из уроков «Топ вопросов по языку» и «ООП, внутренности, конкурентность». Для каждого вопроса сформулируйте ответ вслух за 1–2 минуты и проверьте себя кодом в REPL.
- Каверзный код: урок «Что выведет код?» — изменяемые аргументы по умолчанию, замыкания в цикле,
isи==, копирование. - Алгоритмы (неделя 2): модуль «Алгоритмы и структуры данных» — по 2–3 задачи в день, сначала легкие, вслух, с оценкой сложности. Шаблоны важнее количества.
- БД, веб, инструменты: SQL (JOIN, GROUP BY, индексы, транзакции), HTTP и REST, Git, Docker — модуль «Python в работе».
- Проектирование (middle+): урок «Основы system design».
- Поведенческое: подготовьте 5–6 историй по STAR — урок «Поведенческое интервью».
- Репетиция: пробное собеседование и мок-интервью с другом или на платформах взаимных интервью.
Как вести себя на интервью
- Думайте вслух. Интервьюер оценивает ход мысли, а не только ответ. Молчание 5 минут — худший сценарий, даже если в итоге решение верное.
- Уточняйте условие перед решением: входные данные, граничные случаи, ограничения по памяти и времени.
- Не знаете — так и скажите, и порассуждайте. «Не сталкивался, но предполагаю, что… проверил бы так…» — хороший ответ. Выдуманный уверенный ответ — плохой: его почти всегда видно.
- Примеры из опыта делают ответ сильнее: «у нас был N+1 на странице заказов, нашли через логирование SQL, починили через
prefetch_related». - Задавайте вопросы в конце (см. урок о поведенческом интервью) — это тоже оценивают.
- Технически: удобное место, наушники, проверенная связь, редактор или онлайн-доска, на которой вы уже пробовали писать код.
Тестовое задание
- Уточните объём и срок; разумно — 4–8 часов работы. Если задание тянет на неделю — можно вежливо спросить, нельзя ли заменить его живым интервью.
- Сдавайте как рабочий код: README с запуском одной командой (
docker compose up), тесты, линтер, понятная структура, осмысленные коммиты. - Опишите в README принятые решения и что бы вы улучшили при большем времени — на ревью об этом спросят.
Зарплата и оффер
- Исследуйте рынок: вилки в вакансиях, обзоры зарплат, знакомые. Называйте вилку с верхней границей чуть выше желаемого.
- Если можно, пусть первую цифру назовёт компания: «Какая вилка заложена на эту позицию?»
- Сравнивайте всю компенсацию: оклад, премии, опционы, ДМС, обучение, оборудование, формат работы, испытательный срок, задачи и команда.
- Оффер можно и нужно обсуждать; встречный оффер от другой компании — сильный, но честный аргумент.
- Отказ — не приговор. Попросите обратную связь, запишите вопросы, на которых споткнулись, и закройте пробелы к следующему интервью.
Итог
- Этапы: скрининг → техническое интервью → live coding/тестовое → system design (middle+) → команда → оффер.
- Резюме — результатами и ключевыми навыками из вакансии; пет-проект с тестами, Docker и CI.
- На интервью: уточнять, думать вслух, честно признавать незнание и рассуждать.
- Готовьтесь по плану: язык → каверзный код → алгоритмы → БД и веб → проектирование → поведенческие истории → репетиция.
Практика решено 0 из 4
Что в первую очередь проверяют на каждом этапе?
| мотивацию и соответствие вакансии | знание языка и инструментов | умение решать задачи и писать код | проектирование систем | |
|---|---|---|---|---|
| Скрининг с рекрутером | ||||
| Техническое интервью «вопрос — ответ» | ||||
| Live coding / алгоритмическая секция | ||||
| System design (обычно для middle+) |
Что стоит сделать, если на интервью вы не знаете ответа на вопрос?
Рекрутер спрашивает о зарплатных ожиданиях на первом звонке. Какой ответ лучше?
Как называется метод структурирования ответов на поведенческие вопросы: Ситуация, Задача, Действия, Результат? (аббревиатура латиницей)
Войдите, чтобы отмечать пройденные уроки.