Python-интервью: что спрашивают и как успешно ответить

Собрали рекомендации, которые помогут подготовиться к Python-интервью, даже если оно у вас первое в жизни.

302 открытий988 показов
Python-интервью: что спрашивают и как успешно ответить

Чтобы попасть на действительно интересный проект, Python-разработчику нужно пройти техническое интервью, где потенциальный работодатель оценит его знания и навыки владения языком. Большинство таких интервью проходят по одному сценарию. В этой статье собрали рекомендации, которые помогут подготовиться к Python-интервью, даже если оно у вас первое в жизни.

Начало интервью

Первое, о чем вас попросят на собеседовании, — представиться и рассказать о себе. Чтобы чувствовать себя увереннее, 5-минутную самопрезентацию можно заранее подготовить и выучить наизусть.

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

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

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

Вопросы про Python

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

Типы данных

  • Какие типы данных бывают в Python? 
  • Чем отличаются операторы == и is?
  • Как в Python передаются аргументы функций? 
  • Что такое args и kwargs? 
  • Что такое аннотации типов и зачем они нужны? 
  • Что такое лямбда-функция и когда мы ее используем? 
  • Что такое тернарный оператор и как с его помощью записать выражение?
  • Что такое виртуальное окружение? Зачем оно нужно? 
  • В чем сложность основных операций в таблицах?

Классы

  • Что такое self в классах?
  • Зачем нужен метод super в классе?
  • Как в Python реализуются методы объекта, класса и статические методы? Чем они отличаются?
  • В Python нет модификаторов доступа. Как реализуются public, private и protected методы и атрибуты?
  • Чем отличается атрибут класса от атрибута объекта?
  • Что такое декораторы? Зачем они нужны? Как реализовать в Python простой декоратор и декоратор с пробросом аргумента?
  • Что такое абстрактный класс? Зачем они нужны? Как они реализуются в Python?
  • Что такое метаклассы? Для чего они используются? Какие методы там используются? 
  • Что такое объектно-ориентированное программирование? Каковы его базовые принципы?
  • Что такое миксины?
  • Что такое diamond problem? Что такое MRO? Чем отличается MRO2 от MRO3? Зачем оно нужно?
  • Что такое итератор? Что такое итерируемый объект?
  • Что такое генератор?
  • Что такое корутина? 
  • Что такое async и await?

Тестирование

  • Какие модули для тестирования есть в Python?
  • Расскажите про Unittest и Pytest.
  • Что такое mock? Зачем он нужен?

Базы данных

  • Какие NoSQL базы данных вы знаете? С какими работали?
  • Какие SQL базы данных вы знаете? С какими работали?
  • Что такое первичный ключ (PK) и внешний ключ (FK)?
  • Какие существуют типы связей? Как реализуется связь «много ко многим»?
  • Зачем нужны индексы?
  • Зачем нужны триггеры?
  • Что такое транзакция?

Инструменты

  • Что такое Git? Какие команды Git вы знаете?
  • Вы знакомы с AWS?
  • Знаете, что такое Docker?

Лучшие практики

  • Какие лучшие практики программирования вы знаете? 
  • Какие вы знаете паттерны проектирования? Какие использовали?

Практические задачи

На Python-интервью вам могут предложить практическую задачу. Как правило, речь о написании 50–100 строк кода, решающих несложную проблему.

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

Может также случиться, что на собеседовании вас попросят решить довольно трудную олимпиадную задачу, чтобы проверить ваше логическое мышление. Это не повсеместная практика, но всё же полезно отработать типовые задачи вроде факториала, bubble sort и чисел Фибоначчи.

Реальные примеры можно посмотреть здесь — в статье собраны задачи с собеседований в Amazon.

Как подготовиться

Внимательно изучите вакансию, на которую претендуете

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

Пройдитесь по публичным спискам вопросов и задач

В интернете множество публикаций, обобщающих опыт разработчиков на Python, проходивших и проводивших технические собеседования. Списки вопросов с развернутыми правильными ответами и задач с решениями можно найти, например, на GitHub.

Посмотрите мок-интервью

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

Следите за новыми постами
Следите за новыми постами по любимым темам
302 открытий988 показов