1. Основы Python
- Язык программирования, интерпретатор, интерфейс, фронтенд и бэкенд, возможности платформы
- Знакомство с Python
- Встроенные функции, переменные, арифметические операторы
- Типы данных
- Строки, числа, списки, Булев тип данных
- Функции
- Тело, параметры, аргументы функции, вызов одной функции из другой
- Ветвления
- Понятие, условия, тернарные операторы, множественные ветвления
- Циклы
- Циклы for и while, последовательности и диапазоны, вложенные циклы
Итог: Научитесь создавать игры при помощи библиотеки Turtle
2. Углубленный Python
- Переменные и типы данных
- Простые типы данных, коллекции, импортируемые типы данных, применение арифметических операторов
- Создание функций
- Функции в Python, разбиение кода на функции, значения параметров по умолчанию, позиционные и именованные параметры
- Ветвления
- Операторы сравнения, логические операторы, вложенные конструкции
- Коллекции
- Упорядоченные и неупорядоченные коллекции, изменяемые и неизменяемые типы данных, работа со словарями
- Итерации и циклы
- Итераторы, цикл for и цикл while, списковые и словарные включения, работа со вложенными циклами
- Настройка окружения
- Установка Python, работа в виртуальном окружении, Git и GitHub, выбор и настройка редактора кода, пакетный менеджер и установка модулей, работа в терминале
- Отладка программ
- Виды ошибок, дебаггинг программ в редакторе кода
- Объекты и классы
- Атрибуты и методы, абстракция, наследование, полиморфизм, инкапсуляция, ООП в Python
- Расширенные возможности
- Итераторы и генераторы, лямбда‑функции, декораторы, области видимости, интроспекция и работа с файлами
Итог: Научитесь создавать игры при помощи библиотеки Pygame
3. Алгоритмы и структуры данных
- Введение в алгоритмы
- Алгоритмы, линейный и бинарный поиск, время исполнения, алгоритмические задачи, тестирование программы, ввод‑вывод в разных языках программирования
- Структуры данных
- Оперативная память и представление данных, пространственная сложность алгоритма, массивы постоянного размера, динамические массивы, связные списки, структура данных
- Рекурсия и сортировки
- Рекурсивный и базовый случаи, реализация бинарного поиска, алгоритмы сортировки, выбор алгоритма сортировки, сортировка вставками и по ключу, сравнение
- Хеш‑функции
- Абстракция отображения, хеш‑таблица и хеш‑функция, коллизии, поисковый индекс
- Деревья
- Двоичные и сбалансированные, деревья поиска, балансировка АВЛ‑деревьев, приоритетная очередь, пирамидальная сортировка, алгоритм и его сложность
Итог: Научитесь оценивать сложность алгоритмов и выбирать самые эффективные решения для конкретной задачи
4.Бэкенд на Django
- Пути и view‑функции
- Изучите протокол HTTP, планирование адресов и конвертеры путей, распределение адресов по приложениям, view‑функции
- HTML и шаблоны Django
- HTML в Django, теги include, extends, block, словарь контекста, ветвление, циклы, ссылки и фильтры в шаблонах, подключение стилей, картинок и скриптов, настройка VS Code
- Введение в базы данных
- Получение данных с помощью практики запросов, сортировка, ограничение, сдвигание выборки, агрегирующие функции и группировка записей
- Отношения между таблицами
- «Один к одному», «многие к одному», «многие ко многим», объединение таблиц: JOIN, изменение таблиц в БД, ссылочная целостность
- Django ORM
- Описание таблиц и связей, Django Shell, CRUD‑операции в Django ORM, Django Debug Toolbar
- Админзона Django
- Создание суперпользователя, регистрация моделей в админке, локализация и перевод, настройка админзоны
- Работа с формами
- Формы в HTML и в Django, обработка данных, подключение стилей Bootstrap к HTML‑форме, CSRF‑токен, удаление и редактирование объектов, валидация, работа с изображениями
- Библиотека Pytest
- Выборочный запуск тестов, запуск упавших тестов, отладка тестов, маркеры, фикстуры, файл конфигураций, Pytest для Django
- Библиотека Unittest
- Метод subTest, параметризация тестов, фикстуры, Unittest в Django
Итог: Создадите веб‑приложение — платформу для блогов с авторизацией и комментариями
5. API: интерфейс взаимодействия программ
- Что такое API
- Взаимодействие программ по сети, API First, REST: ресурсы, эндпоинты и HTTP-методы, исследование запросов, механизмы авторизации, протокол OAuth 2.0
- Работа с внешними API
- Client API в Телеграме, Bot API в Телеграме, обработка входящих сообщений, всё о чате и пользователе, кнопки вместо текстового ввода, отправка изображений
- Django Rest Framework
- REST API, инструментарий для тестирования API, сериализаторы, view‑функции API, view-классы, вьюсеты и роутеры API, аутентификация по токену, JWT + Djoser
- Взаимодействие фронтенда и бэкенда
- Multi Page Application vs Single Page Application, документация для API, CORS и политика единого источника
- Лимиты запросов и фильтрация ответов
- Проверка прав: Permissions, Throttling: ограничение количества запросов, пагинация в API, фильтрация, сортировка и поиск
Итог: Сделаете сервис REST API и напишете бота, который взаимодействует с популярными веб‑сервисами
6. Управление проектом на удаленном сервере
- Работа с сервером
- Настройка подключения, работа в терминале Linux, установка и настройка веб‑ и прокси‑сервера, настройка SGI
- Деплой веб‑приложения на сервер
- DNS и доменные имена, протокол HTTPS, мониторинг работы приложений
- Работа с контейнерами
- Инструменты контейнеризации на примере Docker, упаковка и запуск приложения в контейнере, Docker Network, оркестрация контейнеров, автоматизация деплоя
- Дополнительные инструменты
- PostgreSQL, Docker Hub, GitHub Actions
- Работа с облаками
- Настройка и конфигурация виртуальных машин в Yandex Cloud
Итог: Задеплоите 2 проекта: классическим способом и с контейнерами. Научитесь автоматизировать деплой с помощью инструментов оркестрации
7. Асинхронность и Flask
- Конкурентность, параллельность и асинхронность
- Интерпретаторы и компиляторы, принципы работы многопоточности и многопроцессности в Python, GIL, библиотеки threading и multiprocessing, asyncio, aiofiles
- Основы Flask
- Маршрутизация запросов, SQLAlchemy, ORM, SQLite, интерактивная оболочка Flask, модели и шаблоны во Flask, Jinja2, конвертер пути, формы, флеш‑сообщения, миграции, модуль Click
- API на Flask
- Создание REST API на Flask, сериализация данных, валидация, обработка ошибок
- Асинхронный Flask
- Взаимодействие с API Dropbox, облачные хранилища, асинхронные сетевые запросы во Flask, взаимодействие с API Яндекс Диска
Итог: С помощью асинхронного подхода создадите сервис, который будет сокращать ссылки
7. Парсинг
- Введение в парсинг
- Сбор данных, структурирование и хранение информации с помощью библиотеки Beautiful Soup
- Работа с браузером
- Инструменты разработчика в браузере, исследование HTML‑разметки сайта и работа с регулярными выражениями
- Парсинг и авторизация
- Парсинг страницы с необходимостью авторизации и динамическим содержимым
- Фреймворк Scrapy
- Использование Scrapy для создания асинхронных парсеров
Итог: Сделаете парсинг статусов и типов документов с сайтов, а также асинхронный парсер для сбора и хранения данных о документах
7. FastAPI
- Фреймворк FastAPI
- Создадите типичное приложение на FastAPI, разберёте основы работы с асинхронным кодом
- Миграции: библиотека Alembic
- Научитесь использовать библиотеку, чтобы применять миграции при работе с SQLAlchemy
Итог: Сделаете приложение QRKot для фонда поддержки котиков на FastAPI