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+ практичних завдань

JavaScript (Node.js)

Як працює веб: від URL до HTTPS, API і безпеки

Шлях запиту від URL до готової сторінки: DNS, TCP, TLS, HTTP, кеш, cookies, API і захист вебзастосунків.

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-помічник з навчання в кожному курсі; усі уроки, домашні завдання та автоматична перевірка; нові курси за підпискою додаються автоматично.

Не знайшли відповідь?

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