Вернуться в видеотеку

Студент унаследовал класс Автомобиль от класса Колесо и уронил прод?? / Техсобес Junior Python Dev

Длинный mock-собес для Junior Python-разработчика с разбором архитектуры, ООП и конкурентного исполнения Python. Интервьюер не только задаёт вопросы, но и объясняет нераскрытые кандидатом концепции на примерах.

Источник: Python Mentor

Открыть на YouTube

Таймлайн

Коротко о видео

Это тестовое (mock) техническое собеседование на позицию Junior Python-разработчика: кандидат рассказывает о самообучении, первом месяце работы и опыте с Python-инструментами. Основная часть посвящена причинам производительности NumPy и низкоуровневых реализаций, выбору Django или FastAPI, Active Record, Onion Architecture, SOLID, DIP и Dependency Injection. Затем собеседующие подробно разбирают ООП-моделирование через наследование, интерфейсы, композицию и агрегацию, а в конце — asyncio, гонки корутин, CPU-bound задачи и GIL. В финале интервьюер дал кандидату положительную оценку именно как junior по умению рассуждать, одновременно указав темы для дальнейшего изучения.

Затронутые темы

Что взять на заметку

  • Подготовь объяснение, почему численные вычисления обычно выносят в NumPy и другие расширения: важны не только удобные API, но и нативный код, представление данных в памяти и использование кэша процессора.
  • Умей обосновать выбор Django или FastAPI через требования проекта: скорость разработки, встроенные возможности, необходимость SSR, границы микросервиса и ожидаемую нагрузку.
  • Различай Active Record и подходы с отделённой доменной моделью: при Active Record бизнес-логика теснее связана с ORM и хранением, а Onion/Clean Architecture стремится изолировать домен от инфраструктуры.
  • Не смешивай Dependency Inversion и Dependency Injection: DIP задаёт зависимость от абстракций, а DI доставляет конкретную реализацию в рантайме.
  • Для ООП различай отношения is-a и has-a: наследование подходит для обобщения, а автомобиль и колёса стоит связывать композицией или агрегацией; общий контракт реализаций задаётся интерфейсом.
  • Разберись в гонках между корутинами: один поток event loop не исключает race condition, если выполнение переключается внутри неатомарной операции; для критических участков применяют async-примитивы синхронизации.
  • CPU-bound вычисления внутри async-обработчика FastAPI блокируют event loop; перенос в поток не даёт полноценного параллелизма при GIL, поэтому обсуждается использование процессов.

Рекомендуем посмотреть