Подготовка по специальности
Собеседование Python-разработчика:
вопросы и ответы.
Python-интервью проверяет три слоя: сам язык (структуры данных, GIL, генераторы), веб-фреймворк (Django или FastAPI) и общеинженерную базу — базы данных, асинхронность, тесты. Ниже — вопросы, которые встречаются почти в каждом интервью.
Не пытайтесь выучить все ответы: интервьюеры проверяют понимание, а не память. Разберите темы ниже, прорешайте типичные вопросы вслух и свяжите каждый ответ с примером из собственного опыта.
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 на собеседовании».
05 · FAQ
Частые вопросы
Django или FastAPI — что учить для собеседований?
Смотрите на вакансии, которые вам интересны: в крупных продуктах и легаси чаще Django, в новых сервисах и микросервисах — FastAPI. Основы переносимы: ORM и SQL, валидация, миграции, тесты. Уверенное знание одного фреймворка ценнее поверхностного знания двух.
Спрашивают ли алгоритмы у Python-разработчиков?
Чаще спрашивают практические задачи на структуры данных: словари, множества, сортировки с ключом, генераторы. Понимание сложности операций обязательно: почему поиск в set быстрее, чем в списке. Полноценные алгоритмические секции — в основном в больших компаниях.
Что отвечать про версии Python?
Назовите версию, с которой работаете, и пару актуальных возможностей: pattern matching, улучшения типизации, ускорения интерпретатора в свежих релизах. Следить за релизами полезно, но глубина знания языка важнее знания списка новинок.
Тренировка перед интервью
Репетируйте ответы вслух с Mira
Mira слышит вопрос и подсказывает опору для ответа прямо во время звонка. 30 минут бесплатно каждый месяц, банковская карта не нужна.
Mira