Курс на Stepik
Обложка курса «Python для мидлов» на Stepik
500 ₽

Python для мидлов ★ 5.000

Открыть на
STEPIK.ORG

Python 3.12+ для middle-разработчика: декораторы, генераторы, ООП, typing, конкурентность, asyncio, pytest, БД, API, упаковка, качество кода и REST-проект.

Показатель Текущие показатели Рост
Значение 🏆 Рейтинг 3 дн 7 дн 30 дн
Количество учеников на курсе «Python для мидлов»Учеников на курсе 50
Сертификаты, выданные на курсе «Python для мидлов»Сертификатов выдано 0
Отзывы о курсе «Python для мидлов»Отзывов получено 1
Рейтинг курса «Python для мидлов»Рейтинг курса 5.000
Уроки в курсе «Python для мидлов»Количество уроков 140
Тесты в курсе «Python для мидлов»Количество квизов 695
Время прохождения курса «Python для мидлов»Время прохождения курса —
Стоимость курса «Python для мидлов»Стоимость курса 500 ₽ —
Обновления курса «Python для мидлов»Обновления курса — —
Дата публикации курса «Python для мидлов»Дата публикации курса — ———
Последнее обновление курса «Python для мидлов»Последнее обновление — ———
Сложность normal — ———

Содержание курса

Разделы в курсе «Python для мидлов» 20 разделов Уроки в курсе «Python для мидлов» 140 уроков Тесты в курсе «Python для мидлов» 695 тестов Время прохождения курса «Python для мидлов» 0 ч. Последнее обновление курса «Python для мидлов» обн. 16 июля 2026

Модуль 1. Введение: путь от джуна к продуктивному миддлу

6 уроков
1. О курсе: как проходить обучение и канал «Логово Дата-Инженера» ↗
2. Чем миддл отличается от джуна: не только «больше кода» ↗
3. Что мы считаем пройденным: краткая ревизия базы Python ↗
4. Как устроен этот курс и как с ним работать ↗
5. Продвинутое окружение разработки: venv и управление… ↗
6. С чего начать, если вы пришли не из курса «Python для джунов» ↗

Модуль 2. Продвинутые функции

9 уроков
1. Функции как объекты первого класса ↗
2. Замыкания (closures): функция, которая помнит контекст ↗
3. Функции высшего порядка: map, filter ↗
4. functools.reduce и свёртка последовательностей ↗
5. Лямбда-функции: когда они уместны, а когда нет ↗
6. Декораторы: идея и первый собственный декоратор ↗
7. Декораторы с аргументами ↗
8. functools.wraps и почему это важно ↗
9. Практика: пишем библиотеку полезных декораторов ↗

Модуль 3. Итераторы и генераторы

8 уроков
1. Протокол итератора: __iter__ и __next__ ↗
2. Пишем собственный итератор ↗
3. Генераторные функции и оператор yield ↗
4. Генераторные выражения ↗
5. yield from и делегирование генераторам ↗
6. Ленивые вычисления: зачем это нужно на практике ↗
7. Модуль itertools: инструменты для настоящих конвейеров ↗
8. Практика: конвейер обработки данных на генераторах ↗

Модуль 4. Продвинутое объектно-ориентированное программирование

12 уроков
1. Свойства (property): управляемые атрибуты ↗
2. Классовые методы и статические методы ↗
3. Множественное наследование и порядок разрешения методов (MRO) ↗
4. Абстрактные классы: модуль abc ↗
5. Магические методы сравнения: __eq__, __lt__, __hash__ ↗
6. Магические методы контейнеров: __len__, __getitem__… ↗
7. __repr__ против __str__: два разных представления объекта ↗
8. Дескрипторы: как на самом деле работает property ↗
9. dataclasses: сокращаем шаблонный код классов ↗
10. Enum: типобезопасные перечисления ↗
11. Композиция против наследования: осознанный выбор ↗
12. Практика: проектируем иерархию классов для реальной задачи ↗

Модуль 5. Типизация (type hints)

8 уроков
1. Зачем нужны подсказки типов в динамическом языке ↗
2. Базовые аннотации: переменные, параметры, возврат ↗
3. typing: List, Dict, Optional, Union ↗
4. Псевдонимы типов и TypeAlias ↗
5. Protocol: структурная типизация вместо наследования ↗
6. mypy: статическая проверка типов ↗
7. Дженерики: обобщённые функции и классы (введение) ↗
8. Практика: типизируем существующий модуль ↗

Модуль 6. Исключения и устойчивый код

6 уроков
1. Иерархия встроенных исключений Python ↗
2. Проектируем собственные исключения ↗
3. Цепочки исключений: raise ... from ↗
4. Контекстные менеджеры для обработки ошибок ↗
5. Правильное логирование ошибок ↗
6. Практика: устойчивый модуль с грамотной обработкой ошибок ↗

Модуль 7. Контекстные менеджеры и управление ресурсами

5 уроков
1. Протокол __enter__ и __exit__ ↗
2. contextlib.contextmanager: менеджер из функции ↗
3. Несколько контекстных менеджеров одновременно ↗
4. Управление ресурсами: файлы, соединения, блокировки ↗
5. Практика: собственный контекстный менеджер ↗

Модуль 8. Коллекции стандартной библиотеки

