Технические вопросы

Технические вопросы #


ООП [60%]

1. Что такое ООП? [20%]

2. Плюсы и минусы ООП [6.67%]

3. Принципы ООП (наследование, инкапсуляция, полиморфизм, абстракция) [33.33%]

4. Класс, объект, интерфейс [6.67%]

5. Ассоциация, агрегация, композиция [0%]

6. Статическое и динамическое связывание [0%]

7. Является – «is a», имеет – «has a» [0%]

8. Какая модель наследования используется в Python и какие её формы? | Как работает MRO? [13.33%]

9. Что можешь рассказать про принцип программирования SOLID? [33.33%]

10. Почему SOLID не всегда соблюдают в реальных проектах? [6.67%]

11. Что такое миксин (mixin) и для чего он применяется в объектно-ориентированном программировании? [6.67%]

12. Может ли абстрактный класс содержать реализацию методов? [6.67%]

Паттерны [26.67%]

1. Какие группы паттернов (паттерны) вы можете назвать (порождающие, структурные, поведенческие) и приведите примеры из каждой? [20%]

2. Как реализовать паттерн Singleton и какие есть основные способы реализации? [6.67%]

3. Чем отличается паттерн Декоратор от Адаптера? [6.67%]

4. Паттерн Адаптер [6.67%]

5. Паттерн Декоратор [6.67%]

Python Core [93.33%]

1. Что представляет собой функциональный подход к программированию? [6.67%]

2. Сравните императивную (процедурную) и функциональную парадигмы программирования. [6.67%]

3. Что такое Дескрипторы [26.67%]

4. Когда и при каких операциях с атрибутом срабатывает дескриптор [6.67%]

5. Магический метод __get__ [13.33%]

6. Магический метод __del__ [6.67%]

7. Магический метод __set__ [6.67%]

8. Магические методы __init__ и __new__ [13.33%]

9. Какие магические методы (dunder-методы) класса вы знаете и за какие группы поведения они отвечают? [20%]

10. Какие магические методы определены в базовом метаклассе? [6.67%]

11. Как связаны магические методы и метаклассы в объектной модели? [6.67%]

12. Что такое и зачем нужны метаклассы? [26.67%]

13. Какой объект является результатом работы метакласса? [6.67%]

14. Менеджер контекста with [20%]

15. Какие параметры передаются в __exit__ у контекстного менеджера? [6.67%]

16. С какими типами ресурсов обычно используют контекстные менеджеры и почему это удобно? [6.67%]

17. Чем можно заменить контекстный менеджер? [6.67%]

18. Чем отличаются операторы сравнения == и is [6.67%]

19. Чем отличается @classmethod от @staticmethod? [20%]

20. Чем отличается первый аргумент classmethod от метода экземпляра? [6.67%]

21. Что такое self в методах класса? [6.67%]

22. Является ли класс объектом в модели данных? [6.67%]

23. Какой метод вызывается при удалении объекта? [6.67%]

24. Как определяется хэшируемость объектов и их связь с магическими методами __hash__ и __eq__ [20%]

25. Какие объекты и сущности участвуют в создании класса [6.67%]

26. Что такое исключение (exception) и какую роль оно играет в обработке ошибок? [6.67%]

27. Какие дополнительные блоки, помимо try и except, существуют в конструкции обработки исключений (else, finally) и когда они выполняются? [6.67%]

28. Когда используют try-finally без except [6.67%]

29. В каких случаях несколько объектов могут ссылаться на один и тот же объект? [6.67%]

30. Оператор del - для каких целей используется [6.67%]

31. Что такое __slots__ и как он работает? [20%]

32. Ограничивает ли __slots__ создание новых атрибутов объекта? [6.67%]

33. В какой структуре данных хранятся атрибуты объекта [6.67%]

34. Можно ли применить декоратор к классу? [6.67%]

35. Что происходит с __slots__ в наследниках класса? [6.67%]

36. Магический метод __getattr__ [6.67%]

37. Магический метод __getattribute__ [6.67%]

38. Есть ли разница между list() и [ ]? [6.67%]

39. Что такое слабая ссылка [6.67%]

40. Какие слабые стороны (недостатки) есть у Python? [6.67%]

41. Пишут ли на Python высокопроизводительные приложения и почему? [6.67%]

