Чему вы научитесь
- Вы разберетесь с важной, интересной и сложной темой многопоточного и асинхронного программирования, что позволит создавать эффективные приложения. Это не только повысит Ваши профессиональные навыки, но и откроет новые возможности для карьерного роста в области разработки программного обеспечения.
- Узнаете историю развития асинхронного программирования и научитесь создавать асинхронные программы без использования библиотеки asyncio, используя генераторы и коллбэки.
- Разберетесь в возможностях операционной системы с точки зрения управления и контроля состояний операций ввода-вывода. Научитесь использовать модули select и selectors.
- Узнаете, как создавать собственные аналоги цикла событий и асинхронные классы.
- Работать с библиотеками и модулями Python: asyncio для асинхронного программирования, threading для многопоточности. Кроме этого научитесь применять: concurrent.futures, queue, socket, inspect, contextvars, contextlib, uvloop.
- Получите навыки устранения проблем, связанных с конкурентностью и научитесь использовать синхронизацию для обеспечения безопасности данных.
- Разберетесь с новыми возможностями современного Python для параллельного выполнения задач, используя пул субинтерпретаторов и экспериментальные версии интерпретаторов с отключенным GIL.
- Разберетесь с внутренней реализацией модулей threading и asyncio. Научитесь не только использовать модули, но и узнаете как все работает "под капотом".
О курсе
Для кого этот курс
Начальные требования
Теория и практические задачи курсов написаны с расчетом того, что учащиеся знают базовый синтаксис языка Python, умеют использовать циклы, коллекции, контекстный менеджер, конструкцию try except, без труда определяют функции и вызывают их, умеют работать с текстовыми файлами, знают как импортировать модули и библиотеки, понимают как возбуждать исключения используя raise. Курс будет пройти проще, если Вы уже знакомы с ООП на уровне создания простых классов и переопределения методов.
Преподаватели курса
Как проходит обучение
Каждый курс включает в себя:
- Теорию в виде текста, а также ссылки на материал для дополнительного самостоятельного изучения. Учащийся сам решает "как глубоко ему копать".
- Домашние задания для самостоятельной работы. Ведь самое лучшее усвоение знаний происходит при самостоятельной исследовательской работе.
- Практические уроки в виде задач с автоматической проверкой кода-решения и различных опросников и "угадаек".
- Поддержку преподавателя. Вы всегда сможете получить квалифицированный ответ на вопросы по темам курса и помощь в решении задач, если это будет необходимо.
- Итоговый учебный проект позволяющий применить новые полученные знания в условиях работы с реальными сервисами на реальных данных.
Что вы получите
- Вы получаете возможность закрепить теоретические знания о применении различных библиотек: asyncio, threading, concurrent.futures, queue, select, selectors, inspect на практических учебных задачах и "набить руку".
- Курс поможет Вам укрепить необходимую базу и подготовит Вас к дальнейшему профессиональному созданию сложных многозадачных решений с использованием асинхронности и многопоточности.
- При желании Вы сможете добавить в свое портфолио интересный и оригинальный pet-project, основанный на финальном задании.