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, без установки программ

Платформа Prog Academy

Больше, чем доступ к курсу

Курс проходит на платформе Prog Academy — вместе с ним вы получаете AI-помощника и инструменты для поиска первой работы в IT.

Обучение

90% практики

Вы учитесь, выполняя задания: каждую новую тему сразу применяете на практике, а не только читаете теорию. Задания проверяются автоматически, прямо в браузере.

AI-помощник по обучению

Вы не остаётесь один на один с материалом

Что-то непонятно или застряли на задании — спросите прямо в уроке. Помощник объяснит тему проще, ответит на вопросы, поможет разобраться в условии задания и подскажет следующий шаг, найдёт нужное в материалах курса. Он знает, какой урок вы проходите, и помнит разговор.

Карьера

  • Сертификат после окончания курса

    Успешно прошли курс — получаете сертификат и в один клик добавляете его в профиль LinkedIn.

  • Конструктор резюме

    Резюме на английском, украинском или русском — прямо на платформе. Ваши курсы и сертификаты добавляются в него в пару кликов.

  • База вакансий

    Junior-вакансии и стажировки в одном месте — с подборкой под курсы, которые вы проходите.

Вся платформа — в одном аккаунте

  • Все ваши курсы
  • Прогресс по каждому курсу
  • Обучение в своём темпе
  • Ничего не нужно устанавливать

Программа

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

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 на практике». Без звонков и консультаций.

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

C++

C++ Advanced

C++ Advanced: от основ языка к коду, который пишут в реальных проектах

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

TypeScript

TypeScript: углубленный уровень

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

11 модулей · 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-помощник по обучению в каждом курсе; все уроки, домашние задания и автоматическая проверка; новые курсы по подписке добавляются автоматически.

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

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