Вернуться в видеотеку#22 Как Стёпа собес на Python / Django / React проходил
Разбор технического Python-собеседования на Fullstack-позицию с вопросами о конкурентности, структурах данных, семантике объектов и ООП. Автор дополняет ответы кандидата и отмечает отдельные неточности.
- Направление
- Backend
- Формат
- Разбор интервью
- Грейд
- Middle
- Длительность
- 20 мин
Коротко о видео
Автор разбирает записанное собеседование Степана на заявленную позицию Mid-level Fullstack-разработчика: кандидат отвечает на вопросы, а автор поясняет и иногда оспаривает ответы. Основные темы — GIL, потоки и asyncio в Python, хеш-таблицы и словари, изменяемость объектов и передачa аргументов, генераторы, итераторы и ООП-протоколы. В конце автор сообщает, что продолжение с вопросами по Django и React вынесено во вторую часть.
Затронутые темы
Что взять на заметку
- Для собеседования стоит объяснять GIL применительно к CPython и разделять I/O-bound-задачи, CPU-bound-задачи, asyncio, потоки и процессы; тезисы из ролика о превосходстве asyncio над потоками требуют привязки к типу нагрузки.
- Ключ словаря должен быть хешируемым; полезно уметь связно объяснить роли __hash__ и __eq__, коллизии и то, что поиск в dict и set обычно имеет среднюю сложность O(1).
- Нужно различать изменение объекта по ссылке и переназначение локального имени в функции, а также уверенно разбирать вывод примеров с изменяемыми списками и словарями.
- Не следует использовать изменяемый объект, например список, в качестве значения параметра по умолчанию: он создаётся один раз и сохраняет изменения между вызовами.
- Полезно подготовить точные определения ленивых вычислений, генераторов и итераторов, включая протокол __iter__ и __next__.
- Стоит различать экземплярные методы, @classmethod и @staticmethod, а также знать назначение __new__, dataclasses, Pydantic и контекстных менеджеров с __enter__ и __exit__.
- В ролике используются задачи на предсказание вывода кода; для подготовки важнее проговаривать причину результата, чем только называть ответ.