Skip to content

Вопросы для собеседований. Что нужно знать для собеседования. Полезные ссылки. Примеры.

Notifications You must be signed in to change notification settings

big-and-red/Python-theory

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 

Repository files navigation

Table of contents

  1. Django
  2. Python core
  3. OOП
  4. БД
  5. Что точно нужно знать на собеседовании
  6. Полезные материалы

Django

  1. Что такое Django?
  2. Что такое MVT в Django?
  3. Что такое URL dispatcher в Django?
  4. Что такое сериализация (pickling) и десериализация (unpickling) в Python?
  5. Какие модули в Python есть для тестирования? Какие отличия, плюсы и минусы. Виды тестов.
  6. Что такое mock? Зачем он нужен?
  7. Что такое миксины?
  8. Что такое lazy_loading?
  9. Что такое абстрактые модели?
  10. Что такое менеджеры ORM? Написать свой менеджер
  11. Что такое миграции?
  12. Какие особенности у Django?
  13. Что вы знаете о csrf_token?
  14. Назовите преимущества использования Django
  15. Объясните архитектуру Django
  16. Расскажите о django-admin
  17. Как подключить БД к проекту на Django?
  18. Что такое Models?
  19. Что такое Views?
  20. Что такое templates?
  21. В чём разница между проектом и приложением?
  22. Что такое static files?
  23. Что такое сигналы?
  24. Кратко объясните класс Django Field
  25. Как создать проект Django
  26. Что такое sessions?
  27. Что такое контекст в Django шаблонах?
  28. Когда вы можете использовать итераторы в Django ORM?
  29. Объясните стратегии кэширования в Django
  30. Объясните использование middlewares в Django
  31. Что делает команда migrate?
  32. Как просматривать и фильтровать элементы из БД?
  33. Как обрабатывается запрос в Django?
  34. select_related, prefectch_related, select_for_update - знать на эту тему все от зубов. Как устроено внутри. В чем отличие. Не забываем reverse foreign key
  35. F, Q objects, Annotate. Как исполняются queryset и цикл жизни?
  36. bulk_create, bulk_update - знать, как устроены, как самому сделать и что происходит на уровне SQL
  37. Как реализовать having или distinct на ORM?
  38. Делал ли django migrations, писал ли свои?
  39. Блокировки, transaction.atomic() - что использовал? Когда возникает?
  40. Разбери популярные вещи в Django и назови какие паттерны программирования использовались? Типа настройки, queryset, django-admin models, сигналы
  41. Через какие компоненты идет request в Django?
  42. Какое наследование моделей в Django?
  43. Использовали ли сигналы?
  44. Работал ли с DRF, какие в нем видишь проблемы?
  45. Где писать логику view, модель, может где-то ещё?
  46. Делал ли Oauth2 и в чем разница между авторизацией, аутенкфикацией?
  47. Какие полезные пакеты для Django использовал?

Python core

  1. Что такое Python?
  2. Что такое lambda в Python?
  3. Python интерпритируемый язык или компилируемый?
  4. Каковы приемущества использования Python?
  5. Что такое область видимости переменной?
  6. Что такое introspection?
  7. Что такое пространства имён в Python?
  8. В чём разница между файлами py & pyc?
  9. В чём разница между списками и кортежами?
  10. Какие ключевые особенности python?
  11. Как осуществляется управление памятью в Python?
  12. Что такое PYTHONPATH?
  13. Что такое модули и какие чаще всего используются?
  14. Чувствителен ли Python к регистру?
  15. В чём разница между массивами и списками?
  16. Что такое ф-ции в python?
  17. Что такое init_?
  18. Что такое self?
  19. Как работают break, continue & pass
  20. Как в python можно произвольно распределить элементы списка по местам?
  21. Что такое итераторы?
  22. Что такое pickling & unpickling?
  23. Что такое генераторы?
  24. Каково предназначение операторов is & not & in
  25. Почему при выходе из Python не происходит удаление всей памяти?
  26. Как использовать тройные (тернарные операторы)?
  27. Что означает *args & **kwargs в python
  28. Что такое пакеты в python?
  29. Какие встроенные типы есть в python?
  30. Есть ли концепции ООП?
  31. Как осуществляется многопоточность?
  32. Что такое метакласс, переменная цикла?
  33. В чём разница между потоками и процессами?
  34. В чём разница между генераторами и итераторами?
  35. Какие есть виды импортов?
  36. Что такое класс?
  37. Как импортироать модули?
  38. В чём разница между глубоким и неглубоким копированием?
  39. Что такое monkey patching?
  40. Как создать пустой класс?
  41. Что делает ф-ция object()?
  42. Что означает pass в Python?
  43. Что обозначают *args и **kwargs при определении функции в Python?
  44. В чем разница между globals(), locals(), и vars()?
  45. Что такое PEP8?
  46. Что такое модуль __init__.py? Для чего он нужен?
  47. Что такое модуль в Python? Что такое пакет в Python? В чем разница?
  48. Как можно посмотреть все методы объекта? Как можно получить документацию по методам объекта Python?
  49. Что такое декораторы в Python? Как создать свой собственный декоратор с пробросом аргумента?
  50. Отличие == и is
  51. Как в Python передаются аргументы в функцию?
  52. Что такое аннотации типов и когда они нужны?
  53. Виртуальные окружение. Что такое? Зачем Нужны? Какие инструменты для этого используются?
  54. Что такое Poetry. Пользовался ли и какие приемущества над пипом?
  55. Что такое хэш-таблица?
  56. Что такое коллизия? Какие методы разрешения коллизий бывают? Какой метод разрешения коллизий используется в пайтоне? Какая сложность основных операций в коллекциях?
  57. В Python нет модификаторов доступа, всё по умолчанию public. Как в Python реализуются private и protected методы и атрибуты.
  58. Менеджеры контекста. Как написать, зачем нужны?
  59. Что такое GIL? Какие проблемы он решает? Какие плюсы и минусы.
  60. Что такое динамическая, строгая типизация?

