Рубрики
Собеседования

Найм Python разработчиков: вопросы для собеседования, рекомендации и советы

Перевод статьи: Hire Python Developers: Interview Questions, Tips, and AdviceSteelKiwi Inc.

Вопросы, которые вы задаёте соискателям имеют большое значение в определении кто подходит вашей компании, а кто нет. Мы — компания, которая работает с Python уже 8 лет.

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

Что предшествует очному собеседованию

До собеседования придётся пройти множество этапов. В разных организациях процесс найма происходит по-разному. В Steelkiwi он делится так:

  • Проанализировать и определить требования для вакансии
  • Открыть вакансию
  • Просмотреть резюме
  • Провести телефонные интервью
  • Разослать тестовые задания
  • Провести очные технические собеседования

Каждый этап помогает нам сузить круг кандидатов, чтобы найти наиболее квалифицированных.

Основные критерии оценивания разработчиков Python и Django — их навыки, образование и опыт. Если требования в вакансии были чётко определены, это поможет привлечь подходящих соискателей и позволит кандидатам понять, подходят ли они на эту должность.

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

Как только мы определились с лучшими претендентами, мы переходим к очным собеседованиям. Этот тип собеседования очень важен, поскольку резюме, телефонное интервью и тестовое задание не дают полной картины того, кем является соискатель. Личное собеседование, как последний этап процесса найма, помогает завершить картину и найти лучшего претендента на вашу позицию Python/Django. Мы в Steelkiwi оцениваем и soft skills (гибкие навыки), и технические, чтобы определить, подходит ли кандидат на нашу позицию. Ниже мы изложим типовые вопросы для собеседования, а также то, что делать стоит, а чего избегать.

Оценка soft skills

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

Мы в Steelkiwi при найме обращаем внимание на следующие soft skills:

  • Командная работа
  • Коммуникативность
  • Решение проблем
  • Ответственность и планирование
  • Мотивация

В оценке soft skills нет универсального подхода. В этом деле мы считаем лучшей методику STAR. Задаваемые вопросы являются поведенческими, поскольку проявляют то, как человек бы себя вёл в определённых ситуациях, а также его образ мышления.

Situation (Ситуация) → В чём состояла ситуация? Каков был опыт и вовлечённость собеседуемого?

Task (Задача) → Какие цели поставил перед собой собеседуемый?

Action (Действие) → Что конкретно сделал собеседуемый?

Result (Результат) → К чему это привело собеседуемого? Каков был результат?

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

Личностное качествоЗначениеВопросы, которые мы задаём для оценки навыка
Командная работаСпособность активно вносить вклад в достижение целей команды, даже если эти цели идут вразрез с личными интересами и требуют ставить интересы команды выше своих при принятии решенийВы предпочитаете работать в команде или в одиночку? Что вы делаете с разными мнениями, взглядами и конфликтными ситуациями? Расскажите об одном случае, когда вам пришлось столкнуться с конфликтом на работе. Как вы его разрешили?
КоммуникативностьСпособность взаимодействовать с другими и выражать мысли и идеи последовательно и понятноЧто бы вы сделали, если бы ваш менеджер по продукту не предоставил ясных указаний по поводу нового проекта? Расскажите, были ли у вас проблемы в общении с коллегами?
Ответственность и планированиеСпособность брать на себя ответственность за работу, качество и соблюдение сроковЧто вы делаете, если не успеваете в срок? Как вы распределяете своё время в условиях сжатых сроков для проекта? Как вы распределяете своё время, когда у вас его много?
Решение проблемСпособность мыслить самостоятельно, обозначать и понимать проблему, видеть логические связи и анализировать возможные факторы, которые имеют место быть в этой проблемеРасскажите о случае, когда вы потерпели неуспех на работе. Почему это произошло и как вы с этим справились? Расскажите мне о случае, когда вам пришлось делать критически важный выбор без достаточного количества исходной информации и деталей. Как вы приняли решение, что предпринять? Что вы могли сделать по-другому? Что вы могли улучшить в данной ситуации?
МотивацияЖелание получать новые навыки и внедрять новые технологии, способность эффективно работать без постоянного наблюденияПочему вы выбрали разработку на Python как вектор развития? Что заставляет вас работать эффективно? Что может заставить вас уволиться?

Технические навыки: лучшие вопросы по Python и Django для собеседования

Хорошо продуманное техническое собеседование может помочь вам выяснить истинный уровень технической квалификации кандидата. Количество вопросов может отличаться. Иногда достаточно двух-трёх вопросов, чтобы оценить технические навыки претендента, иногда нужно задать до 15 или 20 вопросов. Наш совет: начните с базовых вопросов по Python, а потом постепенно подходите к продвинутым вопросам по Django.

Ниже — список из некоторых лучших вопросов, которые мы задаём на собеседованиях по Python и Django. Они не универсальны. Мы советуем вам создать собственные вопросы, основываясь на нужном вам уровне подготовки.

Список возможных вопросов по Python и фреймворку Django

  • Что такое стандартная библиотека Python? Какие её модули являются самыми полезными?
  • Какие особенности наследования есть в Python?
  • Что такое MRO (порядок разрешения методов)?
  • Как работает Django?
  • Объясните паттерн MVC в Django. Что необычного в модели MVC в Django?
  • Какие ключевые инструменты доступны в Django?
  • Как в Django обрабатываются запросы и ответы?
  • Какие базы данных поддерживает Django?
  • Как создать базу данных в Django?
  • Для чего Django использует классы-наследники базового класса Field?
  • Какую ORM поставляет Django по умолчанию?
  • Какие способы оптимизации запросов к базе данных через ORM Django вы знаете?
  • Как кастомизировать интерфейс администратора?
  • Что такое Django-admin.py и manage.py? В чём разница между ними?
  • Как организовать статические файлы в Django?
  • Какие особенности наследования есть в Django?
  • Какие техники кэширования можно использовать для улучшения производительности Django?
  • Какая командная строка используется для загрузки данных в Django?
  • Для чего нужны сессии? Каково их внутреннее устройство?
  • Что такое сигналы Django? Каковы их ключевые компоненты?
  • Как вы решаете, когда лучше использовать готовые пакеты, когда их оптимизировать, а когда писать код с нуля?

Но в технической части собеседования должны быть не только теоретические вопросы. Мы настоятельно рекомендуем включить какие-нибудь практические задачи по Python. Вот что говорит по этому поводу один из наших собеседующих по Python и Django Владимир Манушко:

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

Некоторые практические задания, которые мы даём на собеседованиях по Python и Django, включают в себя оптимизацию кода, генераторные выражения, правила валидации и сериализацию.

Советы по тому, как эффективно собеседовать разработчиков на Python и Django: что стоит делать и чего нельзя делать ни в коем случае.

Ниже мы выделяем ключевые правила собеседования разработчиков на Python и Django.

Что нужно делать:

  • Подготовиться и спланировать вопросы заранее
  • Оставить специфические вопросы по Python и Django техническому консультанту, если вы не являетесь разработчиком
  • Задавать поведенческие вопросы
  • Задавать конкретные вопросы и получать конкретные ответы
  • Включить практические задачи

Что НЕ нужно делать:

  • Опускать вопросы по оценке soft skills
  • Приукрашивать историю вашей компании и её преимущества