На цьому курсі розпочнуть з розуміння різниці між асинхронним та синхронним програмуванням. З'ясують, коли варто використовувати асинхронний підхід. Розберуть такі поняття як coroutine, subroutine, thread та process.
Студенти ознайомляться з основними примітивами та об'єктами asyncio. Дізнаються про awaitable-об'єкти та способи їх використання. Цей модуль дасть практичне розуміння інструментів асинхронного програмування в Python.
Тут зрозуміють, як блокувальні та неблокувальні операції впливають на мережеві застосунки. Навчаться писати мережеві сервіси з використанням asyncio. Розберуть принцип роботи Event Loop та його взаємодію з системним функціоналом.
Модуль охоплює складніші аспекти - race conditions та їх вплив на програми. Студенти вивчать примітиви синхронізації для asyncio та навчаться тестувати асинхронний код за допомогою pytest.
Практичний модуль про використання асинхронних підходів для CPU-bound задач. Розглянуть MapReduce-підхід для обробки даних. Ознайомляться з інструментами аналізу продуктивності програм.
Студенти навчаться запускати PostgreSQL у докер-контейнерах. Розберуть різницю між асинхронними та синхронними драйверами. Практикуватимуться з asyncpg, SQLAlchemy та Alembic. Зрозуміють переваги асинхронного підходу для зберігання даних.
Цей блок охоплює розробку веб-сервісів. Розберуть відмінності між WSGI та ASGI протоколами. З'ясують, коли ASGI працює швидше. Навчаться створювати web-сервіси з використанням FastAPI та SQLAlchemy, ознайомляться з функціоналом FastAPI.
Модуль про комунікації між сервісами в мікросервісній архітектурі. Студенти зрозуміють, коли використовувати синхронні та асинхронні комунікації. Розберуть різницю між чергами та потоками.
Курс завершується Q&A сесією з лектором, де розбирають питання щодо курсових проектів. Студенти підготуються до технічних інтерв'ю - дізнаються про типові запитання рекрутерів. На заключному занятті презентують свої курсові проекти колегам.
Курс включає 12 онлайн-занять з підтримкою ментора. Після успішного завершення студенти отримують сертифікат. В процесі навчання розробляють вебсервіси, що стануть частиною портфоліо.