Prog Academy
RU UA

Курс по подписке

Асинхронный Python: asyncio на практике

Научитесь писать программы, которые не простаивают, пока ждут сеть, диск или другой сервис

  • 10 модулей
  • 30+ практических заданий
  • Автоматическая проверка
  • На русском

Получить доступ к курсу

Курс по подписке · Обучение в своём темпе

О курсе

Что это за курс?

Большинство реальных программ больше ждут, чем считают: ответ API, запрос к базе, загрузка файла. Пока обычный код ждёт, он не делает ничего. Асинхронный код на asyncio в это время занимается другими запросами — и там, где синхронная версия тратит десять секунд, асинхронная укладывается в одну. Этот курс научит вас такому коду: от первой корутины до сервиса, который собирает данные из десятков источников с лимитами, тайм-аутами и повторами.

Аудитория

Для кого этот курс?

  • Уверенно знаете Python

    Будете писать корутины с async/await и запускать работу одновременно через create_task, gather и TaskGroup.

  • Код ждёт API или базу данных

    Будете ставить тайм-ауты, повторы с экспоненциальной задержкой и ограничение частоты запросов к внешним сервисам.

  • Ревьюите асинхронный код

    Будете находить типичные ошибки, правильно отменять задачи и встраивать блокирующий код через to_thread.

Сначала нужна подготовка

Курс опирается на знания, отмеченные ниже как обязательные.

Нужно знать

  • Уверенный Python — функции, исключения, классы, генераторы и менеджеры контекста (всё это есть в курсе «Продвинутый Python»).

    Подробнее
    • О сетях и операционных системах знать ничего не нужно — всё необходимое объясняем по ходу.

Если этих знаний ещё нет — пройдите курсы по порядку:

  1. С нуля
  2. Обязательно Основы программирования на Python
  3. Этот курс Асинхронный Python: asyncio на практике

Результат

Чему вы научитесь

отличать задачи, которые ждут (I/O-bound), от задач, которые считают (CPU-bound), и выбирать между asyncio, потоками и процессами

писать корутины с async/await и понимать, что делает цикл событий

запускать работу одновременно: create_task, gather, as_completed, TaskGroup

ставить тайм-ауты на отдельный вызов и на целый сценарий, иметь запасной план

обрабатывать ошибки нескольких задач: return_exceptions, ExceptionGroup, except*

правильно отменять задачи и убирать за собой

синхронизировать задачи: Lock, Semaphore, Event, Queue

применять проверенные паттерны: повторы с экспоненциальной задержкой, асинхронные генераторы и менеджеры контекста, ограничение частоты запросов

встраивать блокирующий код через asyncio.to_thread и находить типичные ошибки на код-ревью

Формат

Как устроено обучение?

10 разделов, 22 урока теории, 34 практических задания с автоматической проверкой и тест в конце каждого раздела. Среди заданий — не только «напишите с нуля», но и поиск ошибок, рефакторинг последовательного кода в конкурентный и дописывание незаконченных программ. Финальный проект — конкурентный сборщик данных с ограничением нагрузки, тайм-аутами, повторами и дедлайном.

Код вы пишете прямо в браузере на Python. Сети в заданиях нет: внешние сервисы имитируются, а время идёт по симулированным часам — asyncio.sleep(2) не заставляет ждать две реальные секунды, но часы программы сдвигаются ровно на 2.0. Поэтому проверка точна и не зависит от нагрузки на сервер: последовательное решение видно сразу, потому что оно «тратит» больше симулированного времени.

  • Теория

    22 урока с примерами

  • Практика в браузере

    30+ заданий с автоматической проверкой

  • Тесты

    10 тестов для самопроверки

  • Свой темп

    Онлайн на my.prog.academy, без установки программ

AI-помощник

AI-помощник рядом во время обучения

На страницах курса, уроков и заданий есть кнопка «Спросить AI». Помощник знает материалы именно этого курса и урок, на котором вы сейчас, поэтому отвечает по теме и показывает, в каких уроках об этом говорится.

  • Объяснит иначе

    Не поняли урок с первого раза — попросите объяснить проще или привести ещё один пример.

  • Поможет с заданием

    Застряли — подскажет, с чего начать, и поможет найти ошибку в вашем решении. Готового решения не даёт.

  • Найдёт нужную тему

    Спросите, где объясняли понятие, — и получите ссылки на нужные уроки курса.

  • Продолжит разговор

    Уточняйте без повторов: помощник помнит разговор, а недавние разговоры курса сохраняются.

Входит в каждый тариф оплаченной подписки — Basic и Premium. В Premium лимиты использования AI-помощника выше — им можно пользоваться активнее. Это помощник в обучении, а не генератор готовых ответов: он объясняет и подсказывает, а задания вы решаете сами.

Программа

Программа курса