7 уроков
1. collections.Counter: подсчёт элементов ↗
2. collections.defaultdict: словарь со значением по умолчанию ↗
3. collections.namedtuple: лёгкие структуры данных ↗
4. collections.deque: очередь с двух сторон ↗
5. heapq: приоритетные очереди ↗
6. bisect: бинарный поиск и поддержание отсортированности ↗
7. Практика: выбор правильной структуры данных под задачу ↗

Модуль 9. Строки и текст глубже

4 урока
1. Регулярные выражения подробно: группы, жадность, флаги ↗
2. Обработка Unicode и кодировок текста ↗
3. Продвинутое форматирование строк ↗
4. Практика: парсинг структурированного текста ↗

Модуль 10. Конкурентность: потоки

7 уроков
1. Процессы и потоки: как это устроено на уровне ОС ↗
2. Модуль threading: создание и запуск потоков ↗
3. GIL: что это и как влияет на потоки Python ↗
4. Синхронизация потоков: Lock, RLock, Semaphore ↗
5. Очереди Queue для обмена данными между потоками ↗
6. ThreadPoolExecutor: пул потоков без ручного управления ↗
7. Практика: параллельная загрузка данных ↗

Модуль 11. Конкурентность: процессы

4 урока
1. Модуль multiprocessing: независимые процессы ↗
2. ProcessPoolExecutor: пул процессов ↗
3. Обмен данными между процессами ↗
4. Потоки или процессы: как выбирать осознанно ↗

Модуль 12. Асинхронное программирование: введение

8 уроков
1. Какую проблему решает асинхронность ↗
2. async/await: базовый синтаксис корутин ↗
3. Событийный цикл (event loop): как это работает ↗
4. asyncio.gather: параллельный запуск корутин ↗
5. Асинхронные сетевые запросы: обзор aiohttp ↗
6. Синхронизация в asyncio: Lock и Semaphore ↗
7. Частые ошибки в асинхронном коде ↗
8. Практика: асинхронный клиент к нескольким источникам ↗

Модуль 13. Тестирование по-взрослому

11 уроков
1. pytest глубже: организация тестов ↗
2. Фикстуры pytest: подготовка и переиспользование данных ↗
3. Параметризация тестов ↗
4. Mock и patch: изолируем внешние зависимости ↗
5. Тестирование исключений ↗
6. Покрытие кода (coverage): что оно на самом деле измеряет ↗
7. Тестовые данные и фабрики объектов ↗
8. Тестирование асинхронного кода ↗
9. Интеграционные тесты против модульных ↗
10. TDD на практике: тест раньше кода ↗
11. Практика: тестируем реальный модуль от начала до конца ↗

Модуль 14. Работа с базами данных

7 уроков
1. SQL из Python: встроенный модуль sqlite3 ↗
2. Параметризованные запросы и защита от SQL-инъекций ↗
3. Введение в ORM: зачем он нужен ↗
4. SQLAlchemy: модели, сессии и запросы ↗
5. Миграции схемы: обзор Alembic ↗
6. Пул соединений и его настройка ↗
7. Практика: CRUD-модуль поверх ORM ↗

Модуль 15. Работа с внешними API и сетью

7 уроков
1. HTTP из Python: библиотека requests ↗
2. REST API: методы, статус-коды, заголовки ↗
3. Авторизация: токены и ключи API ↗
4. Обработка сетевых ошибок и таймаутов ↗
5. Повторные попытки и ограничение частоты запросов ↗
6. Работа с JSON-ответами API ↗
7. Практика: клиент к внешнему сервису ↗

Модуль 16. Логирование и наблюдаемость

5 уроков
1. Модуль logging: уровни и форматы сообщений ↗
2. Настройка логирования для приложения ↗
3. Структурированное логирование ↗
4. Метрики и трейсинг: первое знакомство ↗
5. Практика: логирование в реальном модуле ↗

Модуль 17. Упаковка и распространение кода

6 уроков
1. Структура пакета Python ↗
2. pyproject.toml и современная упаковка ↗
3. Публикация пакета: обзор процесса и PyPI ↗
4. Управление зависимостями современными инструментами ↗
5. Семантическое версионирование ↗
6. Практика: собираем и устанавливаем свой пакет ↗

Модуль 18. Инструменты разработчика и качество кода

6 уроков
1. Линтеры: ruff и статический анализ кода ↗
2. Форматтеры: единый стиль без споров ↗
3. Pre-commit hooks: проверки перед каждым коммитом ↗
4. Непрерывная интеграция: обзор автоматизации на CI ↗
5. Профилирование: cProfile и timeit ↗
6. Практика: настраиваем проверки для проекта ↗

Модуль 19. Паттерны проектирования на Python

8 уроков
1. Зачем нужны паттерны и когда они не нужны ↗
2. Singleton: почему в Python он особенный ↗
3. Factory и Abstract Factory ↗
4. Strategy: заменяемое поведение ↗
5. Observer: подписка на события ↗
6. Decorator как паттерн проектирования (не путать с декоратором… ↗
7. Внедрение зависимостей в питоническом стиле ↗
8. Практика: рефакторинг кода с применением паттернов ↗

Модуль 20. Итоговый проект миддла

6 уроков
1. Постановка задачи: небольшой REST-сервис с базой данных ↗
2. Проектирование архитектуры сервиса ↗
3. Реализация: слои, тесты, обработка ошибок ↗
4. Логирование и конфигурация сервиса ↗
5. Упаковка и запуск готового сервиса ↗
6. Куда дальше: путь от миддла к сеньору ↗