Skip to content

Latest commit

 

History

History
131 lines (106 loc) · 11.2 KB

python.md

File metadata and controls

131 lines (106 loc) · 11.2 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 и как оно работает?

Безопасность

  1. Какие виды уязвимостей знаешь?
  2. Что такое XSS уязвимость? Как организовать защиту от неё?
  3. Что такое SQLi уязвимость? Как организовать защиту от неё?
  4. Чем HTTPS отличается от HTTP?

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. Какие типы XSS уязвимости ты знаешь?
  2. Какие типы SQLi уязвимости ты знаешь?
  3. Знаком с OWASP? Какая цель у этого проекта и чем он полезен разработчикам?
  4. Расскажи про OWASP Top 10. Какие самые популярные уязвимости в этом рейтинге?

Задачи

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