10 модулей, 30+ практических заданий с автоматической проверкой и 10 тестов. Откройте модуль, чтобы увидеть все темы.

Раздел 1 — Зачем асинхронность: ждать или считать 2 урока · 2 практики · 1 тест

Почему программы простаивают, чем ожидание отличается от вычислений и какие есть способы делать несколько дел одновременно

  • Теория Программа, которая ждёт: блокирующий ввод-вывод
  • Практика Сколько времени можно сэкономить
  • Теория Конкурентность и параллелизм: процессы, потоки, asyncio
  • Практика Курсы валют в пуле потоков
  • Тест Проверка: ждать или считать
Раздел 2 — Корутины и цикл событий 2 урока · 3 практики · 1 тест

async def, await и asyncio.run; что такое корутина, как цикл событий решает, кто выполняется дальше, и почему забытый await — тихая ошибка

  • Теория async def, await и asyncio.run
  • Практика Один повар
  • Теория Цикл событий изнутри
  • Практика Собственный цикл событий на генераторах
  • Практика Найдите забытый await
  • Тест Проверка: корутины и цикл событий
Раздел 3 — Задачи: работа одновременно 3 урока · 5 практик · 1 тест

create_task, gather, as_completed и TaskGroup — четыре способа запустить несколько корутин так, чтобы их ожидания накладывались

  • Теория create_task: запустить и не ждать
  • Практика Дашборд без очереди
  • Практика Пульс долгой операции
  • Теория gather и as_completed: собрать результаты
  • Практика Лучшая цена
  • Практика Первые свободные курьеры
  • Теория TaskGroup: структурированная конкурентность
  • Практика Профили клиентов из трёх сервисов
  • Тест Проверка: задачи
Раздел 4 — Тайм-ауты 2 урока · 3 практики · 1 тест

Лимит на одну операцию, бюджет времени на целый сценарий и запасной план, когда сервис не успел

  • Теория wait_for: лимит на одну операцию
  • Практика Датчики теплицы
  • Теория asyncio.timeout: бюджет на сценарий и запасной план
  • Практика Оформление за 3 секунды
  • Практика Основной сервер и резервный
  • Тест Проверка: тайм-ауты
Раздел 5 — Ошибки в конкурентном коде 2 урока · 3 практики · 1 тест

Что происходит с исключением внутри задачи, как собрать все ошибки группы задач и почему ошибка в фоновой задаче может исчезнуть бесследно

  • Теория Исключения в задачах и gather(return_exceptions=True)
  • Практика Импорт товаров с отчётом
  • Теория TaskGroup, ExceptionGroup и except*
  • Практика Синхронизация складов
  • Практика Пропадающие уведомления
  • Тест Проверка: ошибки в конкурентном коде
Раздел 6 — Отмена 2 урока · 3 практики · 1 тест

Как остановить задачу, где именно появляется CancelledError, как гарантированно убрать за собой и как устроить «гонку» нескольких источников

  • Теория cancel(), CancelledError и уборка в finally
  • Практика Вовремя остановить загрузку
  • Практика Воркер, который не хотел останавливаться
  • Теория Гонки: asyncio.wait, первый успешный и shield
  • Практика Самое быстрое рабочее зеркало
  • Тест Проверка: отмена
Раздел 7 — Синхронизация задач 3 урока · 5 практик · 1 тест

Гонки данных в одном потоке, Lock, Semaphore для ограничения нагрузки, Event для сигналов и Queue для конвейеров производитель–потребитель

  • Теория Гонки в asyncio и Lock
  • Практика Продажа последних мест
  • Теория Semaphore и Event
  • Практика Не больше двух загрузок
  • Практика Старт после конфигурации
  • Теория Queue: производитель и потребители
  • Практика Упаковка заказов
  • Практика Конвейер с обратным давлением
  • Тест Проверка: синхронизация
Раздел 8 — Асинхронные паттерны 3 урока · 4 практики · 1 тест

Повторы с экспоненциальной задержкой, асинхронные генераторы и async for, асинхронные менеджеры контекста и ограничение частоты запросов

  • Теория Повторы с экспоненциальной задержкой
  • Практика Повторы для нестабильного API
  • Теория Асинхронные генераторы и async for
  • Практика Первые оплаченные заказы
  • Теория Асинхронные менеджеры контекста
  • Практика Транзакция перевода
  • Практика Не чаще N запросов в секунду
  • Тест Проверка: асинхронные паттерны
Раздел 9 — Блокирующий код и типичные ошибки 2 урока · 3 практики · 1 тест

Как встроить блокирующую библиотеку в асинхронную программу, что делать с вычислениями и как за минуту найти типичные ошибки на код-ревью

  • Теория Блокирующий код в асинхронной программе: to_thread и процессы
  • Практика Старая библиотека геокодирования
  • Практика Почему котировки идут по очереди
  • Теория Типичные ошибки: чек-лист для код-ревью
  • Практика Код-ревью отправителя уведомлений
  • Тест Проверка: блокирующий код и типичные ошибки
