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

5Premium-PLUS

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

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

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

Начинающим 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
Завершение курса - Получение Сертификата

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

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

online_course
new
4.9
  • 75 видео
  • 11 часов
online_course
new
5
  • 106 видео
  • 12 часов
online_course
new
5
  • 128 видео
  • 23 часа
online_course
4.8
  • 37 видео
  • 69 заданий
  • 5 часов

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

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

Митрофан Потапович

хороший курс. ознакомит вас с основными концепциями программирования. а дальше только книги, статьи и еще очень много работы.

Дмитрий Тюнин

Очень содержательный курс. Доступное изложение.

Андрей Закуцкий

Потрясающий курс, огромное спасибо автору - не представляю, как бы с этим всем разбирался без него)

Александр Дубакин

Курс хороший, детальный. Очень понравился. Отдельное спасибо преподавателю. Очень профессионально ведет обучение.

Николай Никишев

отличный курс

Николай Сладков

Отлично!

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

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

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

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

  • Инженер-программист с опытом более 15 лет
  • Сертифицированный специалист по 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 часов