Django / Grade 0 / Собеседования

Django

https://career.guru99.com/ru/top-16-django-interview-questions/



    Объясни значение Model View Teamplay (MVT)    

    Объясни как происходит обработка HTTP запросов на Django    

    Назови основные сущности в Django    

    Что такое querySet() в Django    

    Какую бы связь использовал для расширения стандартного юзера    

    Что означает querySet() ленивые    

    Как реализован many to many в Django    

    Расскажи про архитектурный паттерн django    

    Что такое кастомный менеджер модели    

    Для чего нужны библиотеки sqlparse, asgiref в Django    

    Почему храните шаблоны на уровне приложений    

    Где и как классы используются в Django    

    Какие стратегии расширения Django знаешь    

    Как Django обрабатывает запрос/ответ    

    Как создать views    

    Как сгенерировать и применить миграцию    

    Для чего используется параметр permissions в DRF    

    Для чего используется IntegerChoices    

    Что такое ViewSet и для чего используется    

    Чем ApiView отличается от ViewSet    

    Какие есть варианты определения модели пользователя в Django    

    Как сделать кастомную авторизацию в Django    

    Как в Django реализована работа с websocket    

    Что такое толстые модели в Django    

    Где лучше расположить логику в моделях или сериализаторе    

    Какой опыт работы с Django    

    Что такое models    

    Как создать объект в Django ORM    

    Какие есть модели в Django    

    Расскажи про manage.py в Django    

    Расскажи про Django rest framework    

    Как настраивать ссылки    

    Как бы описал модель проектирования Django    

    Что такое контекстный процессор    

    Что такое сигналы    

    Что такое класс baseview    

    Какие базовые классы django нам предоставляет    

    Как реализовывали views в Django, функцией или классом    

    Назовите основные мидлвари, зачем они нужны    

    Опишите алгоритм работы CSRF middleware    

    Как реализуется связь m2m на уровне базы данных    

    Как работает Serializer в Django REST Framework    

    За что отвечает Meta в сериализаторе    

    Какая разница в быстродействии между django и Flask (и почему)    

    Как в django работает система аутентификации



Вопросы от моего ментора вкогда он меня обучал

Изучать:

уметь писать несложные запросы (select, update, delete), использовать join (left и inner хватит), подзапросы, order by, limit, offset и group by (вместе с count, sum, max/min). + выражения всякие (like, in, exists, is null, ...)


1. Как бы вы описали Джанго
2. Каковы преимущества Django?

3. Что такое архитектура Django?

4. В чем разница между проектом и приложением в Django?

5. Опишите этапы жизненного цикла запроса-ответа Django.

6. Как вы обрабатываете URL-адреса в Django?

 

  1. Основы Django:

    • Что такое Django и для чего он используется?
    • Как создать новый проект Django?
    • Как создать новое Django-приложение?
    • Какие основные компоненты Django ORM?
  2. Модели и ORM:

    • Что такое модель в Django? Как она определяется?
    • Как создать миграции для модели и применить их?
    • Что такое ForeignKey и ManyToManyField? В чем разница между ними?
    • Как создать кастомный менеджер модели?
  3. Представления (Views) и URL-шаблоны:

    • Что такое Django View?
    • Как связать URL с представлением в Django?
    • Что такое маршрутизация URL (URL routing) в Django?
    • Как передать параметры в представление через URL?
  4. Шаблоны (Templates):

    • Что такое Django Template и как его использовать?
    • Как передавать данные из представления в шаблон?
    • Что такое контекст шаблона (template context)?
  5. Аутентификация и авторизация:

    • Как реализовать аутентификацию пользователей в Django?
    • Как настроить разрешения (permissions) и авторизацию в Django?
    • Как создать кастомный пользовательский менеджер (custom user manager)?
  6. Международизация и локализация:

    • Что такое международизация и локализация в Django?
    • Как добавить поддержку разных языков и переводы в приложение?
  7. RESTful API и Django REST framework (DRF):

    • Что такое REST и как связано с Django REST framework?
    • Как создать API-представления с использованием DRF?
    • Как настроить аутентификацию и разрешения в DRF?
  8. Кэширование и оптимизация:

    • Как настроить кэширование в Django?
    • Какие методы оптимизации производительности вы используете в Django?
  9. Сигналы (Signals) и задачи (Tasks):

    • Что такое сигналы в Django и в каких случаях они используются?
    • Как выполнять асинхронные задачи в Django с использованием Celery?
  10. Безопасность и защита от атак:

    • Какие меры безопасности Django применяются для защиты от атак, таких как SQL инъекции и CSRF?
    • Как настроить HTTPS и SSL в Django?



Если Вы учите программирование и рассчитываете работать в типичном продукте или аутсорсе, в стартапе или фрилансе, то вот на чем можно сэкономить. Но это не касается тех, кто хочет стать системным программистом и работать в технологической компании. Так вот, чтобы быстрее учиться и что скорее всего никогда не понадобится в реальном продуктовом коде:

1. Алгоритмы и задачи с литкода или кодеварс вам не нужны. Но нужен навык простого процедурного и ООПшного кода + GRASP и SOLID.

2. Всякие учебные задачи, типа todo листа, калькулятора, крестики-нолики. Нужно делать более комплексные вещи, полноценный проект.

3. Бесконечное смотрение видео тоже ни к чему не приведет, нужно получать ревью кода, желательно от наставника или от друзей.

4. Задачи на системный дизайн не нужны, Это знания, которые нужны лиду, архитектору и CTO и валидны только при закреплении на практике.

5. Микрооптимизация, типа сравнения по производительности object[key], obejct.key и Object.assign. В начале пути одна задача - понятность кода.

6. Не нужно заучивать все паттерны (GoF и еще сотню), в зависимости от языка и фреймворка вам понадобится всего 2-3 шаблона проектирования.

7. Не старайтесь изучить внутреннее устройство event loop, garbage collection, goroutine scheduler, это спрашивают на собесах, но не нужно в работе.

8. Не ведитесь на крутые темы, типа высоконагруженных, распределенных и супер-защищенных приложений, вас к ним еще долго не допустят.

9. Не зацикливайтесь на языке, язык гораздо проще тулинга, поднажмите на git, github, линтеры, ide, docker, ci и тестирование, тулы для отладки.

10. Ничто так не отвлекает от изучения программирования, как ВУЗ и не внушает ложного чувства уверенности, как ИТ-курсы от инфожуликов.