Подготовка по специальности

Собеседование Python-разработчика:
вопросы и ответы.

Python-интервью проверяет три слоя: сам язык (структуры данных, GIL, генераторы), веб-фреймворк (Django или FastAPI) и общеинженерную базу — базы данных, асинхронность, тесты. Ниже — вопросы, которые встречаются почти в каждом интервью.

Обновлено 5 августа 2026 г.10 вопросов с разбором
Короткий ответ

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

01 · Процесс

Как обычно проходит интервью

Обычно: скрининг, техническая секция по языку и фреймворку, live coding, для middle и выше — архитектурная секция. В ML- и данных-командах добавляются вопросы про pandas, пайплайны и работу с данными; в веб-командах — про Django ORM, миграции и Celery.

02 · Темы

Что нужно знать перед интервью

Язык

  • list, dict, set: сложность операций, изменяемость
  • GIL и его последствия для потоков
  • генераторы, итераторы, ленивые вычисления
  • декораторы, контекстные менеджеры
  • типизация: type hints, mypy, dataclasses и Pydantic

Асинхронность и параллелизм

  • asyncio: event loop, корутины, gather
  • threading против multiprocessing против asyncio
  • когда async ускоряет, а когда бесполезен
  • Celery и фоновые задачи

Веб и данные

  • Django ORM: select_related, prefetch_related, N+1
  • FastAPI: зависимости, Pydantic-валидация
  • миграции и их обратная совместимость
  • pytest: фикстуры, параметризация, моки

03 · Вопросы

Реальные вопросы с разбором ответов

Пометка у вопроса — как часто он встречается на реальных интервью: почти всегда часто иногда

01. Что такое GIL и как он влияет на многопоточность?

почти всегда

Глобальная блокировка интерпретатора: в один момент байткод выполняет один поток. Потоки помогают на I/O-нагрузке, но не на CPU. Для CPU — multiprocessing или нативные расширения. Упомяните, что в новых версиях Python идёт работа над free-threaded режимом.

02. Чем генератор отличается от списка и когда он выигрывает?

почти всегда

Генератор вычисляет элементы лениво и не держит всё в памяти. Выигрывает на больших или бесконечных последовательностях и конвейерах обработки. Покажите синтаксис: выражение-генератор против list comprehension, yield в функции.

03. Изменяемый аргумент по умолчанию: в чём ловушка?

почти всегда

def f(items=[]) создаёт список один раз при определении функции — состояние протекает между вызовами. Правильно: None по умолчанию и создание внутри. Это вопрос-маркер: показывает, понимаете ли вы модель выполнения Python.

04. Как работает декоратор? Напишите декоратор с параметром.

почти всегда

Функция, принимающая функцию и возвращающая обёртку. С параметром — три уровня вложенности: фабрика → декоратор → обёртка. Не забудьте functools.wraps, иначе потеряются имя и докстринг — интервьюеры это проверяют.

05. asyncio против потоков: когда что выбрать?

часто

Оба решают I/O-ожидание. asyncio — много одновременных соединений, явные точки переключения, но весь стек должен быть асинхронным. Потоки — когда есть блокирующие библиотеки. CPU-задачи — только процессы. Ответ должен показывать понимание типа нагрузки.

06. Что такое N+1 в Django ORM и как чинить?

часто

Цикл по queryset с обращением к связанному объекту порождает запрос на каждую итерацию. Лечение: select_related для ForeignKey (JOIN), prefetch_related для ManyToMany (второй запрос). Инструменты обнаружения: django-debug-toolbar, логирование запросов.

07. Как Pydantic используется в FastAPI?

часто

Модели описывают схему запроса и ответа: валидация на входе, сериализация на выходе, автоматическая OpenAPI-документация. Упомяните валидаторы полей и разницу между моделью домена и схемой API — их смешение в один класс со временем мешает.

08. Как вы тестируете код с внешними зависимостями?

часто

Моки и фикстуры pytest для юнит-тестов, тестовая БД или контейнер для интеграционных. Скажите про границу: мокать чужой API — да, мокать собственную БД во всех тестах — теряется смысл. Параметризация покрывает граничные случаи дёшево.

09. Celery: как устроена задача и что бывает при сбое воркера?

иногда

Задача сериализуется в брокер (Redis, RabbitMQ), воркер забирает и исполняет. При сбое: настройки acks_late и ретраев решают, потеряется задача или выполнится повторно. Отсюда обязательный вывод — задачи должны быть идемпотентными.

10. Поведенческий: расскажите про проект, которым гордитесь.

почти всегда

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

04 · Практика

Live coding: типичные задачи

Частые форматы: обработка строк и словарей, парсинг лога с агрегацией, написать декоратор или контекстный менеджер, задача на генераторы, небольшой эндпоинт на FastAPI с валидацией.

Пишите идиоматично: comprehensions вместо ручных циклов там, где читаемо, стандартная библиотека (collections, itertools) вместо самописных велосипедов. Проговаривайте сложность решений — это ожидается даже без формальной алгоритмической секции.

Отвечайте из своего опыта. Подсказки, шпаргалки и AI-инструменты работают только как опора для собственной мысли: выдуманный опыт раскрывается первым же уточняющим вопросом.

Общая подготовка — резюме, техника, звук и демонстрация экрана — разобрана в чек-листе подготовки к онлайн-собеседованию. Как осознанно использовать AI-подсказки во время звонка — в гайде «Как использовать AI на собеседовании».

05 · FAQ

Частые вопросы

Django или FastAPI — что учить для собеседований?

Смотрите на вакансии, которые вам интересны: в крупных продуктах и легаси чаще Django, в новых сервисах и микросервисах — FastAPI. Основы переносимы: ORM и SQL, валидация, миграции, тесты. Уверенное знание одного фреймворка ценнее поверхностного знания двух.

Спрашивают ли алгоритмы у Python-разработчиков?

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

Что отвечать про версии Python?

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

Тренировка перед интервью

Репетируйте ответы вслух с Mira

Mira слышит вопрос и подсказывает опору для ответа прямо во время звонка. 30 минут бесплатно каждый месяц, банковская карта не нужна.

Скачать Mira