Основи Linux
Командний рядок з нуля: файли, права, процеси, мережа, bash-скрипти і SSH — у терміналі навчальної Ubuntu.
Курс за підпискою
Навчіться писати програми, які не простоюють, поки чекають на мережу, диск чи інший сервіс
Отримати доступ до курсу
Курс за підпискою · Навчання у власному темпі
Про курс
Більшість реальних програм більше чекають, ніж рахують: відповідь API, запит до бази, завантаження файлу. Поки звичайний код чекає, він не робить нічого. Асинхронний код на asyncio у цей час займається іншими запитами — і там, де синхронна версія витрачає десять секунд, асинхронна вкладається в одну. Цей курс навчить вас такого коду: від першої корутини до сервісу, що збирає дані з десятків джерел із лімітами, тайм-аутами й повторами.
Аудиторія
Впевнено знаєте Python
Писатимете корутини з async/await і запускатимете роботу одночасно через create_task, gather і TaskGroup.
Код чекає на API чи базу даних
Ставитимете тайм-аути, повтори з експоненційною затримкою й обмеження частоти запитів до зовнішніх сервісів.
Рев'юєте асинхронний код
Знаходитимете типові помилки, правильно скасовуватимете задачі й вбудовуватимете блокувальний код через to_thread.
Курс спирається на знання, позначені нижче як обов’язкові.
Потрібно знати
Впевнений Python — функції, винятки, класи, генератори й менеджери контексту (усе це є в курсі «Просунутий Python»).
Якщо цих знань ще немає — пройдіть курси за порядком:
Результат
відрізняти задачі, що чекають (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». Помічник знає матеріали саме цього курсу й урок, на якому ви зараз, тому відповідає по темі й показує, у яких уроках про це йдеться.
Не зрозуміли урок з першого разу — попросіть пояснити простіше або дати ще один приклад.
Застрягли — підкаже, з чого почати, і допоможе знайти помилку у вашому рішенні. Готового рішення не дає.
Запитайте, де пояснювали поняття, — і отримаєте посилання на потрібні уроки курсу.
Уточнюйте без повторів: помічник пам’ятає розмову, а нещодавні розмови курсу зберігаються.
Входить у кожен тариф оплаченої підписки — Basic і Premium. У Premium ліміти використання AI-помічника вищі — ним можна користуватися активніше. Це помічник у навчанні, а не генератор готових відповідей: він пояснює й підказує, а завдання ви розв’язуєте самі.
Програма
10 модулів, 30+ практичних завдань з автоматичною перевіркою і 10 тестів. Відкрийте модуль, щоб побачити всі теми.
Чому програми простоюють, чим очікування відрізняється від обчислень і які є способи робити кілька справ одночасно
async def, await і asyncio.run; що таке корутина, як цикл подій вирішує, хто виконується далі, і чому забутий await — тиха помилка
create_task, gather, as_completed і TaskGroup — чотири способи запустити кілька корутин так, щоб їхні очікування накладалися
Ліміт на одну операцію, бюджет часу на цілий сценарій і резервний план, коли сервіс не встиг
Що відбувається з винятком усередині задачі, як зібрати всі помилки групи задач і чому помилка у фоновій задачі може зникнути безслідно
Як зупинити задачу, де саме з'являється CancelledError, як гарантовано прибрати за собою і як влаштувати «перегони» кількох джерел
Гонки даних у одному потоці, Lock, Semaphore для обмеження навантаження, Event для сигналів і Queue для конвеєрів виробник–споживач
Повтори з експоненційною затримкою, асинхронні генератори й async for, асинхронні менеджери контексту та обмеження частоти запитів
Як вбудувати блокувальну бібліотеку в асинхронну програму, що робити з обчисленнями і як за хвилину знайти типові помилки на рев'ю
Конкурентний збирач даних від постачальників з обмеженням навантаження, тайм-аутами, повторами, дедлайном і звітом — у три кроки
Стек
Код пишете й запускаєте в браузері на платформі — встановлювати нічого не потрібно.
Доступ
Заповніть коротку форму на цій сторінці.
Після заявки перейдіть у Telegram-бот Prog Academy — він надішле подальші інструкції щодо доступу.
Уроки, практика й тести — на my.prog.academy, у зручному для вас темпі.
Контакт
Залиште контакти — надішлемо деталі доступу до курсу «Асинхронний Python: asyncio на практиці».
Командний рядок з нуля: файли, права, процеси, мережа, bash-скрипти і SSH — у терміналі навчальної Ubuntu.
Шлях запиту від URL до готової сторінки: DNS, TCP, TLS, HTTP, кеш, cookies, API і захист вебзастосунків.
Захист від сучасних атак для нетехнічних фахівців: фішинг, паролі й MFA, інциденти, дипфейки і безпечна робота з ШІ.
Залиште запитання — підкажемо, чи підходить вам курс і з чого краще почати.