42. Магический метод __call__ [6.67%]

43. __call__ работает с атрибутами класса или экземпляра? [6.67%]

44. Влияет ли typing на выполнение программы в runtime? [6.67%]

45. Какие области видимости есть в Python? | Что такое LEGB в Python? [6.67%]

46. Как передаются переменные в Python: по ссылке или по значению? [6.67%]

47. Что такое и для чего используется @property [6.67%]

Функции и Декораторы [60%]

1. Что такое функции высшего порядка и какие их основные примеры? [6.67%]

2. Чем стали заменять функции map(), reduce(), filter()? [6.67%]

3. Как реализована передача в функцию произвольного количества позиционных и именованных аргументов с помощью *args и **kwargs? [13.33%]

4. Допускает ли Python определение функции внутри другой функции и каковы особенности таких вложенных функций? [6.67%]

5. Доступна ли вложенная (локальная) функция для вызова из внешнего кода и как определяется область её видимости? [6.67%]

6. Что такое декоратор в Python и для каких целей он используется? [20%]

7. Как работает декоратор с параметрами и почему его реализация обычно включает несколько уровней вложенных функций? [6.67%]

8. Что происходит с аргументами при передаче в функцию, и как они связываются с параметрами? [6.67%]

9. Какой метод должен быть реализован в классе, чтобы его экземпляр можно было использовать как декоратор функций? [6.67%]

10. Как реализована встроенная функция вычисления факториала в Python на уровне стандартной библиотеки и языка? [6.67%]

11. Функция map() [6.67%]

12. Функция reduce() [6.67%]

13. Что такое functools.partial? [6.67%]

14. Функция id() [6.67%]

Сборщик мусора и GiL [40%]

1. Как определяется момент освобождения памяти объекта? [6.67%]

2. Что такое GIL (Global Interpreter Lock) [13.33%]

3. Как устроен механизм сборки мусора? [13.33%]

4. Где хранится счётчик ссылок у объекта? [6.67%]

5. Какой недостаток механизма подсчёта ссылок? [6.67%]

6. Как называется механизм удаления циклических ссылок? [6.67%]

7. В каких случаях память не освобождается после удаления ссылок? [6.67%]

8. Как GIL влияет на асинхронность | многопоточность | многопроцессорность [6.67%]

9. Как GIL ограничивает потоки в одном процессе? [6.67%]

10. Почему GIL не удаляют полностью в новых версиях Python? [6.67%]

Итераторы и Генераторы [26.67%]

1. Что такое итератор и как он используется? [6.67%]

2. Как реализовать протокол итератора и создать собственный итератор? [6.67%]

3. Какую роль выполняет метод __next__ в итерационном протоколе и какую логику он обязан реализовывать? [6.67%]

4. Объект итератор vs итерируемый объект [6.67%]

5. Что такое генераторы и какие основные виды генераторов существуют? [13.33%]

6. Генераторы vs итераторы [13.33%]

7. Почему range() в Python не хранит все элементы сразу? [6.67%]

Типы данных и Коллекции [73.33%]

1. Как работает set? [6.67%]

2. Что представляет собой тип данных множество (set) [6.67%]

3. Как разрешаются коллизии в hash-таблицах? [6.67%]

4. Какие типы данных существуют в python? [46.67%]

5. Зачем в Python есть mutable и immutable типы? Почему не сделать изменяемую строку? [6.67%]

6. Чем отличается списки от кортежа? | list vs tuple [13.33%]

7. Чем отличается списки от словаря? | list vs dict [6.67%]

8. Возможен ли доступ к элементу множества (set) по позиции (индексу)? [13.33%]

9. Как реализован список (list) на уровне внутренней структуры данных? [13.33%]

10. Как происходит выделение памяти для списка и его внутреннего хранилища? [6.67%]

11. Как ведут себя элементы списка в момент увеличения его внутренней ёмкости? [6.67%]

12. Массив vs список [6.67%]

13. Почему при создании списка под его внутреннее хранилище выделяется массив фиксированной длины и определённого типа? [6.67%]

14. В какой структуре данных поиск выполняется эффективнее — в списке или во множестве? [13.33%]

15. С какими структурами данных из модуля collections вы работали? [13.33%]

16. Что может выступать ключом в словаре и каким образом устроена внутренняя структура словаря? [13.33%]