Раздел 10 — Финальный проект: сборщик каталогов 1 урок · 3 практики · 1 тест

Конкурентный сборщик данных от поставщиков с ограничением нагрузки, тайм-аутами, повторами, дедлайном и отчётом — в три шага

  • Теория Проект: архитектура сборщика каталогов
  • Практика Проект, шаг 1: лимит и тайм-аут
  • Практика Проект, шаг 2: повторы
  • Практика Проект, шаг 3: дедлайн и отчёт
  • Тест Итоговая проверка курса

Стек

Какие технологии используются?

  • Python

Код пишете и запускаете в браузере на платформе — устанавливать ничего не нужно.

Доступ

Как получить доступ?

  1. Оставьте заявку

    Заполните короткую форму на этой странице.

  2. Завершите регистрацию в Telegram

    После заявки перейдите в Telegram-бот Prog Academy — он пришлёт дальнейшие инструкции по доступу.

  3. Учитесь на платформе

    Уроки, практика и тесты — на my.prog.academy, в удобном для вас темпе.

Контакт

Начните обучение на платформе

Оставьте контакты — пришлём детали доступа к курсу «Асинхронный Python: asyncio на практике».

Другие курсы по подписке

Терминал Linux (bash)

Основы Linux

Командная строка с нуля: файлы, права, процессы, сеть, bash-скрипты и SSH — в терминале учебной Ubuntu.

13 модулей · 40+ практических заданий

Кибербезопасность с ИИ: защита от современных атак и безопасная работа с искусственным интеллектом

Защита от современных атак для нетехнических специалистов: фишинг, пароли и MFA, инциденты, дипфейки и безопасная работа с ИИ.

12 модулей · 30+ практических заданий

Частые вопросы о курсе

Что это за курс?

«Асинхронный Python: asyncio на практике» — онлайн-курс по подписке на учебной платформе Prog Academy. Научитесь писать программы, которые не простаивают, пока ждут сеть, диск или другой сервис. Большинство реальных программ больше ждут, чем считают: ответ API, запрос к базе, загрузка файла. Пока обычный код ждёт, он не делает ничего. Асинхронный код на asyncio в это время занимается другими запросами — и там, где синхронная версия тратит десять секунд, асинхронная укладывается в одну. Этот курс научит вас такому коду: от первой корутины до сервиса, который собирает данные из десятков источников с лимитами, тайм-аутами и повторами.

Какие знания нужны перед стартом?

Нужно: уверенный Python — функции, исключения, классы, генераторы и менеджеры контекста (всё это есть в курсе «Продвинутый Python»). О сетях и операционных системах знать ничего не нужно — всё необходимое объясняем по ходу.

Какие практические задания будут?

10 разделов, 22 урока теории, 34 практических задания с автоматической проверкой и тест в конце каждого раздела. Среди заданий — не только «напишите с нуля», но и поиск ошибок, рефакторинг последовательного кода в конкурентный и дописывание незаконченных программ. Финальный проект — конкурентный сборщик данных с ограничением нагрузки, тайм-аутами, повторами и дедлайном. Код вы пишете прямо в браузере на Python. Сети в заданиях нет: внешние сервисы имитируются, а время идёт по симулированным часам — asyncio.sleep(2) не заставляет ждать две реальные секунды, но часы программы сдвигаются ровно на 2.0. Поэтому проверка точна и не зависит от нагрузки на сервер: последовательное решение видно сразу, потому что оно «тратит» больше симулированного времени.

Какие технологии используются?

Python. Код пишете и запускаете прямо в браузере на платформе — устанавливать ничего не нужно.

Сколько модулей в курсе?

10 модулей: Зачем асинхронность: ждать или считать; Корутины и цикл событий; Задачи: работа одновременно; Тайм-ауты; Ошибки в конкурентном коде; Отмена; Синхронизация задач; Асинхронные паттерны; Блокирующий код и типичные ошибки; Финальный проект: сборщик каталогов. Практических заданий с автоматической проверкой — 30+, тестов — 10.

Как получить доступ?

Оставьте заявку на этой странице и завершите регистрацию в Telegram-боте Prog Academy — там вы получите дальнейшие инструкции по доступу. Обучение проходит на платформе my.prog.academy в своём темпе.

Входит ли курс в подписку?

Да. Курс входит в подписку на платформе Prog Academy: доступ ко всем курсам по подписке; ai-помощник по обучению в каждом курсе; все уроки, домашние задания и автоматическая проверка; новые курсы по подписке добавляются автоматически.

Не нашли ответ?

Оставьте вопрос — подскажем, подходит ли вам курс и с чего лучше начать.