Skip to content

Latest commit

 

History

History
118 lines (96 loc) · 10.4 KB

python.md

File metadata and controls

118 lines (96 loc) · 10.4 KB

Вопросы для разработчиков Python

Вопросы по soft skills Вопросы по алгоритмам

Junior

Общие вопросы

  1. Почему ты решил стать бэкенд-разработчиком, чем тебя привлекает профессия?

Python

  1. Какие типы данных существуют в Python?
  2. Области видимости в Python. Как работают?
  3. Методы работы со списками, какие существуют?
  4. Как устроены хеш-мапы в Python?
  5. В чем разница между операторами is и ==?
  6. Какие циклы существуют в Python?
  7. Что такое контекстный менеджер? Для чего он используется?
  8. Что такое магические методы в Python? Как они работают?
  9. В чем разница между приватными и защищенными методами?
  10. Различия между staticmethod и classmethod.
  11. Что такое GIL? Как он влияет на многозадачность в Python?
  12. Что может быть ключом словаря, а что не может? Почему?
  13. Как устроено наследование в Python? Как работает множественное наследование?
  14. Что такое ленивые вычисления в Python?
  15. В чем разница между Flask и FastAPI?
  16. Что такое сериализация? Где и зачем она используется?

Базы данных

  1. Какие бывают типы баз данных? В чем их отличия?
  2. В чем разница между JOIN и UNION?
  3. В чем различия между UNION и UNION ALL?
  4. Какие требования предъявляются к оператору UNION?
  5. В чем разница между HAVING и WHERE?
  6. Что такое индексы в базах данных? Какие плюсы и минусы у их использования?
  7. Что такое SQL-инъекции? Как их предотвратить?
  8. Что такое транзакции? Как они работают?
  9. Какие ORM знаешь и какие использовал? Какие плюсы и минусы можешь выделить?
  10. Если соединяем несколько таблиц БД с помощью INNER JOIN, есть ли разница в оптимизации, в каком порядке соединяем таблицы?

Сети

  1. Какие бывают протоколы передачи данных?
  2. В чем разница между HTTP и HTTPS?
  3. В чем разница между UDP и TCP?
  4. Какие методы HTTP существуют? Как они различаются?
  5. Что такое JWT токен?
  6. Что такое REST API и как оно работает?

Middle

Общие вопросы

  1. В чем разница между аутентификацией, авторизацией и идентификацией?
  2. Расскажи о принципах SOLID.
  3. Расскажи о принципах ООП.
  4. Какие паттерны программирования знаешь? Приведи пару примеров.
  5. Достаточно ли валидации в ORM при реализации проверки на уникальность, например, email при регистрации? Раскройте
  6. Какие последствия возможны при отправке email прямо в контроллере? Как можно решить эти проблемы?
  7. Как бы вы реализовали смену email на сайте, так чтобы соблюсти баланс между сложностью и безопасностью?
  8. Можно ли доверять email, который мы получаем по oauth от соц сетей и мержить аккаунты автоматически? Приведите примеры
  9. Как ограничить отправку email пользователю, который добавил письмо нашего проекта в спам? И почему это стоит делать (или не стоит)?
  10. Предположим что вы реализуете редакцию журнала, где редактора могут в админке править статьи. Как предотвратить ситуацию, когда два редактора могут начать одновременно редактировать одну статью и перетирать изменения друг друга?
  11. Каких принципов разработки нужно придерживаться, для обеспечения механизма zero downtime deployment. Как это достигается?
  12. Что может произойти, если ваша cron задача, которая запускается раз в минуту, стала выполняться больше 1 минуты? Как это можно предотвратить?
  13. Если вы пишите тесты, то как вы обходите проблему того, что код который вы тестируете, делает внешние вызовы? Доп условие, говорим о том, что на CI внешние вызовы запрещены (почему так правильно?)
  14. Предположим что в вашей системе реализована смена емейла. При этом этот емейл хранится еще и во внешней системе, например эквайринге, который шлет пользователю свои письма (но пользователь им напрямую не пользуется). Как бы вы реализовали синхронизацию емейла с внешней системой?
  15. Как вы узнаете об ошибках, которые происходят на продакшене? От пользователей или это автоматизировано?
  16. Как обеспечивается изоляция тестов друг от друга если они ходят в базу и меняют ее? Если в вашем фреймворке этого нет, то как вы это делаете или сделали бы?

Python

  1. Как создать генератор в Python?
  2. Чем тебе интересен Python? Почему выбрал эту технологию?
  3. Расскажи про проекты, которыми занимался, и какие технологии использовал?
  4. Как бы ты охарактеризовал Python? Какие преимущества или недостатки у него есть?
  5. Как ты понимаешь ссылочную модель в Python?
  6. Если мы создадим переменную a, в которой будет значение 1, и создадим переменную b = a, то сколько объектов и сколько ссылок будет создано?
  7. Для чего нужен счетчик ссылок в Python?
  8. Какие типы данных изменяемые, а какие неизменяемые в Python? Почему это важно?
  9. Расскажи про использование моков
  10. Какие есть способы расширить модель пользователя в Django?
  11. Что такое класс BaseView и для чего он используется?
  12. Как бы ты описал модель проектирования Django? Какие конструкции использует Django?
  13. Как реализовать систему избранного в интернет-магазине на Django?
  14. Как устроена система авторизации в Django?
  15. Как реализовать корзину для интернет-магазина в Django?

Сети

  1. Какие статусы ответов HTTP знаешь?
  2. В чем отличие GET запроса от POST? Можем ли отправить файл через GET?
  3. Какие методы HTTP передают тело запроса?
  4. Что входит в один HTTP-запрос?
  5. Что такое REST? Перечисли принципы. Перечисли частые методы

Базы данных

  1. Как реализуется связь многие ко многим в базах данных?
  2. Расскажи что такое транзакция
  3. Расскажи о принципах ACID
  4. В чем разница между UNION и JOIN? UNION и UNION ALL?
  5. Приходилось ли анализировать план запроса? Чем отличается EXPLAIN от EXPLAIN ANALYZE?
  6. Если соединяем несколько таблиц БД с помощью INNER JOIN, есть ли разница в оптимизации, в каком порядке соединяем таблицы?

Задачи

  1. Как написать скрипт для скачивания 1000 картинок? Какие подходы лучше (асинхронно, несколько потоков и т.д.)?
  2. Как бы ты оптимизировал скрипт для скачивания изображений и сделал из него микросервис?
  3. Как реализовать обработку изображений в таком микросервисе?
  4. Как написать код для подсчета четных чисел в списке?
  5. Как работать с запросами, которые внезапно стали медленнее, особенно с JOIN?
  6. Как обработать исключения при работе с файлами в Python (отсутствие файла, другие ошибки)?
  7. Как реализовать обращение к API с ограничением по времени и количеству потоков?