Содержание пакета (3 курса)
1. Python с нуля: основы языка и автоматизация рутины 5.00
Введение и первый запуск в Google Colab
2 урока
1.
Введение: проекты, Python и маршрут
↗
2.
Первый запуск в Google Colab
↗
Данные и переменные
3 урока
1.
Переменные и числа
↗
2.
Ввод, вывод и приведение типов
↗
3.
Строки, f-строки, индексация и срезы
↗
Логика и ветвления
3 урока
1.
Булев тип и сравнения
↗
2.
if, elif, else
↗
3.
Комбинированные и вложенные условия
↗
Циклы
3 урока
1.
Цикл while
↗
2.
Цикл for и range
↗
3.
break, continue и накопление результата
↗
Списки и кортежи
3 урока
1.
Списки: индексы, срезы, методы, изменяемость
↗
2.
Кортежи и распаковка
↗
3.
Перебор коллекций и enumerate
↗
Словари и множества
3 урока
1.
Словари: ключи и значения
↗
2.
Перебор словаря, get и None, вложенные структуры
↗
3.
Множества и операции над ними
↗
Функции
4 урока
1.
Объявление функции: параметры и return
↗
2.
Аргументы: позиционные, именованные, по умолчанию
↗
3.
Изменяемый аргумент по умолчанию и области видимости
↗
4.
Произвольное число аргументов и docstring
↗
Идиомы и генераторы списков
3 урока
1.
List comprehension
↗
2.
Dict- и set-comprehension с условиями
↗
3.
zip, sorted с ключом и lambda
↗
Ошибки и исключения
3 урока
1.
Исключения и try / except
↗
2.
Несколько обработчиков, finally и raise
↗
3.
Когда ловить ошибку, а когда дать упасть
↗
Рабочее окружение
4 урока
1.
VS Code: редактор и рабочее место
↗
2.
Терминал и командная строка
↗
3.
uv: проект, свой Python и окружение
↗
4.
ruff: линтер, форматтер и рабочий цикл
↗
Модули и импорты
4 урока
1.
import и стандартная библиотека
↗
2.
Регулярные выражения: поиск по шаблону
↗
3.
Пути к файлам: pathlib
↗
4.
Свои модули и сторонние пакеты
↗
Специальные коллекции
2 урока
1.
Счёт и группировка: Counter и defaultdict
↗
2.
Очередь: deque
↗
Файлы и форматы данных
3 урока
1.
Чтение и запись текста, менеджер with
↗
2.
JSON: loads и dumps
↗
3.
CSV: чтение и запись таблиц
↗
ООП
5 уроков
1.
Класс, экземпляр, __init__ и self
↗
2.
Методы и dunder-методы
↗
3.
Наследование и композиция
↗
4.
property, dataclass и аннотации типов
↗
5.
Свои классы исключений
↗
Внутреннее устройство
4 урока
1.
Объекты, ссылки и идентичность
↗
2.
Изменяемость, копирование и aliasing
↗
3.
Области видимости: LEGB, global, nonlocal
↗
4.
Замыкания
↗
Итераторы, генераторы и менеджеры контекста
4 урока
1.
Протокол итератора
↗
2.
Генераторы и yield
↗
3.
Конвейеры на генераторах
↗
4.
Менеджеры контекста
↗
Декораторы
3 урока
1.
Функции как объекты
↗
2.
Декоратор и обёртка
↗
3.
functools.wraps, декораторы с аргументами и lru_cache
↗
Конкурентность и параллелизм
5 уроков
1.
Конкурентность и параллелизм: в чём разница
↗
2.
Потоки и GIL для задач ввода-вывода
↗
3.
Процессы для вычислительных задач
↗
4.
asyncio: async/await и event loop
↗
5.
asyncio: конкурентные задачи и gather
↗
Тестирование с pytest
3 урока
1.
Зачем тесты, assert и первый тест
↗
2.
Параметризация тестов
↗
3.
Фикстуры и структура тестов
↗
Инструменты разработчика: к своим проектам
6 уроков
1.
Git: контроль версий
↗
2.
GitHub: публикация и оформление репозитория
↗
3.
Логирование вместо print
↗
4.
Зависимости и секреты проекта
↗
5.
Как читать документацию библиотеки
↗
6.
Аргументы командной строки и конфигурация
↗
Парсинг: httpx и BeautifulSoup
4 урока
1.
Веб-запрос: HTTP, httpx и JSON-ответ
↗
2.
BeautifulSoup: поиск по тегам и классам
↗
3.
Сбор данных: обход, пагинация, этика
↗
4.
Связка: от запроса к структурированным данным
↗
Интерфейсы на Streamlit
3 урока
1.
Streamlit: запуск и виджеты
↗
2.
Состояние и реактивность
↗
3.
Интерфейс к своей автоматизации
↗
Расписание: APScheduler
3 урока
1.
Планировщик: job, trigger, типы триггеров
↗
2.
Расписания: interval, cron и вычисление запусков
↗
3.
Периодический запуск автоматизации
↗
База данных: Supabase
3 урока
1.
Зачем база данных: реляционная модель и таблицы
↗
2.
supabase-py: CRUD и обработка результатов
↗
3.
Связка: сохраняем собранные данные
↗
AI-интеграции: LlamaIndex
4 урока
1.
Подключение модели: OpenRouter и Ollama
↗
2.
Промптинг и обработка ответа
↗
3.
RAG: индексы и query engine
↗
4.
Workflows: шаги и события
↗
2. Базы данных для бэкенда: PostgreSQL вглубь и карта хранилищ
Данные, таблицы и первые запросы
6 уроков
1.
Первые запросы к живой базе
↗
2.
SELECT: выборка и фильтр
↗
3.
Порядок и количество строк
↗
4.
Вычисления в списке выборки
↗
5.
Данные в нескольких таблицах: ключи и связи
↗
6.
Свой PostgreSQL за десять минут
↗
Запросы к нескольким таблицам
5 уроков
1.
JOIN: соединение по ключу
↗
2.
Внешние соединения
↗
3.
Агрегаты и группировка
↗
4.
Подзапросы
↗
5.
Множества и сборка отчёта
↗
Своя база: таблицы, изменения, транзакции
5 уроков
1.
CREATE TABLE: собственная схема
↗
2.
Изменение данных
↗
3.
Ограничения целостности
↗
4.
Транзакция: всё или ничего
↗
5.
Запрос из кода: параметры вместо склейки
↗
Проектирование схемы
6 уроков
1.
Аномалии и нормальные формы
↗
2.
Ключи и связи на практике
↗
3.
Типы PostgreSQL, которые меняют схему
↗
4.
Массивы и диапазоны
↗
5.
jsonb: данные без фиксированной схемы
↗
6.
Денормализация осознанно
↗
Продвинутый SQL
6 уроков
1.
Оконные функции
↗
2.
Рамка окна и соседние строки
↗
3.
CTE: запрос из кусков
↗
4.
Рекурсивный CTE
↗
5.
LATERAL и разрезы агрегатов
↗
6.
Представления
↗
Индексы
7 уроков
1.
Когда данных стало много
↗
2.
B-tree: первый индекс
↗
3.
Составной индекс и порядок колонок
↗
4.
Частичный, покрывающий, по выражению
↗
5.
Почему индекс не используется
↗
6.
Другие типы индексов
↗
7.
Цена индекса
↗
Планы запросов и диагностика
7 уроков
1.
EXPLAIN: что сервер собирается делать
↗
2.
Узлы плана: чтение таблицы
↗
3.
Узлы плана: соединения и сортировки
↗
4.
BUFFERS: сколько данных прочитано на самом деле
↗
5.
Когда оценка врёт
↗
6.
Кто нагружает базу в проде
↗
7.
N+1 и стратегии загрузки связей
↗
Конкурентный доступ: MVCC, изоляция, блокировки
7 уроков
1.
Две брони на один слот
↗
2.
MVCC: что видит транзакция
↗
3.
Уровни изоляции и аномалии
↗
4.
Блокировки и deadlock
↗
5.
Механизмы вместо блокировок
↗
6.
Повторный запрос не должен создавать вторую бронь
↗
7.
Bloat, autovacuum и долгие транзакции
↗
Схема живёт в проде
5 уроков
1.
Миграция как код
↗
2.
Опасные ALTER
↗
3.
Изменение схемы в несколько шагов
↗
4.
Партиционирование как дизайн схемы
↗
5.
Реплики, лаг и соединения
↗
Поиск: полнотекстовый и векторный
6 уроков
1.
Поиск подстрокой и его потолок
↗
2.
Полнотекстовый поиск: tsvector и tsquery
↗
3.
Быстрый и релевантный полнотекст
↗
4.
Семантический поиск: векторы в базе
↗
5.
ANN-индекс и фильтры
↗
6.
Когда нужен выделенный векторный движок
↗
PostgreSQL как проект и соседи по цеху
3 урока
1.
Что дали ключевые версии PostgreSQL
↗
2.
Экосистема расширений
↗
3.
Другие SQL-СУБД
↗
Объектное хранилище: MinIO и S3
6 уроков
1.
Фотографии ресурсов не помещаются в базу
↗
2.
Бакет, объект, ключ
↗
3.
Положить, забрать, отдать пользователю
↗
4.
Доступ и временные ссылки
↗
5.
Ссылка в базе, файл в бакете
↗
6.
Версии, жизненный цикл и выгрузки
↗
Redis: данные в памяти
6 уроков
1.
Один и тот же запрос двадцать тысяч раз в минуту
↗
2.
Структуры данных Redis
↗
3.
Время жизни и вытеснение
↗
4.
Кэш без сюрпризов
↗
5.
Персистентность и гарантии
↗
6.
Другие роли Redis в сервисе
↗
MongoDB: документная модель
5 уроков
1.
Документ вместо строки
↗
2.
Запросы к документам
↗
3.
Схема под запросы
↗
4.
Индексы и агрегации
↗
5.
jsonb или MongoDB
↗
Elasticsearch: поисковый движок
4 урока
1.
Когда полнотекста PostgreSQL мало
↗
2.
Анализ текста и mapping
↗
3.
Запросы и релевантность
↗
4.
Агрегации и место рядом с основной базой
↗
Колоночная аналитика: ClickHouse и DuckDB
5 уроков
1.
Отчёты душат основную базу
↗
2.
DuckDB: колоночная база на ноутбуке
↗
3.
ClickHouse и MergeTree
↗
4.
Схема и запросы в ClickHouse
↗
5.
Антипаттерны и границы колоночных хранилищ
↗
Выбор хранилища и защита решения
4 урока
1.
Рамка выбора хранилища
↗
2.
Один PostgreSQL или зоопарк
↗
3.
Чего мы не брали и почему
↗
4.
Капстоун: хранение под кейс
↗
3. Старт в бэкенде на Python: FastAPI, SQLAlchemy и Docker
Разминка и первый запуск
2 урока
1.
Python, на котором стоит курс
↗
2.
От скрипта к сервису
↗
HTTP и дизайн REST API
3 урока
1.
Путь HTTP-запроса
↗
2.
Методы и коды состояния
↗
3.
Дизайн REST API
↗
Асинхронность на практике
4 урока
1.
Event loop и корутины
↗
2.
Задачи и конкурентность
↗
3.
Отмена и таймауты
↗
4.
Structured concurrency и блокирующий код
↗
FastAPI: первые endpoint'ы
5 уроков
1.
Первый endpoint на FastAPI
↗
2.
Как FastAPI исполняет async: anyio под капотом
↗
3.
Параметры пути, запроса и тела
↗
4.
Pydantic-контракты
↗
5.
OpenAPI и интерактивная документация
↗
Структура приложения и первые тесты
4 урока
1.
От одного файла к слоям
↗
2.
Routers и services
↗
3.
Зависимости FastAPI
↗
4.
Первые тесты API
↗
Docker как инструмент окружения
2 урока
1.
Образ и контейнер
↗
2.
PostgreSQL контейнером
↗
PostgreSQL и модель данных
5 уроков
1.
Реляционная модель и окно в базу
↗
2.
Подключение к PostgreSQL
↗
3.
Сессия на запрос: цепочка зависимостей
↗
4.
ORM-модели
↗
5.
Связи и ограничения целостности
↗
Запросы, запись и миграции
5 уроков
1.
Запросы: select, where, сортировка и пагинация
↗
2.
Загрузка связей
↗
3.
Запись: add, flush, commit, rollback, refresh
↗
4.
Транзакция как атомарная группа
↗
5.
Alembic: миграции схемы
↗
Прикладные правила: доступность, конфликты, транзакции
3 урока
1.
Правила доступности ресурса
↗
2.
Транзакция на уровне сервиса
↗
3.
Ошибки БД → прикладные ошибки
↗
Аутентификация и авторизация
4 урока
1.
Хеширование паролей и регистрация
↗
2.
Аутентификация и access token
↗
3.
Текущий пользователь и защищённые endpoint'ы
↗
4.
Авторизация: владелец ресурса и роль
↗
Надёжность: ошибки и структурированные логи
4 урока
1.
Единообразная обработка ошибок
↗
2.
Rollback и целостность при сбое
↗
3.
Стандартный logging: уровни и конфигурация
↗
4.
structlog: структурированные логи
↗
Тестирование сервиса
6 уроков
1.
Кубок вместо пирамиды: уровни проверки
↗
2.
Статический анализ: фундамент кубка
↗
3.
Фикстуры, одноразовый PostgreSQL и изоляция тестов
↗
4.
Первый интеграционный тест: бронь от запроса до БД
↗
5.
Интеграционные сценарии: конфликты, доступность, авторизация
↗
6.
Мокирование внешних зависимостей
↗
Доставка: Dockerfile и Docker Compose
3 урока
1.
Свой образ: Dockerfile
↗
2.
Docker Compose: приложение и PostgreSQL
↗
3.
Готовность БД, миграции и запуск
↗
Capstone: расширение сервиса
3 урока
1.
Сборка законченного сервиса
↗
2.
Расширение на выбор
↗
3.
Документируй и защищай решения
↗