17. Может ли кортеж, использоваться в качестве ключа словаря? [13.33%]

18. Являются ли bytearray и bytes изменяемыми типами [6.67%]

19. Какая сложность поиска в list? [13.33%]

20. Когда list.append() в Python не O(1)? [6.67%]

21. Какая сложность поиска в set? [6.67%]

22. Что значит неизменяемый объект в Python? [6.67%]

23. Какие есть альтернативы dict в Python? [6.67%]

24. Какие основные методы есть у структуры list в Python? [6.67%]

Асинхронность Многопоточность Многопроцессорность [46.67%]

1. Что такое асинхронность и как она устроена? [13.33%]

2. Что такое конкурентность? [6.67%]

3. Чем отличаются асинхронность и многопоточность? [6.67%]

4. Многопоточность vs Многопроцессорность | threading vs multiprocessing [26.67%]

5. Для каких типов задач целесообразно использовать асинхронность, многопоточность, мультипроцессность (I/O-bound vs CPU-bound)? [26.67%]

6. Как реализована модель асинхронного выполнения? [6.67%]

7. Что обозначают ключевые слова async и await в механизме корутин? [6.67%]

8. Какими способами реализовать конкурентность без async/await и как на это влияет GIL? [6.67%]

9. Какие примитивы синхронизации используются в многопоточном программировании? [6.67%]

10. Какая стандартная библиотека отвечает за асинхронность (async/await) и событийный цикл? [6.67%]

11. Какие ключевые особенности asyncio как модели конкурентности (event loop, корутины, задачи)? [6.67%]

12. В какие моменты event loop переключается между задачами в асинхронном выполнении? [13.33%]

13. Как организовать одновременное выполнение нескольких coroutine-задач? [13.33%]

14. Как event loop понимает, что можно запустить другую задачу? [6.67%]

15. Как в asyncio запускать блокирующие операции, чтобы не останавливать event loop? (run_in_excecutor) [6.67%]

16. Как проверить, что объект является корутиной? [6.67%]

17. Сколько процессов может быть у одного приложения? [6.67%]

18. Какие инструменты синхронизации потоков есть в Python? | Для чего нужны Lock, RLock, Semaphore, Event, Condition [6.67%]

19. Что такое корутины и задачи [6.67%]

FastAPI [46.67%]

1. Какая библиотека используется в FastAPI для валидации данных? [6.67%]

2. Для чего используется pydantic [6.67%]

3. Как реализован механизм внедрения зависимостей (DI | Dependency Injection)? [13.33%]

4. Для чего нужен Depends в FastAPI? [13.33%]

5. Может ли Depends принимать асинхронную функцию [6.67%]

6. Как внутри устроен Depends в FastAPI? [6.67%]

7. Что можно делать с Depends() в FastAPI кроме выполнения кода до endpoint? [6.67%]

8. Как использовать Depends() для бизнес-логики в FastAPI? [6.67%]

9. Почему в FastAPI используется название Depends [6.67%]

10. Django vs FastAPI [6.67%]

11. Каким образом FastAPI обрабатывает синхронный endpoint внутри асинхронной среды выполнения? [6.67%]

12. Как реализовать выполнение предварительной инициализации или подготовительных действий перед запуском приложения? [6.67%]

13. Как корректно организовать запуск фонового бесконечного процесса или дополнительного цикла внутри асинхронного приложения? [6.67%]

14. Почему FastAPI не поддерживает XML сериализацию из коробки? [6.67%]

15. Как FastAPI обрабатывает входящий запрос? [6.67%]

16. Какой web-server встроен в FastAPI? [6.67%]

17. Что такое BackgroundTasks в FastAPI? [6.67%]

Django и Django REST Fraemwork [13.33%]

1. Как устроена архитектура Django и какие основные компоненты входят в её модель взаимодействия? [6.67%]

2. Что представляет собой менеджер модели в Django ORM и какую роль он выполняет при работе с объектами базы данных? [6.67%]

3. Что такое middleware в Django и какую роль он играет в обработке HTTP-запроса и HTTP-ответа? [6.67%]

4. Как работает механизм CSRF-защиты в Django и какую роль играет CSRF-токен? [6.67%]

5. Что такое сигналы в Django и в каких случаях их применяют? [6.67%]

