IPChain · июль 2024

Тех собес на middle-senior Python Разработчик в IPChain

middle-senior Тех собес 29 вопросов 1 задача
1

Теория

1. Расскажите о вашем предыдущем опыте работы, чем занимались, что было наиболее интересным?

2. Вы работали только над одним проектом на Django или также использовали FastAPI?

3. Какую функциональность выполнял сервис, написанный на FastAPI?

4. Как вы получали данные для вашего приложения? Использовали ли REST API?

5. Какие инструменты вы применяли для работы с FastAPI — ORM или чистый SQL?

6. Использовали ли вы виртуальные окружения, такие как Poetry или PIP? Работали ли с Docker?

7. Как в вашей команде проводился процесс код-ревью?

8. Сталкивались ли вы с разногласиями в команде, например, по поводу стиля кода, и как их решали?

9. Были ли задачи, которые вам особенно запомнились или которыми вы гордитесь?

10. Расскажите, как вы реализовали разделение ролей и авторизацию в проекте?

11. Использовали ли вы стандартные настройки Django для ролей или писали свою систему?

12. Применяли ли вы фоновые задачи для обработки отчетов или это делалось в реальном времени?

13. Объясните разницу между списком и кортежем в Python.

14. Какие типы данных в Python являются изменяемыми, а какие неизменяемыми?

15. Как сделать глубокую копию объекта в Python, если он содержит вложенные объекты?

16. Как в Python передаются аргументы в функцию — по значению или по ссылке?

17. Можно ли в Python задавать пустой список как значение по умолчанию для аргумента функции? Какие могут быть последствия?

18. Как в Python обрабатываются ошибки? Какие механизмы для этого используются?

19. Применяли ли вы декораторы? Писали ли свои собственные?

20. Использовали ли вы контекстные менеджеры? Писали ли свои собственные?

21. Расскажите про генераторы и итераторы в Python. В чем их особенности?

22. Что такое асинхронность в Python, и для чего она нужна?

23. Как работает GIL (Global Interpreter Lock) в Python?

2

Небольшой Систем Дизайн

Условие

Есть фотохостинг. Пользователи, фотки. Нужно спроектировать сервис "Лайки фоток".

Функции: 1. Поставить лайк 2. Показать сколько лайков у фото 3. Показать мои лучшие фото 4. Показать самые лучшие фото сервиса

Сущности:

Пользователь (user): — id — name — email — bday (дата рождения) — date_reg (дата регистрации)

Фото (photo): — id — user_id (владелец) — title — description — tags

24. Задача: Как бы вы реализовали систему лайков для фотохостинга, включая возможность ставить/убирать лайки, отображать их количество и показывать популярные фотографии?

3

Продолжение теории

25. Какой SQL-запрос вы бы написали, чтобы подсчитать количество лайков для конкретной фотографии?

26. В чем разница между использованием COUNT(*) и COUNT(1) в SQL-запросах?

27. Как бы вы написали запрос для получения топ-100 фотографий пользователя по количеству лайков?

28. Как можно оптимизировать запросы для вывода самых популярных фотографий в фотохостинге?

29. Сталкивались ли вы с оптимизацией SQL-запросов? Какие подходы использовали?

30. Как бы вы оптимизировали работу с большими объемами данных, например, для аналитических запросов?