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

Сисадмин стал уверенным Python разработчиком? Или есть нюансы...? / Техсобес Junior Python Developer

Разбор мок-собеседования Junior Python Developer с лайвкодингом по рефакторингу и подробным обсуждением ООП, конкурентности и производительности Python. В финале кандидату объясняют сильные стороны и направления практики.

Источник: Python Mentor

Открыть на YouTube

Таймлайн

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

Это тестовое (mock) техническое собеседование на позицию Junior Python Developer: кандидат с опытом системного администрирования рассказывает о переходе в Python, автоматизации задач и работе с Django. Основная часть посвящена рефакторингу, архитектуре и лайвкодингу: класс форматирования чисел перерабатывают с передачей функций-форматтеров по паттерну «Стратегия», затем обсуждают функциональную альтернативу с замыканиями. В конце разбирают ООП, SOLID, фоновые задачи без Celery, потоки, асинхронный I/O и причины, по которым Python уступает C в научных вычислениях, после чего интервьюеры дают кандидату развивающий фидбек.

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

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

  • Разделяйте рефакторинг, оптимизацию производительности и исправление архитектуры: если поведение сохранено, решение о доработке зависит от ценности изменения, стоимости и стадии MVP.
  • Для расширяемого форматирования не нужно добавлять ветви в один метод: передавайте извне функцию-форматтер с контрактом «число → строка»; для поведения по умолчанию используйте identity-функцию.
  • Паттерн «Стратегия» в Python можно реализовать обычными функциями, потому что функции — объекты первого класса; полезно также понимать замыкания, каррирование и связь этой модели с декораторами.
  • Проверяйте SRP через акторов, которым нужны изменения: в примере со Student начисление стипендии и назначение дат сессии должны находиться у бухгалтерии и деканата, а не у сущности студента.
  • Не создавайте отдельный поток на каждый HTTP-запрос для фоновой отправки email: при высокой нагрузке нужен потокобезопасный queue и ограниченный thread pool.
  • Для I/O-задач GIL не является главным препятствием, но важно различать потоки, процессы и асинхронность; неблокирующие сокеты и мультиплексирование I/O позволяют ждать несколько соединений без отдельного потока на каждое.
  • Для подготовки к собеседованиям полезны повторяемые задачи с быстрой обратной связью и подходящей сложностью: после решения сравнивать подход с чужими решениями и сверять предварительную оценку времени с фактической.

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