6. Для чего в Django используются метаклассы? [6.67%]

SQLAlchemy ORM и миграции [20%]

1. Что такое ORM-подход в разработке и какие преимущества он предоставляет при работе с данными? [6.67%]

2. С каким подходом в SQLAlchemy велась работа: через Core, ORM [6.67%]

3. Каким образом в SQLAlchemy реализуется связывание таблиц через foreign key и relationship? [6.67%]

4. Какие риски и особенности нужно учитывать при использовании relationship в SQLAlchemy? [6.67%]

5. В какой момент ORM подгружает связанные модели при работе со связями? [6.67%]

6. Что представляет собой проблема N+1 запросов при работе с базой данных или ORM? [6.67%]

7. Как синхронизируют миграции базы данных в команде и решают конфликты между ними? [6.67%]

Тестирование [20%]

1. Что такое фикстуры в тестировании и какую задачу они решают при подготовке окружения и данных для тестов? [6.67%]

2. Для каких задач применяется unittest.mock? [6.67%]

3. Что такое mock-объекты (моки) в тестировании? [6.67%]

SQL [73.33%]

1. Уровни изоляции транзакций в БД [20%]

2. Как повысить эффективность выборки записей из большой таблицы? | Опыт оптимизации запросов. [20%]

3. Виды JOIN. Как работает каждый JOIN? [20%]

4. Нормализация и денормализация. Перечислите формы [20%]

5. Индексы в SQL. Что это и для чего используются? [40%]

6. Какие основные типы/виды индексов существуют и в каких случаях они применяются? [20%]

7. В каких случаях целесообразно использовать hash-индекс в базе данных? [6.67%]

8. Как организован B-tree индекс и по какому принципу он работает? [6.67%]

9. Что хранится в узлах B-дерева и как по нему выполняется поиск? [6.67%]

10. В каких ситуациях использование индексов в базе данных снижает эффективность системы или приводит к ухудшению производительности? [20%]

11. Что такое SQL-инъекция? [6.67%]

12. Что такое транзакция в базе данных и какими свойствами ACID она обладает? [20%]

13. Какими инструментами вы пользовались для анализа плана выполнения (Профилирования) запроса (EXPLAIN/EXPLAIN ANALYZE)? [26.67%]

14. Какую информацию о выполнении SQL-запроса позволяет получить EXPLAIN/EXPLAIN ANALYZE? [0%]

15. EXPLAIN vs EXPLAIN ANALYZE [20%]

16. Что делает команда VACUUM в PostgreSQL и зачем она нужна? [20%]

17. Что делает команда TRUNCATE и чем она отличается от DELETE? [6.67%]

18. Какие существуют способы решения проблемы распределённых транзакций? [6.67%]

19. Какие решения по конфигурации базы данных обычно принимает разработчик на проекте? [6.67%]

20. Как в PostgreSQL работает блокировка строки (row-level lock)? [6.67%]

21. Что обычно используют в качестве Primary Key в реляционной базе данных (Какие типы данных чаще всего выбирают)? [6.67%]

22. Как работает автоинкрементный id через sequence в PostgreSQL? [6.67%]

23. Можно ли создать таблицу без Primary Key? [6.67%]

24. Чем отличается суррогатный ключ от натурального ключа? [6.67%]

25. Что такое GIN index в PostgreSQL? [6.67%]

26. LEFT JOIN, RIGHT JOIN [6.67%]

27. Как работает FULL OUTER JOIN? [6.67%]

28. Что такое обычный JOIN в SQL? [6.67%]

29. Что обычно должно быть условием соединения в JOIN? [6.67%]

30. Можно ли написать JOIN ON 1=1 и что будет результатом такого соединения? [6.67%]

31. Опыт с самописными (пользовательскими, кастомными) функциями в БД? [6.67%]

32. Как PostgreSQL обеспечивает консистентность данных при репликации? [6.67%]

33. Какие связи между таблицами бывают в реляционных БД? (one to one, one to many, many to many) [6.67%]

34. Что такое репликация и шардирование в базах данных? [6.67%]

35. Что такое constraints в SQL? | Какие ограничения бывают в реляционных базах данных? [6.67%]

36. Для чего используются LIMIT и OFFSET в SQL? [6.67%]

37. Что делает оператор WITH в SQL? [6.67%]

