Слив курса Python Advanced. Продвинутый курс (2024) [merion academy] [Сурен Хоренян]
Освойте асинхронное и метапрограммирование, изучите аннотацию типов, профилирование и напишите собственное приложение на FastAPI.
Улучшите свои навыки Python, чтобы совершить быстрый рост вашего грейда до уровня middle.
Кому подойдет курс:
1. Python-разработчик
Узнайте, что у Python под капотом: метаклассы, генераторы, декораторы, потоки (threading) и многопоточность (multiprocessing) для быстрого продвижения к уровню middle.
2. Data Scientist
Python отлично подходит для дата-сайентистов благодаря обширной экосистеме библиотек и фреймворков. FastAPI и SQLAlchemy будут особенно полезны для создания API и работы с базами данных в ваших проектах.
3. Сменить профессию
Для Frontend разработчика – повышение рыночной стоимости, Backend разработчика – расширение скиллсета и кругозора, а для QA-инженеры – отличный шанс перейти в автоматизаторы.
Содержание:
Блок 1 – Углубленная работа с декораторами
- Вводное занятие: Сравнение multithreading и multiprocessing
 - Вложенные декораторы
 - Классы-декораторы и декораторы классов
 
Блок 2 – Сложные простые типы
- Строки и байты – в чем разница. Кодировки.
 - Числа с плавающей точкой и проблемы, которые они приносят
 - Тестирование по блоку 1 и 2
 
Блок 3 – Функциональное программирование в Python и его минусы
- Сравнение помощников map, filter с comprehensions. Лямбда функции
 - Рекурсия, стек, переполнение стека, хвостовая рекурсия
 
Блок 4 – Генераторы и итераторы
- Как связаны итераторы и генераторы
 - Создание генератора
 - Создание итератора
 - Генераторы в обратную сторону (передача данных в генератор), корутины
 
Блок 5 – Знакомство с асинхронной работой (asyncio)
- Введение в асинхронное программирование. Зачем нужно асинхронное программирование. Группы задач
 - Асинхронные запросы в сеть
 - Цикл событий альтернативный (сторонний) цикл
 - Асинхронное взаимодействие с файлами
 - Тестирование по блоку 3, 4 и 5
 
Блок 6 – Классы изнутри
- Метаклассы
 - “Протоколы. Абстрактные классы
 - Дескрипторы
 - Слоты в классах
 - Как работает super
 - Сокрытие имени (name mangling)
 
Блок 7 – Работа с ссылками, внимание к памяти
- Как работает сборщик мусора
 - Сильные и слабые ссылки
 
Блок 8 – Аннотации типов. Системы контроля зависимостей. Интроспекция
- Как описывать аннотации типов, зачем они нужны
 - Работа с mypy
 - Системы контроля зависимостей
 - Интроспекция, генерация новой сигнатуры
 - Тестирование по блоку 6, 7 и 8
 
Блок 9 – Тестирование
- Unittest
 - Покрытие кода (coverage)
 - Pytest, плагины
 - Фикстуры
 - Параметризация и метки
 - Конфигурация тестов
 
Блок 10 – Очереди задач
- Встроенные очереди задач
 - Асинхронные очереди задач
 - Сервисы для очередей задач. Celery. RabbitMQ
 - Интроспекция, генерация новой сигнатуры
 - Тестирование по блоку 9 и 10
 
Блок 11 – Профилирование
- Что такое профилирование и зачем нужно. Инструменты для профилирования
 - Блок 12 – Ускорение обработки задач
 - Threading, GIL
 - Multiprocessing
 
Блок 12 – Ускорение обработки задач
- Threading, GIL
 - Multiprocessing
 
Блок 13 – Низкий уровень
- Компиляция кусков кода. Чтение и анализ байт-кода. Как работает виртуальная машина Python
 - Тестирование по блоку 11, 12 и 13
 
Блок 14 – Работа с базой данных через SQLAlchemy
- Знакомство с SQLAlchemy 2.0Лекция
 - Асинхронная работа с базой данных на SQLAlchemy
 
Блок 15 – Веб-разработка на FastAPI
- Знакомство с FastAPI
 - FastAPI настройки git: commit, remote, push
 - Работа с базой данных через SQLAlchemy в веб-приложении
 - Развитие приложения на FastAPI
 - Взаимодействие между приложениями
 - Тестирование по блоку 14 и 15
 
Финальное тестирование
- Финальное тестирование
 

