Все профессии

Подготовка к собеседованию

Backend Python: вопросы и ответы на собеседовании

Подборка вопросов по Python, FastAPI или Django, асинхронности, ORM и проектированию API.

Python

4 вопросов
Чем список отличается от кортежа?junior

Список изменяемый и удобен для коллекций, которые нужно менять. Кортеж неизменяем, может быть ключом словаря при хешируемых элементах и хорошо выражает фиксированную структуру.

Что такое генератор?junior

Генератор вычисляет элементы лениво через yield и хранит только текущее состояние. Это экономит память при обработке больших файлов или потоков данных.

Что такое GIL?middle

В CPython Global Interpreter Lock не позволяет нескольким потокам одновременно выполнять байткод Python. Потоки всё равно полезны для I/O, а CPU-bound задачи выносят в процессы или native-код.

Зачем нужны type hints?junior

Аннотации делают контракты функций явными и помогают IDE, mypy и ревью. Они не заменяют runtime-валидацию внешних данных.

Web-фреймворки

3 вопросов
Как организовать валидацию входных данных?middle

Контракт описывают схемой, например Pydantic, валидируют на границе приложения и возвращают единый ответ 4xx. В бизнес-слое не стоит повторять те же проверки без необходимости.

Когда выбрать Django, а когда FastAPI?middle

Django даёт полноценную платформу с ORM, админкой и готовыми модулями. FastAPI удобен для типизированных API, высокой скорости разработки и асинхронных сервисов с небольшой предметной областью.

Как организовать конфигурацию приложения?middle

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

Асинхронность и данные

3 вопросов
Что блокирует asyncio?middle

Синхронный CPU-код и блокирующие вызовы вроде обычного requests внутри async-функции. Их выносят в executor, заменяют async-библиотекой или запускают в отдельном процессе.

Как оптимизировать медленный запрос ORM?senior

Смотрят SQL и план выполнения, добавляют подходящие индексы, убирают N+1 через join или prefetch, ограничивают поля и объём выборки. Оптимизацию подтверждают измерением.

Как закрывать ресурсы при исключении?junior

Используют контекстные менеджеры with или async with. Освобождение соединений, файлов и временных объектов должно происходить даже при отмене задачи.

Как использовать этот список

Сначала ответьте своими словами, затем раскройте пояснение. Отдельно подготовьте примеры из проектов: на собеседовании важно не только знать определение, но и объяснить, где вы применяли подход на практике.

Посмотреть другие профессии →