38. Для чего нужны подзапросы в SQL? [6.67%]

39. Можно ли использовать JOIN и подзапрос в одном SQL-запросе? [6.67%]

40. Что такое хранимая процедура в SQL? [6.67%]

41. Что такое составной индекс в SQL? [6.67%]

42. Что такое VIEW в SQL? [6.67%]

NoSQL [26.67%]

1. Что такое и для чего используется Redis? [13.33%]

2. Что представляют собой NoSQL-базы данных, какие задачи они решают и чем они принципиально отличаются от реляционных СУБД? [6.67%]

3. Какими свойствами классических реляционных БД жертвуют NoSQL-системы и ради каких преимуществ? [6.67%]

4. Как ограничить (блокировать) доступ к базе данных с помощью Redis? [6.67%]

Docker, Docker Compose, Linux [26.67%]

1. В чём различие между контейнеризацией и виртуализацией? [6.67%]

2. Является ли контейнер полноценной операционной системой? [6.67%]

3. Где находится ядро ОС при использовании контейнеров? [6.67%]

4. Что такое загрузчик системы (GRUB) и какую роль он выполняет? [6.67%]

5. Какие этапы происходят после того, как GRUB передаёт управление ядру? [6.67%]

6. Какие особенности работы контейнеров на Windows? [6.67%]

7. Есть ли опыт контейнеризации Python-приложений? [6.67%]

8. Как выбирается базовый образ для контейнера? [6.67%]

9. Какими способами передаются параметры в контейнер при запуске? [6.67%]

10. Как в контейнерной среде организуют хранение данных вне контейнера? [6.67%]

11. Что такое volume? [6.67%]

12. Какие основные сущности используются в Docker? [6.67%]

13. Как подключиться к запущенному Docker-контейнеру через терминал? (docker excec ...) [13.33%]

14. Способы оптимизации Docker-образов и повышения эффективности их использования? [6.67%]

15. Использование многоэтапной сборки Docker-образов на базе Alpine. [6.67%]

16. Где в Linux-системе обычно хранятся глобальные конфигурационные файлы? [6.67%]

17. Как посмотреть все контейнеры Docker, включая остановленные? (docker ps -a ...) [6.67%]

18. Что такое Docker network? [6.67%]

19. Что такое Docker-Compose [6.67%]

20. Что можно описать в docker-compose.yml файле [6.67%]

WEB [53.33%]

1. GET vs POST [13.33%]

2. Почему в GET-запросе обычно не передают данные в теле запроса? [6.67%]

3. Что такое JWT токен? [6.67%]

4. Какие плюсы и минусы имеет использование JWT в системах авторизации? [6.67%]

5. Как выполняется валидация JWT в приложении? [6.67%]

6. Что такое REST (Representational State Transfer) и RESTfull как архитектурный стиль, и какие ограничения (constraints) лежат в его основе? [20%]

7. Какой протокол обычно используется при построении REST API [6.67%]

8. Как сервер выполняет перенаправление браузера через HTTP-ответ? [6.67%]

9. Из чего состоит response в REST [6.67%]

10. Как вызывать сторонний API напрямую? [6.67%]

11. Как подключаться к API без официального SDK? [6.67%]

12. В каких частях HTTP-запроса можно передавать полезные данные в API? [6.67%]

13. Что такое и зачем нужен Authorization header в HTTP? [6.67%]

14. Где передаются cookies в HTTP-запросе? [6.67%]

15. Как передать символы ? и & в query parameters? [6.67%]

16. Почему в HTTP API данные часто передаются в JSON, а не в XML? [6.67%]

17. Как расшифровывается JSON? [6.67%]

18. Какие ограничения есть у строки URL? [6.67%]

19. Что произойдёт, если клиент отправит слишком большое тело запроса? [6.67%]

20. Что такое идемпотентность и какие HTTP-методы иденпотентны? [6.67%]

Брокеры сообщений и Celery [20%]

1. Для каких целей в системе применялся Celery? [6.67%]

2. Насколько хорошо знакомы с гарантиями доставки сообщений в брокерах? [6.67%]

3. Гарантии доставки в RabbitMQ [6.67%]

4. Из каких основных компонентов состоит брокер сообщений? [6.67%]

5. Механизм доставки сообщений в RabbitMQ [6.67%]

