Что спрашивают на Python-собеседовании, как отвечать про GIL, asyncio и типизацию и как отрепетировать разговор с ИИ-тренером.
Python-собеседование проверяет не список библиотек, а понимание того, как язык устроен под капотом. Кандидат, который знает синтаксис, но не может объяснить, почему его код тормозит на сто тысяч записей, проигрывает тому, кто понимает модель исполнения.
| Этап | Что проверяют |
|---|---|
| Скрининг | опыт, стек, ожидания по деньгам |
| Теория языка | GIL, память, типизация, итераторы |
| Live coding | как пишете и рассуждаете вслух |
| Архитектура / системы | как проектируете сервис, БД, очереди |
Global Interpreter Lock не даёт нескольким потокам одновременно исполнять байткод. Отсюда практический вывод: потоки полезны для I/O, а для CPU-нагрузки нужны процессы или вынос в отдельный сервис. Ответ без этого вывода считается поверхностным.
Ждут не определений, а выбора инструмента под задачу: тысячи одновременных сетевых запросов — asyncio; тяжёлые вычисления — multiprocessing; блокирующие библиотеки — пул потоков. Умение объяснить выбор — главное.
Аннотации типов не влияют на рантайм, но ловят ошибки при проверке. Часто спрашивают про `Optional`, `Union`, `Protocol` и generics: зачем нужны и как применяете в проекте.
Классика: изменяемый аргумент по умолчанию (`def f(x, y=[])`), копирование по ссылке против `deepcopy`, хешируемость ключей словаря. Здесь проверяют, ловили ли вы такие баги в реальном коде.
Разница между списком и генератором, ленивые вычисления, `yield`, зачем нужны `itertools`. Обычно дают задачу: обработать большой файл, не загружая его в память.
По вашему стеку: Django ORM против сырого SQL, N+1 запросов, транзакции, индексы. Для FastAPI — зависимости, валидация Pydantic, асинхронные эндпоинты.
pytest, фикстуры, моки, покрытие. Docker, миграции, CI. Проверяют, доводите ли вы код до продакшена, а не только до «работает локально».
Работает структура: тезис → обоснование → пример → ограничение.
«Для этой задачи я бы взял asyncio. Причина — нагрузка сетевая, а не вычислительная, и потоки здесь только добавят переключений. На прошлом проекте так убрали блокировки при вызове внешнего API. Ограничение: если внутри есть синхронная библиотека, она заблокирует цикл событий — придётся выносить в executor».
Последняя фраза — то, что отличает практика: он знает, где его решение ломается.
Неделя по 30–40 минут при наличии практики: разобрать семь тем выше, проговорить ответы вслух и один раз пройти полный диалог. Если какая-то тема (например, asyncio) для вас тёмная — сначала закройте её, иначе структура ответа не спасёт.
Да, но в разных пропорциях. Продуктовые команды чаще дают практические задачи (оптимизировать запрос, разобрать пайплайн), крупные tech-компании — классические задачи на массивы, строки, хеш-таблицы. Формат стоит уточнить у рекрутера.
Скажите прямо и покажите ход мысли: с чем это похоже, как бы проверили. Интервьюер почти всегда отличает «не знаю, но думаю» от выдумки, а второе — прямой минус.
Нет. Спрашивают обычно по тому стеку, который указан в вакансии. Но понимание принципов (роутинг, зависимости, работа с БД) переносится между фреймворками, и это ценят выше знания конкретного API.
Диапазоном, а не одним числом, с опорой на рынок. Подробный разбор — в статье переговоры о зарплате.
Опишите ситуацию одной фразой — «собеседование Python-разработчик, FastAPI, четыре года опыта» — и пройдите диалог в тренажёре. Тренер задаст вопросы по вашей роли и разберёт ответы после разговора.
Пройдите по семи темам и отметьте те, где ответ не складывается. Затем прогоните полный диалог: откройте HintMeTalk AI, режим «Тренер», опишите вакансию одной фразой. После разбора видно, какие ответы провисают — обычно это два-три из десяти.
Общая подготовка к любому собеседованию — в статье подготовка к собеседованию. Собеседование на фронтенд разобрано отдельно.
Потренируйте этот навык в HintMeTalk AI
Открыть в приложении