Курс Полный курс Python – продвинутый уровень + SQL

5

Продолжение курса Python для начинающих – с нуля до специалиста. Углубленное изучение языка программирования Python.
Многопоточное программирование на Python. Много практических уроков. Как использовать Python и технологии, связанные с разработкой баз данных. Основы программирования БД. Подключение к базе данных из Python.

Начать обучение Регистрация

О курсе - Чему Вы научитесь?

Начинающим 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 для начинающих и продвинутый уровень + SQL. Благодаря практическим заданиям и тестам, Вы сможете закрепить полученные знания по каждой теме курса.

развернуть все

свернуть все

1. Введение в многопоточное программирование
2. Модуль Threading
  • 2.1 Однопоточность. Демо проблемы15:29
  • 2.2 Foreground & Background потоки16:26
  • 2.3 Параллельное исполнение против последовательного14:57
  • 2.4 Executor API12:09
  • 2.5 submit-демо14:43
  • 2.6 map-демо08:01
  • 2.7 Синхронизация потоков09:55
  • 2.8 Гонка и Lock13:45
  • 2.9 Deadlock08:41
  • 2.10 Демо дэдлока17:06
  • 2.11 Синхронизация сигналами06:12
  • 2.12 Применяем Event29:09
  • 2.13 Семафор15:24
  • 2.14 Моделируем ночной клуб семафором06:28
  • 2.15 Барьер13:09
  • 2.16 Атомические операции09:56
  • 2.17 Отмена потоков09:07
  • 2.18 Отмена убийством процесса04:47
  • 2.19 Базовая отмена с флагом13:11
  • 2.20 Имплементируем отмену через Unit of Work-паттерн11:45
  • 2.21 Подытоги06:48
  • 2.22 Обработка исключений09:01
  • 2.23 Обработка исключений - Демо22:11
3. Модуль asyncio
  • 3.1 Введение в asyncio10:09
  • 3.2 Простейший пример с asyncio13:59
  • 3.3 Event Loop. Введение08:41
  • 3.4 Event Loop. Демо10:24
  • 3.5 Демо с aiohttp17:11
  • 3.6 Демо с aiofiles07:03
  • 3.7 Futures & Tasks19:08
  • 3.8 Task API - Демо24:16
  • 3.9 Обёртываем Thread через Future08:36
  • 3.10 async for15:26
  • 3.11 Обработка исключений06:18
  • 3.12 Обработка исключений - Демо27:14
  • 3.13 Отмена. Введение07:16
  • 3.14 Отмена с gather23:12
  • 3.15 Отмена с wait. Кооперативная отмена10:36
  • 3.16 async IO vs sync IO13:08
4. Введение в SQL
  • 4.1 Основные концепции17:11
  • 4.2 Реляционная модель и SQL13:55
  • 4.3 Почему PostgreSQL05:35
  • 4.4 Инсталлируем PostgreSQL06:59
  • 4.5 Типы данных в PostgreSQL14:52
  • 4.6 Создание БД07:59
  • 4.7 Создание таблиц12:04
  • 4.8 Отношение "один ко многим"19:40
  • 4.9 Отношение "один к одному"09:51
  • 4.10 Отношение "многие ко многим"14:51
  • 4.11 Создаём Northwind07:43
5. Простые запросы с SELECT
  • 5.1 Полная выборка07:30
  • 5.2 Выборка и элементарные арифметические операции03:48
  • 5.3 DISTINCT05:23
  • 5.4 COUNT04:46
  • 5.5 Практическое задание "Простые выборки"01:00
  • 5.5 Практическое задание "Простые выборки" - Решение05:40
  • 5.6 WHERE11:24
  • 5.7 AND, OR11:03
  • 5.8 BETWEEN05:56
  • 5.9 IN & NOT IN05:22
  • 5.10 ORDER BY05:37
  • 5.11 MIN, MAX, AVG06:08
  • 5.12 Практическое задание "Простые выборки - 2"01:00
  • 5.12 Практическое задание "Простые выборки - 2" - Решение08:06
  • 5.13 LIKE06:31
  • 5.14 LIMIT02:39
  • 5.15 Check on NULL03:26
  • 5.16 GROUP BY04:59
  • 5.17 HAVING05:18
  • 5.18 UNION, INTERSECT, EXCEPT08:06
  • 5.19 Практическое задание "Группировка, сопоставление, сортировка"01:00
  • 5.19 Практическое задание "Группировка, сопоставление, сортировка" - Решение10:13
6. Соединения - Joins
  • 6.1 Знакомство с соединениями12:49
  • 6.2 INNER JOIN17:13
  • 6.3 LEFT, RIGHT JOIN10:41
  • 6.4 SELF JOIN08:05
  • 6.5 USING & NATURAL JOIN04:56
  • 6.6 AS - псевдонимы06:29
  • 6.7 Практическое задание "Joins"01:00
  • 6.7 Практическое задание "Joins" - Решение09:57
7. Подзапросы
  • 7.1 Введение в подзапросы14:29
  • 7.2 WHERE EXISTS08:45
  • 7.3 Подзапросы с квантификаторами ANY, ALL12:39
  • 7.4 Практическое задание "Подзапросы"01:00
  • 7.4 Практическое задание "Подзапросы" - Решение12:45
8. DDL - управляем БД и таблицами
  • 8.1 Управляем таблицами21:27
  • 8.2 Практическое задание "DDL"01:00
  • 8.2 Практическое задание "DDL" - Решение07:26
  • 8.3 Primary Key12:27
  • 8.4 Foreign Key08:10
  • 8.5 Check04:20
  • 8.6 Default05:48
  • 8.7 Sequences08:50
  • 8.8 Sequences & Tables15:44
  • 8.9 INSERT06:50
  • 8.10 UPDATE, DELETE, RETURNING09:26
  • 8.11 Практическое задание "DDL - 2"01:00
  • 8.11 Практическое задание "DDL - 2" - Решение14:22
9. Python & SQL
  • 9.1 Введение09:04
  • 9.2 psycopg246:33
  • 9.3 ORM и SQLAlchemy25:11
Завершение курса - Получение Сертификата


Студенты также изучают


Отзывы студентов о курсе

Мы собрали отзывы учеников, прошедших онлайн курс. Оставьте свой отзыв после прохождения курса Python – продвинутый уровень + SQL.

Начать обучение

Преподаватель

Course Author
Илья Фофанов

О преподавателе курса

  • Инженер-программист с опытом более 10 лет
  • Сертифицированный специалист по WPF и WCF
  • Организатор и координатор .NET митапов MskDotNet

"Я благодарен за то, что люблю своё дело.

Профессионально занимался проектированием и реализацией ПО больше 10 лет, преимущественно на платформе .NET. Люблю работать над созданием богатых и мощных приложений с использованием современных технологий. Сертифицированный специалист по WPF и WCF. Один из координаторов московских .NET митапов MskDotNet.

О стиле преподавания: самое главное, что характеризует мои курсы - выжимка самого необходимого. Краткость - сестра таланта, и я верю в то, что в современную эпоху информационной перегруженности - необходимо сосредотачиваться на самом главном и отсеивать "лишнее" до тех пор, пока это "лишнее" действительно не понадобится.

Пожелание студентам: Fake it Till You Make it! Это означает: притворяйся, пока не получится.  Хотите стать senior developer? Имитируйте его деятельность, старайтесь делать всё то же, что делает senior developer, и так или иначе - вы им станете. Поэтому - учиться, учиться и  ещё раз учиться. Нет унынию. Fake it Till You Make it!"

Всего заданий: 105

Видеоуроки: 98

Практические задания: 7


Продолжительность: ~19 часов