Перевод статьи: Hire Python Developers: Interview Questions, Tips, and Advice — SteelKiwi 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
- Приукрашивать историю вашей компании и её преимущества