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

Публичное собеседование: Python-программист [Хекслет]

Публичное тренировочное интервью начинающего Python-разработчика. Разбираются опыт кандидата, подготовка к поиску работы, архитектурные подходы, внутреннее устройство коллекций Python, генераторы и задача на сравнение файловых снимков.

Источник: Hexlet

Открыть на YouTube

Таймлайн

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

Это публичное учебное собеседование Hexlet на позицию Python-разработчика: Николай Марков задаёт вопросы кандидату Ефиму Чашину и по ходу объясняет ожидаемую логику ответов. Кандидат рассказывает о переходе из строительства и проектного менеджмента в разработку, обучении и выборе backend-направления, после чего отвечает на вопросы о GitHub, Clean Architecture, DevOps, структурах данных Python, генераторах и алгоритмической задаче. В финале интервьюер отмечает, что у кандидата есть понимание ряда тем, но рекомендует точнее использовать терминологию и глубже готовиться по технологиям, указанным в резюме.

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

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

  • Для собеседования полезно иметь GitHub с проектами: интервьюер может обсудить по коду решения, компромиссы и ход разработки; проект не обязан быть «идеальным продакшеном».
  • Не стоит подробно указывать технологию или подход в резюме, если нельзя объяснить его базовые принципы и границы применения; в интервью это станет предметом уточняющих вопросов.
  • Нужно различать массив, связный список, Python list, dict и set: Python list реализован как динамический массив, а dict и set опираются на хеш-таблицы.
  • Для сравнения двух неупорядоченных файлов со списками путей разумно поместить строки первого файла в set, проходить второй файл и удалять совпадения; новые строки фиксировать отдельно, а оставшиеся в set будут удалёнными.
  • В Clean Architecture важно не смешивать бизнес-логику с инфраструктурой и не допускать протекания абстракций, но сам кандидат считает, что подход требует широкого понимания сразу и сложен для постепенного освоения.
  • На интервью полезно рассуждать вслух, сначала предложить минимальное работающее решение, а затем улучшать его; честный ответ «не знаю» допустим, если обозначена граница знаний.
  • Генераторы и generator expressions стоит объяснять через ленивые вычисления: они вычисляют следующий элемент по запросу и не хранят всю последовательность в памяти, в отличие от списка.

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