Публичное собеседование: Python-программист [Хекслет]
Публичное тренировочное интервью начинающего Python-разработчика. Разбираются опыт кандидата, подготовка к поиску работы, архитектурные подходы, внутреннее устройство коллекций Python, генераторы и задача на сравнение файловых снимков.
- Опубликовано на YouTube:
- Просмотры на YouTube: 19,7 тыс.
- Лайки на YouTube: 279
Таймлайн
Коротко о видео
Это публичное учебное собеседование Hexlet на позицию Python-разработчика: Николай Марков задаёт вопросы кандидату Ефиму Чашину и по ходу объясняет ожидаемую логику ответов. Кандидат рассказывает о переходе из строительства и проектного менеджмента в разработку, обучении и выборе backend-направления, после чего отвечает на вопросы о GitHub, Clean Architecture, DevOps, структурах данных Python, генераторах и алгоритмической задаче. В финале интервьюер отмечает, что у кандидата есть понимание ряда тем, но рекомендует точнее использовать терминологию и глубже готовиться по технологиям, указанным в резюме.
Затронутые темы
Что взять на заметку
- Для собеседования полезно иметь GitHub с проектами: интервьюер может обсудить по коду решения, компромиссы и ход разработки; проект не обязан быть «идеальным продакшеном».
- Не стоит подробно указывать технологию или подход в резюме, если нельзя объяснить его базовые принципы и границы применения; в интервью это станет предметом уточняющих вопросов.
- Нужно различать массив, связный список, Python list, dict и set: Python list реализован как динамический массив, а dict и set опираются на хеш-таблицы.
- Для сравнения двух неупорядоченных файлов со списками путей разумно поместить строки первого файла в set, проходить второй файл и удалять совпадения; новые строки фиксировать отдельно, а оставшиеся в set будут удалёнными.
- В Clean Architecture важно не смешивать бизнес-логику с инфраструктурой и не допускать протекания абстракций, но сам кандидат считает, что подход требует широкого понимания сразу и сложен для постепенного освоения.
- На интервью полезно рассуждать вслух, сначала предложить минимальное работающее решение, а затем улучшать его; честный ответ «не знаю» допустим, если обозначена граница знаний.
- Генераторы и generator expressions стоит объяснять через ленивые вычисления: они вычисляют следующий элемент по запросу и не хранят всю последовательность в памяти, в отличие от списка.