Чему вы научитесь
- Понимать разницу между асинхронным, многопоточным и многопроцессным программированием. Анализировать природу задач и выбирать оптимальный подход для их решения.
- Работать с библиотеками и модулями Python: asyncio для асинхронного программирования, threading для многопоточности и multiprocessing для параллельных вычислений. Кроме этого научитесь применять: concurrent.futures, queue, select, selectors, socket, inspect, ctypes, contextvars, contextlib, uvloop, logging.
- Узнаете, как устроены изнутри ключевые модули Python, и заглянете «под капот» механизмов многопоточности и цикла событий asyncio. Это знание даст вам возможность отлаживать сложные сценарии и понимать поведение вашего кода на глубоком уровне.
- Применять лучшие практики для написания чистого, поддерживаемого и масштабируемого кода.
- Использовать пулы потоков и процессов для оптимизации производительности.
- Работать с асинхронными сетевыми запросами.
- Организовывать потоковую обработку данных и управлять большими объемами информации.
- Разберетесь с новыми возможностями современного Python для параллельного выполнения задач, используя пул субинтерпретаторов и экспериментальные версии интерпретаторов с отключенным GIL. Познакомитесь с мощными инструментами для обхода ограничения GIL, такими как NumPy, Numba и Cython, и научитесь использовать их для ускорения вычислений в десятки раз, эффективно совмещая их с многопоточностью.
- Научитесь работать с асинхронными базами данных на примере PostgreSQL и библиотеки asyncpg, от выполнения простых запросов до использования пулов соединений в высоконагруженных приложениях.
- Вы научитесь логировать в Python: от глубокого понимания внутреннего устройства Logger, Handler, Formatter и Filter до построения промышленных систем с ротацией, сжатием, JSON-сериализацией и записью в базы данных.
О курсе
Для кого этот курс
Начальные требования
Теория и практические задачи курсов написаны с расчетом того, что учащиеся знают базовый синтаксис языка Python, умеют использовать циклы, коллекции, контекстный менеджер, конструкцию try except, без труда определяют функции и вызывают их, умеют работать с текстовыми файлами, знают как импортировать модули и библиотеки, понимают как возбуждать исключения используя raise. Курс будет пройти проще, если Вы уже знакомы с ООП на уровне создания простых классов и переопределения методов.
Преподаватели курса
Как проходит обучение
Обучение включает в себя:
- Теорию в виде текста, а также ссылки на материал для дополнительного самостоятельного изучения. Учащийся сам решает "как глубоко ему копать".
- Домашние задания для самостоятельной работы. Ведь самое лучшее усвоение знаний происходит при самостоятельной исследовательской работе.
- Практические уроки в виде задач с автоматической проверкой кода-решения и различных опросников и "угадаек".
- Поддержку преподавателя. Вы всегда сможете получить квалифицированный ответ на вопросы по темам курса и помощь в решении задач, если это будет необходимо.
- Итоговый учебный проект позволяющий применить новые полученные знания в условиях работы с реальными сервисами на реальных данных.
Что вы получите
- Вы получаете возможность закрепить теоретические знания о применении различных библиотек: asyncio, threading, multiprocessing, concurrent.futures, queue, select, selectors, inspect, ctypes на практических учебных задачах и "набить руку".
- Курс поможет Вам укрепить необходимую базу и подготовит Вас к дальнейшему профессиональному созданию сложных многозадачных решений с использованием асинхронности, многопоточности и многопроцессности.
- При желании Вы сможете добавить в свое портфолио интересный и оригинальный pet-project, основанный на финальном задании.