Начинающим Python-разработчикам рекомендуем пройти первую часть обучения
Полный курс Python для начинающих – с нуля до специалиста
Продолжение курса Python для начинающих – продвинутый уровень + SQL включает:
- Углубленное изучение языка программирования Python
- Многопоточное программирование на Python
- Работа с базами данных и языком запросов SQL
- Python+SQL - как использовать Python и технологии, связанные с разработкой баз данных, вместе
- Много практики - практические уроки Python и SQL, примеры и задания по всем темам с разборами
Чему вы научитесь
- Многопоточное программирование на Python
- Пакет threading
- Модуль asyncio
- Основы по работе с базами данных, язык запросов SQL
- Подключение к базам данных из Python
- И многое другое
Познакомитесь с самыми высокоуровневыми понятиями: параллельность, конкурентность, многопоточность, асинхронность. В чём разница между этими понятиями. На практических примерах разберём, как они работают. Все уроки с пометкой демо - это разбор теории на практических примерах.
Разберёмся с базовыми вещами:
- что такое процессы и потоки
- как устроен процессинг, виды процессинга: CPU-bound (concurency), CPU-bound (parallelization), I/O-bound
- почему потоки в Python не могут исполняться параллельно
- что такое GIL (Global Interpreter Lock), как работает
Начнём разбираться с мнопоточкой, используя пакет Threading:
- проблемы однопоточности
- 2 вида потоков: foreground и background (демоны), в чём их разница
- пул потоков, для чего он нужен, почему пул потоков более эффективен
- абстрактный класс Executor
- как блокируются потоки
- как работает submit, map на практике
- что такое гонка (race) и как их избежать с помощью lock
- взаимная блокировка (deadlock), как deadlock возникает
- как избежать deadlock за счёт грамотного структурирования многопоточности
- синхронизация потоков
- примитивы синхронизации: lock, event, semaphore, barrier
- синхронизация сигналами (signaling)
- атомарные операции, что это такое и как использовать в написании кода
- управление потоками, отмена потока, обработка исключений
Во второй части многопоточного программирования на Python рассмотрим модуль asyncio:
- когда (в каких случаях) использовать asyncio
- что такое корутин
- event loop API
- возможности библиотеки aiohttp, поддерживающей новую модель асинхронности, базирующуюся на корутинах
- как работать с библиотекой aiofiles, поддерживающей асинхронную работу с файлами
- awaitable-объекты, включая объекты типов Task и Future
- конструкция async for и как она работает
- обработка исключений в asyncio
- подводные камни: отмена в asyncio
- сравним синхронный IO (sync IO) с асинхронным IO (async IO)
Модуль asyncio перевернул представление об асинхронном программировании на Python, сделав его гораздо более удобным.
Модуль asyncio, также как и модуль threading, не решает проблемы распараллеливания. Asyncio серьёзно улучшает работу с потоками с точки зрения конкурентного программирования.
Смежные технологии: уроки по изучению Python & SQL
- что такое базы данных
- основы языка SQL, используемого для создания баз данных и наполнением её данными
- основы изучения запросов на языке SQL
- виды отношений
- соединения в SQL, различные способы реализации этой задачи и как они работают
- подзапросы, как строить подзапросы
- DDL (Data Definition Language) - часть SQL синтаксиса, позволяющая манипулировать данными
- 2 основных способа работы с базами данных: Adapters, ORM (Object Relational Mapper - объектно-реляционный преобразователь)
- как работать с адаптерами и с ORM (на примере SQLAlchemy) на практике
Требования для прохождения курса- Прохождение первой части курса Полный курс Python для начинающих – с нуля до специалиста
- и хорошее владение Python на начальном уровне
Начинайте изучение Python прямо сейчас - освойте новую интересную профессию программирования на Python!