Docker з нуля: контейнери, Docker Compose та практика
Docker з нуля: від першого контейнера до власного стеку в Docker Compose
Курс за підпискою
Навчіться писати програми, які не простоюють, поки чекають на мережу, диск чи інший сервіс
Отримати доступ до курсу
Курс за підпискою · Навчання у власному темпі · Без дзвінків і консультацій
Про курс
Більшість реальних програм більше чекають, ніж рахують: відповідь 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, без встановлення програм
Платформа Prog Academy
Курс проходить на платформі Prog Academy — разом із ним ви отримуєте AI-помічника й інструменти для пошуку першої роботи в IT.
Навчання
Ви вчитеся, виконуючи завдання: кожну нову тему одразу застосовуєте на практиці, а не лише читаєте теорію. Завдання перевіряються автоматично, просто в браузері.
Ви не залишаєтеся наодинці з матеріалом
Щось незрозуміло або застрягли на завданні — запитайте просто в уроці. Помічник пояснить тему простішими словами, відповість на питання, допоможе розібратися в умові завдання й підкаже наступний крок, знайде потрібне в матеріалах курсу. Він знає, який урок ви проходите, і пам’ятає розмову.
Кар’єра
Успішно пройшли курс — отримуєте сертифікат і в один клік додаєте його в профіль LinkedIn.
Резюме англійською та українською — просто на платформі. Ваші курси й сертифікати додаються в нього в кілька кліків.
Junior-вакансії та стажування в одному місці — з добіркою під курси, які ви проходите.
Уся платформа — в одному акаунті
Програма
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 на практиці». Без дзвінків і консультацій.
Docker з нуля: від першого контейнера до власного стеку в Docker Compose
C++ Advanced: від основ мови до коду, який пишуть у реальних проєктах
Проєктуйте типи, які самі не дають написати неправильний код
Залиште запитання — підкажемо, чи підходить вам курс і з чого краще почати.