Python: вопросы и ответы с собеседований

100+ вопросов
  1. Принципы программирования?
  2. Отличия процедурной и объектно-ориентированной парадигмы программирования?
  3. Основные принципы ООП?
  4. Что такое множественное наследование?
  5. Что такое @property?
  6. Что такое инженерия и процесс разработки в целом?
  7. Основные методологии разработки (жизненный цикл продукта)?
  8. Методология Agile. Различия Kanban и Scrum подходов.
  9. Методы HTTP-запросов и какая между ними разница?
  10. Как выглядят HTTP-request/response?
  11. Что такое авторизация и как она работает?
  12. Что такое cookies?
  13. Что такое веб уязвимость?
  14. Какие знаете классические базы данных?
  15. Как читать спецификацию в конкретном языке (например, PEP8 в Python)?
  16. Как происходит взаимодействие клиента и сервера?
  17. Какие есть подходы к проектированию API?
  18. Как масштабировать API?
  19. Паттерны проектирования и как они используются?
  20. Что такое Acceptance Testing и зачем его используют?
  21. Что такое модульные и интеграционные тесты, API-тесты?
  22. Как писать unit-тесты?
  23. Какие есть best practices в написании автотестов?
  24. Какие базовые команды системы контроля версий?
  25. Как использовать Git?
  26. В чем разница между хешированием и шифрованием?
  27. Ориентируетесь ли в *nix, можете ли написать скрипты/автоматизацию для себя и коллег?
  28. Что такое многопоточность?
  29. Что такое архитектура веб сервисов?
  30. Как работает современное нагруженное веб приложение (нарисовать и обсудить примерную архитектуру, например, Twitter или Instagram)?
  31. Что нужно для сайта/сервиса среднего размера (redis, celery, кэш, логирование, метрики)?
  32. Как написать, задеплоить и поддерживать (микро) сервис?
  33. Как проводить Code review?
  34. Что такое абстрактная фабрика, как ее реализовать и зачем ее применяют?
  35. Что такое цикломатическая сложность?
  36. Каким образом можно запустить код на Python параллельно?
  37. Как работать с stdlib?
  38. Какие задачи решали с помощью метаклассов?
  39. Что такое дескрипторы?
  1. Какие есть изменяемые и постоянные типы данных?
  2. Какие есть типы данных и какая разница между list и tuple, зачем они?
  3. Как использовать встроенные коллекции (list, set, dict)?
  4. В чем заключается сложность доступа к элементам dict?
  5. Что такое область видимости переменных?
  6. Что такое introspection?
  7. В чем заключается разница между операторами is и ==?
  8. Как создается объект в Python. Разница между __init__ и __new__?
  9. В чем разница между потоками и процессами?
  10. Какие есть виды импорта?
  11. Что такое итератор и генератор. В чем между ними разница?
  12. Что такое сопрограммы (corutines) и как они реализованы в Python?
  13. Что такое метакласс, переменная цикла?
  14. В чем разница между staticmethod и classmethod?
  15. Как работают контекстные менеджеры?
  16. Как работают декораторы?
  17. Можно ли использовать несколько декораторов для одной функции?
  18. Можно ли создать декоратор из класса?
  19. Как работают dict comprehension, list comprehension и set comprehension?
  20. Какие есть основные популярные пакеты (requests, pytest, etc)?
  21. Что такое lambda-функции?
  22. Что означает *args, **kwargs и как они используются?
  23. Как передаются аргументы функций в Python (by value or reference)?
  24. Что такое exceptions, <try-except>?
  25. Что такое PEP (Python Enhancement Proposal), какие из них знаете (PEP8, PEP484)?
  26. Что знаете из модуля collections, какими еще built-in модулями пользовались?
  27. Как Python работает с HTTP-сервером?
  28. Что происходит, когда создается виртуальная среда?
  29. Async Python: как работает, зачем, что под капотом?
  30. Что такое модель памяти Python?
  31. Принципы работы и механизм Garbage collection, reference counting?
  32. Как работает thread locals?
  33. Что такое __slots__?
  34. Что такое type annotation? Какие преимущества дает Variable Annotations?
  35. Для чего используют нижние подчеркивания в именах объектов?
  36. Статические анализаторы: Flake8, Pylint, Radon.
  1. N+1 проблема и как решить?
  2. Что такое SQLAlchemy (Core и ORM частей) и какие есть альтернативы?
  3. Что такое шаблонизатор и как в нем выполнять базовые операции (объединять участки шаблона, выводить дату, выводить данные с серверной стороны)?
  4. Что такое миксины?
  5. Как провалидировать данные в сериализаторе?
  6. Методы create, update в серилизаторе.
  7. Как передать в запросе лист id так, чтобы создался объект сразу с m2m связими?
  8. Что такое lt, gt, gte, lte в ORM?
  9. or в Django ORM.
  10. Напишите hello-world сервис, используя один из фреймворков.
  11. Сравнить асинхронные web-фреймворки.
  1. Какие есть базовые методы работы с SQL-базой данных в Python?
  2. Что такое SQL-транзакция?
  3. Как сделать выборку из SQL-базы с простой агрегацией?
  4. Как выглядит запрос, который выполняет JOIN между таблицами и к самим себе?
  5. Как отправлять запросы в SQL-базу данных без ORM?
  6. Индексация в базе данных sql
  7. Разница между SQL и NoSQL?
  8. Как оптимизировать SQL-запросы?
  9. Какие есть уровни изоляции транзакций?
  10. Какие есть виды индексов?
  1. Рассказать про Docker, Docker Compose и Docker Swarm
  2. Объяснить основные термины K8s (кластер, pod, node, deployment, service), что такое Kibana?
  3. Как зайти на внешний сервер, работать с пакетами, настроить среду и выполнять операции?
  1. Как работать с пакетами для обработки и визуализации данных (NumPy, Pandas и другие)?
  1. Что такое временная сложность алгоритма (time complexity)?
  2. Что такое Big-O notation?
  3. Какие есть базовые алгоритмы сортировки?
  4. Что такое Bubble Sort и как это работает?
  5. Что такое линейная сложность сортировки?