В отличие от Майкл Скотт Выше я не менеджер.
И все же я работал в качестве инженера Python/Django Backend более десяти лет. Это ставит меня в «старшую» роль в любой команде, которую я обычно присоединяюсь.
В результате я участвую в процессе найма. Я Искать кого-то, кто тогда стал бы командой.
Этот пост о вопросах, которые я задаю проспективным инженером Backend Python/Django. Перспектива с 2+ лет опытом работы Python/Django Backend Development полный рабочий день.
Потенциальный инженер будет работать в Мой команда. С меня. Не для меня.
Таким образом, вопросы направлены на то, чтобы помочь мне ответить на фундаментальную « Я хотел бы работать с этим человеком? ” вопрос.
Ниже я прохожу через то, что я ищу в каждом вопросе. Обратите внимание, что в отличие от “HackeRrank” Стиль Оценка, эти вопросы ищут Качественный атрибуты.
Ответы не имеют совершенно правильного/неправильного ответа. Способ, в котором ответы кандидата важнее самого ответа.
Обновление 2021-06-06. Эти вопросы – Python/django-специфический Отказ Они намерены в центре обсуждения о конкретных знаниях и опыте Django. Я написал другое Скрипт интервью инженера Backend который является технологией агностической.
Самонантроль
Позволить кандидату пройти свою карьерную траекторию. У них есть глубоко в некоторые проекты, которые они гордятся тем, что были частью. Позвольте им расширяться по конкретным процессам/используемым инструментам.
Это даст вам свободные концы, чтобы связать вопросы ниже.
Q1. Как вы используете символ _ в Python?
Цель состоит в том, чтобы увидеть, как реагирует кандидат.
Среди правильных ответов:
- Используется в случае змеи (I.E. Функциональные имена и имена переменной)
- Используется для хранения функции возвращаемого значения, которое будет работать неиспользованно.
- Используется для «показать», что функция предназначена для использования в качестве «частной» функции.
Q1 Последующее наблюдение: в случае, если это «частная функция»
Последующие действия – это вопрос трюк:
Как Python обеспечивает частные свойства/функции?
Ответ: Это не.
Зонд кандидат, чтобы убедиться, что она знает, что она использует его, в Python.
Ищите честность в ответе кандидата. «Я не знаю» более чем приемлемо. Лучше, чем делать вещи.
Q2. Какие тестовые данные генерации данных вы использовали?
Обычно кандидат уступит тесты в резюме или во время собственного самоистро. Трудно иметь хорошие тесты без надлежащего управления тестовыми данными.
Это открытый законченный вопрос о том, как кандидат обрабатывается тестовые данные. Ответ демонстрирует, есть ли кандидат письменные тесты или нет. Ищите знакомство с инструментами в тестировании Python/Django.
Q2 Последующее наблюдение: Как улучшить модульные тесты скорости в Django?
Зрелое приложение – это то, что растет за пределами этого идеала «микросервис» или «боковой проект». По размеру и сложности один общий аспект – это тесты, занимающие больше времени.
Адам Джонсон написал целое Ускорить тесты Django Книга по теме. Который я полностью рекомендую.
Не ищите этот уровень детализации, хотя. Пара «быстрых способов» для улучшения скорости в порядке. Я низко висящий фрукт. Примеры:
- Избегайте использования приспособлений в тестах.
- Избегайте создания более тестовых данных, чем тест.
- Измените по умолчанию Django Password Hasher. И Т. Д.
То, как кандидат отвечает на это показывает свои «боевые шрамы» в написании тестов для приложений Django.
Также посмотрите на «быстрые хаки». Например, изменение испытаний для пробега против SQLite, а не скажем, Postgres или Mariadb. Это должно не быть одним из тех «быстрых способов».
Будьте готовы, особенно когда дело доходит до выделенного времени, обсудить любые разногласие. Не только в этом вопросе. Если кандидат не доходит до следующего раунда, они все еще что-то узнали.
Q3. Какие пакеты вы «несут» в ваших проектах Django?
Джангонавты имеют тенденцию иметь некоторые любимые рамки, которые они в конечном итоге используют во всех их проектах Django.
Популярные ответы включают DRF , Django-расширения , Anymail , Allauth и DJDT Отказ
Q3 Последующее наблюдение: Как вы решаете, использовать ли пакет или изобретать колесо?
Это снова открытый законченный вопрос. Цель состоит в том, чтобы увидеть опыт кандидата в принятии такого рода решения при построении проекта. Хорошие соображения включают в себя:
- На самом деле этот пакет соответствует корпусу использования? Или, по крайней мере, это очень близко к корпусу использования?
- Установить сложность установки, особенно учитывая архитектуру существующего применения. И другие установленные движущиеся части, которые могут хорошо играть с пакетом.
- Безопасность.
- Деятельность вокруг пакета на GitHub, то есть недавние комбиниты, участники, ответы на вопросы и т. Д.
Q4. Какие стандарты кода вы следуете за проектом Django? Инструменты?
В идеале любой из них упоминается: Pep 8 , flake8. , черный , Руководство по стилю Django , isort. .
Нет правильного ответа. Просто проверяю «осознание».
Имея в виду, например, что черный
Собственный стиль Django не совместимы на 100%. Особенности субъективны.
Ищите знакомство с инструментом или парой из них.
Q5. Какие инструменты развертывания вы использовали? Для отправки кода до производства?
Зонд-кандидат, чтобы узнать больше, были ли они подвергаются воздействию «опс» вроде работы. Или, по крайней мере, проверка ли интерес.
Не стесняйтесь обсуждать инструменты, используемые в вашем текущем посте, пример AWS, Anbible, библиотека Python, Докер для местного развития , и т.д.
Мотивация позади Q5 заключается в том, что я работаю в средах, где оцениваются некоторые навыки «ops» рядом с навыками Python/Django.
Но вы могли бы искать человека. Затем замените этот вопрос другим, который показывает реакцию человека на некоторую ориентированную на FE-ориентированный рабочий аспект.
На открытых вопросах, поскольку эти кандидаты, являющиеся самоуведомлениями, является не Плохая вещь.
Обсуждая темы, которые у вас нет полного соглашения о раскрытии. Для обеих сторон процесса собеседования. Что вы хотите.
Заключить
Не забудьте побудить кандидата задать вопросы во всем. Это снова включает двустороннюю информационную улицу, которую мы хотим.
Я надеюсь, что вы найдете это полезно.
Есть ли другие вопросы, которые я должен спросить? Почему? Не стесняйтесь добавлять свои предложения в качестве комментариев.
Этот пост был вдохновлен Джейкоб Каплан-Мосс Статья: Мое собеседование Kickoff Script, аннотированные Отказ
Я предлагаю вам посмотреть эту статью. Протектовать осторожно. Вы можете оказаться в Интервью jacob серии кролика . Некоторые отличные самородки знаний поделились там.
Оригинал: “https://dev.to/jvzammit/django-engineer-interview-script-591c”