Курс на 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. Куда дальше: путь от миддла к сеньору