6. Какие сообщения и данные обычно отправляют через RabbitMQ? [6.67%]

7. Как работает consumer в RabbitMQ и как происходит доставка и подтверждение сообщений? [6.67%]

8. Как версионируют сообщения и поддерживают несколько версий схемы в RabbitMQ? [6.67%]

9. RabbitMQ vs Kafka [6.67%]

10. Какие основные роли и сущности существуют в RabbitMQ? [6.67%]

Микросервисы [6.67%]

1. Почему shared database считается плохой практикой для микросервисов? [6.67%]

2. Как организуют аутентификацию и авторизацию между микросервисами? [6.67%]

Git [26.67%]

1. Git. Для чего нужен Cherry Pick [20%]

2. В чем разница между Git rebase и Git merge? [13.33%]

3. В чем разница между Git fetch и Git pull? [13.33%]

4. Как отменить коммит в Git? [6.67%]

5. Как посмотреть историю коммитов в Git? [6.67%]

6. Как переключиться на конкретный коммит в Git? [6.67%]

Опыт с технологиями [66.67%]

1. Опыт с Kafka [0%]

2. Опыт с многопоточкой [0%]

3. Опыт с Kubernetes [0%]

4. Опыт написания нативных SQL запросов [0%]

5. Опыт с Linux [20%]

6. Опыт с Docker [6.67%]

7. Опыт с брокерами сообщений [6.67%]

8. Опыт с GIT [13.33%]

9. Опыт с httpx [6.67%]

10. Опыт работы с базами данных (SQL и NoSQL) [13.33%]

11. Опыт с проектированием и созданием таблиц в БД [6.67%]

12. Опыт с транзакциями в SQL [6.67%]

13. Опыт с PostgreSQL [6.67%]

14. Опыт с AsyncIO [6.67%]

15. Опыт с Multiprocessing [13.33%]

16. Опыт с FastAPI [6.67%]

17. Опыт с Redis [6.67%]

18. Опыт с Typing [6.67%]

19. Опыт с ORM [6.67%]

20. Опыт с Индексами в БД [6.67%]

Другое [66.67%]

1. Знакомы ли вы с книгой чистый код? [6.67%]

2. Какие недостатки у строгого следования практикам чистого кода? [6.67%]

3. В каких случаях следование принципам чистого кода ухудшает эффективность? [6.67%]

4. Читали ли вы материалы, оспаривающие общепринятые рекомендации по стилю программирования? [6.67%]

5. Программа может взаимодействовать с процессором напрямую? [6.67%]

6. Как программа взаимодействует через операционную систему? [6.67%]

7. Знакомы ли вы с архитектурой аппаратной части компьютера? [6.67%]

8. Что такое сигналы в операционных системах и для чего они используются? [6.67%]

9. Какое у вас направление (специализация/профиль) высшего образования? [6.67%]

10. Как выполняется программа на уровне процессора и памяти? [6.67%]

11. Какими методами можно кратно ускорить выполнение программы? [6.67%]

12. Что такое идемпотентность? [6.67%]

13. Какими способами обеспечивают идемпотентность операций в веб-сервисах и API? [6.67%]

14. Что такое API и какую роль он выполняет во взаимодействии между различными программными компонентами или системами? [6.67%]

15. Как зависит число одновременно выполняемых потоков от количества доступных ядер? [6.67%]

16. Были ли задачи, связанные с системным проектированием и выбором архитектурных решений? [6.67%]

17. Какие меры защиты от DoS- и DDoS-атак обычно применяются в backend-системах? [6.67%]

18. Какие библиотеки используют для работы с API [6.67%]

19. Что такое reflection (Рефлексия) в программировании? [6.67%]

20. Что такое асимптотическая сложность (вычислительная сложность)? [6.67%]

21. Что такое цикломатическая сложность? [6.67%]

22. Чем отличаются временная и пространственная сложность? [6.67%]

23. Какая асимптотическая сложность бинарного поиска? [6.67%]

24. Какая асимптотическая сложность тернарного поиска? [6.67%]

25. Как определить Big On (Сложность) функции? [6.67%]

26. Что такое Big On (Сложность) функции [6.67%]

27. Как вы оцениваете свои знания в базах данных? [6.67%]

28. Что такое сериализация и десереализация? [6.67%]