OOP

  1. Что такое ООП?
  2. Базовые приципы
  3. Зачем использовать ООП?
  4. В чём разница между init & new?
  5. Поддерживает ли Python в полной мере объектно-ориентированное программирование?
  6. Что значит self?
  7. Что делают функции __init__?
  8. Зачем нужен super?
  9. Что такое @classmethod, @staticmethod, @property?
  10. В чем разница между @classmethod и @staticmethod?
  11. Что такое абстрактный класс? Как они реализуются и зачем нужны?
  12. Что такое метаклассы? Для чего используются? Как они реализуются в Python?
  13. Что такое итератор? Что такое итерируемый объект? Что такое генератор? Как написать на Python генератор?
  14. Что такое diamond problem? что такое MRO? Чем оличается MRO2 от MRO3? Зачем оно нужно?
  15. Что такое корутина?
  16. Можно ли вызвать метод базового класса без создания его экземляра?
  17. Каковы различные типы наследования?
  18. В чём разница между множественным и многоуровневым наследованием?
  19. Что такое подкласс?
  20. Что такое спецификаторы доступа?
  21. Можете ли вы создать экземпляр абстрактного класса?
  22. Для чего используется finalize?
  23. Что такое сборка мусора (GC)?
  24. Что такое блок finally / try / except
  25. Каковы ограничения ООП?

DB

  1. Совпадают ли значения NULL со значениями нуля или пробела?
  2. Что такое свойство ACID в базе данных?
  3. Что такое нормализация и каковы ее преимущества?
  4. Опишите различные типы индексов.
  5. Перечислите типы соединений
  6. Что такое внешний ключ Foreign key?
  7. Что подразумевается под целостностью данных?
  8. Что такое первичный ключ? PRIMARY KEY
  9. Что такое денормализация?
  10. Основные различия SQl от noSQL
  11. Что такое блокировки БД?
  12. ЧТо такое транзакция?
  13. Что такое блокировка в базе данных?
  14. Как избежать ситуации дедлока?
  15. Как использовать инструменты для профилирования запросов?
  16. Какие события могут вызвать триггеры в базе данных?
  17. Когда следует использовать NoSQL вместо реляционных баз данных?
  18. Какие стратегии резервного копирования данных в базе данных вы используете?
  19. Как обрабатывать большие объемы данных в базе данных?
  20. Какие инструменты используются для масштабирования баз данных?

Main info

  • Django
    • Django ORM
    • Понимать что происходит в Views, Models, Templates
    • Сериализация, Middleware – понять что это и зачем
    • Аутентификация и авторизация
    • RESTfull API (DRF)
    • Сессии
    • csrf token
    • Как обрабатывается запрос в Django
    • JWT
    • Вебсокеты
  • Core
    • Базовый синтаксис, особое внимание – генераторы, декораторы, контекстные менеджеры, методы списков / словарей / кортежей
    • Асинхронщина, многопроцессорность, многопоток
  • OOP
    • Уметь писать классы и понимать как вообще что работает
    • Принципы (Полиморфизм, абстракция, наследование, инкапсуляция)
  • DB
    • Базовый SQL синтаксис
    • Индексы
    • Джоины, подзапросы
    • Блокировки БД
    • Знать что-то про no SQL
    • Связи o2o, o2m, m2m
  • Other
    • Различие монолита и микросервисов
    • База по гиту, докеру, тестированию
    • Паттерны проектирования
    • Redis + какой-то брокер сообщений (Kafka / RabbitMQ)
    • HTTP методы, куки, коды ответов
    • REST API
    • Grafana / Elasticsearch / Kibana — что это и зачем понимать

Links

  • Coming soon ...

About

Вопросы для собеседований. Что нужно знать для собеседования. Полезные ссылки. Примеры.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages