Рубрики
Без рубрики

Сценарий интервью инженера Django

В отличие от Майкла Скотта выше, я не менеджер. Тем не менее, я работал как Python / Django Backend Engineer … Теги с Python, Django.

В отличие от Майкл Скотт Выше я не менеджер.

И все же я работал в качестве инженера 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”