Вопросы на собеседовании по Python

Автор: Aaron Cao · Обновлено

Ждите три уровня: механику языка, то есть изменяемость, генераторы и декораторы; поведение среды выполнения, прежде всего GIL; и прикладной код по структурам данных. Чаще отказывают за слабое объяснение причин, а не за неверный синтаксис.

Вопросы, которые возвращаются снова и снова

Проработать список из двухсот вопросов по Python кажется продуктивным и редко меняет исход собеседования. Этот раздел сужает поле до тех немногих вопросов, что повторяются на телефонных отборах и технических этапах, и показывает, из чего состоит сильный ответ. Основной сигнал несёт небольшое число возможностей языка.

  • Изменяемые значения аргументов по умолчанию. Почему def f(x=[]) накапливает значения между вызовами? Значения по умолчанию вычисляются один раз, при определении функции, а не при каждом вызове.
  • Генераторы против списков. Когда yield лучше построения списка? Когда последовательность велика или когда чтение можно прервать раньше.
  • Декораторы. Что на самом деле возвращает декоратор и зачем обёртке нужен functools.wraps?
  • GIL. Почему потоки, нагружающие процессор, не масштабируются в CPython и что использовать вместо них?
  • Поверхностное и глубокое копирование. Что ломается, когда вложенную структуру копируют срезом?
  • Идентичность против равенства. Почему проверка is на малых целых числах в консоли даёт обманчивый результат.

Что отличает зачёт от отказа

Два кандидата могут дать одинаково верное определение GIL, и дальше пройдёт только один. Разницу обычно создаёт второе предложение.

Бэкенд-инженера, проходившего собеседование на позицию уровня L5 в публичном облачном сервисе, спросили, почему его служба замедлялась под нагрузкой. Он назвал GIL, а затем продолжил: горячий путь занимался разбором JSON, поэтому потоки были неподходящим инструментом, и перенос этого этапа в пул процессов восстановил пропускную способность. Названное ограничение принесло частичный зачёт. Связь ограничения с решением принесла этап.

Стройте каждый ответ из трёх тактов: что возможность делает, зачем она существует и когда вы бы её избегали. Третий такт пропускают чаще всего, и именно он показывает зрелость суждения. Другие страницы про технические, поведенческие и проектировочные этапы собраны в разделе типы собеседований.

Как готовиться без зубрёжки

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

  • Запишите ответ на каждый повторяющийся вопрос тремя предложениями, затем произнесите его, не подглядывая.
  • Выберите две возможности, которыми пользуетесь ежедневно, и подготовьте по одному честному ограничению для каждой. Умение критиковать собственные инструменты читается как опыт.
  • Принесите одну реальную историю отладки, где поведение Python вас удивило и вы разобрались почему.
  • Прикладную половину тренируйте отдельно: словари, множества, сортировка с функцией ключа и работа со строками покрывают большую долю отборов.

Если хотите пройти пробный круг с ИИ-интервьюером на время перед настоящим этапом, это на странице пробного собеседования.

Где ассистент помогает, а где нет

SubcueAI — нативное настольное приложение для macOS и Windows. Оно захватывает обе стороны разговора, расшифровывает речь в реальном времени и показывает опорную структуру на плавающем оверлее, который остаётся локальным на вашей машине, поэтому не подключается к встрече как участник или бот. Для этапа по Python полезный результат — это подсказка структуры, а не готовый ответ: конкретика должна быть вашей, потому что следующий вопрос будет про тот код, который вы только что описали.

Честные ограничения важнее возможностей. Если вы демонстрируете экран, всё, что на этом экране, становится видимым. Если этап проходит на прокторинговой платформе оценки или на устройстве, управляемом компанией, ассистент неприменим. Установка и разрешения описаны на странице руководства.

Частые вопросы

Всё ещё спрашивают про GIL на собеседованиях по Python?

Да, и обычно как косвенный вопрос. Интервьюер хочет понять, отличаете ли вы задачу, нагружающую процессор, от задачи, ограниченной вводом-выводом, и выбираете ли соответственно потоки, процессы или асинхронность. Одно определение отвечает лишь на половину.

Сколько мелочей по Python нужно заучивать?

Меньше, чем кажется. Интервьюеры редко поощряют знание редко используемого синтаксиса; они поощряют верное рассуждение о поведении, которое вы можете объяснить. Глубина по тем возможностям, которыми вы пользуетесь, важнее широты по тем, которыми нет.

Входят ли задачи на код в собеседование по Python?

Обычно да. На большинстве отборов вопросы для обсуждения сочетаются с небольшой прикладной задачей, часто про словари, множества, сортировку или обработку строк. Проговаривать подход до набора кода ожидаемо, а молчание оценивается плохо.

Стоит ли признавать, что я не знаю ответа?

Да, а затем показать, как вы это выясните. Сказать, что вы не использовали возможность, и описать, как проверите её поведение, сильнее уверенной догадки, которую интервьюер немедленно поправит.

Можно ли использовать ИИ-ассистента на собеседовании по Python?

Это полностью зависит от формата и правил, на которые вы согласились. На прокторинговой платформе, при демонстрации экрана или на устройстве, управляемом компанией, он неприменим. Для тренировочных кругов, которые вы проводите сами, такого ограничения нет.

Похожие вопросы

← Подробнее: Типы собеседований