Основы 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, инциденты, дипфейки и безопасная работа с ИИ.
Оставьте вопрос — подскажем, подходит ли вам курс и с чего лучше начать.