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