Вопросы на собеседовании: Python-разработчик
25 реальных вопросов с собеседований на позицию Python-разработчика — по навыкам, которые работодатели требуют в живых вакансиях. К каждому вопросу — что проверяет интервьюер и как звучит сильный ответ.
Медиана зарплаты по живым вакансиям: примерно 200 000 ₽ — 250 000 ₽ (по 337 вакансиям с указанной зарплатой).
Что чаще всего требуют работодатели
🤖 ИИ-тренажёр ответов: на этой странице можно написать свой ответ на любой вопрос — ИИ разберёт его как реальный интервьюер (оценка, сильные стороны, что добавить, пример сильного ответа). Бесплатно, 5 разборов в неделю.
Язык Python
Чем list отличается от tuple? Когда использовать что?
Что проверяют: База: list изменяемый, tuple — нет (и поэтому hashable — может быть ключом словаря). Tuple — для фиксированных структур и защиты от случайной мутации.
Что такое изменяемый аргумент по умолчанию и почему def f(x=[]) — баг?
Что проверяют: Классическая ловушка: значение по умолчанию создаётся один раз при определении функции и разделяется между вызовами. Правильно: x=None + создание списка внутри.
Как работают генераторы? Чем yield отличается от return?
Что проверяют: Ленивые вычисления: генератор отдаёт значения по одному, не держит всё в памяти. Сильный ответ — пример обработки большого файла построчно.
Что такое GIL и на что он влияет?
Что проверяют: Global Interpreter Lock: в CPython потоки не исполняют байткод параллельно. CPU-bound задачи ускоряют процессами (multiprocessing), IO-bound — потоками или asyncio.
Объясните декоратор. Напишите простейший @timer.
Что проверяют: Функция, оборачивающая другую функцию. Живой код: замер времени через functools.wraps + time.perf_counter. Проверяют понимание замыканий.
Чем is отличается от ==?
Что проверяют: == сравнивает значения, is — идентичность объектов (один ли это объект в памяти). Отсюда правило: с None сравниваем через is.
Как устроен dict внутри? Какая сложность у поиска по ключу?
Что проверяют: Хеш-таблица, амортизированный O(1). Плюс — упомянуть требование hashable-ключей и сохранение порядка вставки с Python 3.7.
ООП и архитектура
Назовите принципы ООП с примерами из своих проектов.
Что проверяют: Инкапсуляция, наследование, полиморфизм, абстракция — но ценится не перечисление, а пример: «в пет-проекте базовый класс Parser и наследники под форматы».
Что такое магические методы? Зачем __init__, __repr__, __eq__?
Что проверяют: Протоколы языка: __repr__ — отладочное представление, __eq__ + __hash__ — сравнение и работа в set/dict. Упомянуть dataclass, который генерирует их сам.
Композиция против наследования — что предпочесть и почему?
Что проверяют: Зрелый ответ: наследование — для «является», композиция — для «содержит/использует»; глубокие иерархии хрупкие, композиция гибче.
Что такое SOLID? Расскажите про единственную ответственность.
Что проверяют: Достаточно уверенно объяснить S и D с примером: класс, который и парсит, и сохраняет в БД, и шлёт уведомления — кандидат на разделение.
Веб и API
Что такое REST? Какие методы HTTP и коды ответов используете?
Что проверяют: Ресурсы + стандартные методы: GET/POST/PUT/PATCH/DELETE. Коды: 200/201/204, 400/401/403/404/422, 500. Идемпотентность GET и PUT — плюс.
Чем FastAPI отличается от Django? Когда что выбрать?
Что проверяют: FastAPI — лёгкий async-фреймворк для API (Pydantic, автодоки), Django — «батарейки в комплекте» (ORM, админка, auth) для полноценных продуктов. Выбор от задачи.
Что такое ORM? Плюсы и минусы против сырого SQL.
Что проверяют: Объектное отображение таблиц: безопасность (параметризация), миграции, читаемость — против контроля над сложными запросами. Упомянуть проблему N+1 — сильный ход.
Как работает async/await? Когда асинхронность не поможет?
Что проверяют: Кооперативная многозадачность на event loop: выигрыш на IO-bound (сеть, БД). Не поможет CPU-bound коду — там процессы.
Как бы вы спроектировали endpoint регистрации пользователя?
Что проверяют: Проверяют практику: валидация (Pydantic), хеширование пароля, обработка дубликата email (409), не возвращать пароль, статус 201.
Базы данных
Чем JOIN отличается от подзапроса? Что такое индекс?
Что проверяют: Индекс — структура для быстрого поиска (B-tree), ускоряет чтение, замедляет запись. Понимать, когда индекс не сработает (функция над колонкой, LIKE '%…').
Что такое транзакция и ACID?
Что проверяют: Атомарность, согласованность, изоляция, долговечность. Живой пример: перевод денег — списание и зачисление либо вместе, либо никак.
Как избежать SQL-инъекций?
Что проверяют: Параметризованные запросы / ORM, никогда не собирать SQL f-строками из пользовательского ввода.
Инструменты и практики
Опишите ваш git-workflow: ветки, merge против rebase, конфликты.
Что проверяют: Feature-ветки от main, PR + ревью. Merge сохраняет историю, rebase выпрямляет. Уметь словами разрешить конфликт — обязательный минимум.
Как вы тестируете код? Что такое фикстуры и моки в pytest?
Что проверяют: Юнит-тесты на логику, фикстуры — подготовка окружения, моки — изоляция внешних вызовов (API, БД). Плюс — привычка писать тест на найденный баг.
Зачем виртуальное окружение и файл requirements/pyproject?
Что проверяют: Изоляция зависимостей проекта и воспроизводимость окружения у коллег/на сервере.
Поведенческие
Расскажите о самом сложном баге, который вы поймали.
Что проверяют: STAR + техническая конкретика: как локализовали (логи, отладчик, бинарный поиск по коммитам), что оказалось причиной, какой тест добавили.
Как вы разбираетесь в чужом коде большого проекта?
Что проверяют: От точки входа по стеку вызовов, чтение тестов как документации, маленькие правки для проверки гипотез. Проверяют самостоятельность.
Почему Python и что вы будете делать, если понадобится другой язык?
Что проверяют: Честная мотивация + готовность учиться: язык — инструмент, фундаментальные навыки переносимы.
Как проходить собеседование: советы
- Live-coding: рассуждайте вслух и начинайте с простого рабочего решения — оптимизация потом, если попросят.
- На вопросы «как устроено внутри» честно обозначайте границу знаний и рассуждайте от первых принципов.
- Держите под рукой 1–2 пет-проекта с кодом на GitHub — конкретный код перевешивает абстрактные ответы.
- После технической части будут вопросы по вашим же ответам — не называйте технологии, которые не готовы обсуждать.
Подготовка и вакансии
- Гайд по профессии: Python-разработчик — навыки, зарплаты, с чего начать
- Дорожная карта Python-разработчика — план обучения по шагам
- Бесплатный курс — практика с проверкой заданий от ИИ
- Живые вакансии Python-разработчика из Telegram — откликайтесь после подготовки
- Проверить совместимость резюме с вакансией перед откликом