Курс: Python Developer. Professional
Продолжительность курса: 88 ак. ч.
Описание курса:
Вы сформируете основные компетенции в программной инженерии, сможете прагматично подходить к решению задач, погрузитесь в современную «промышленную» разработку на Python.
Высокая производительность: вы научитесь анализировать производительность инструментов и ресурсов, профилировать код, проектировать и реализовывать высокопроизводительные приложения.
Анализ данных: вы научитесь визуализировать данные, понимать особенности ПО, работающего с данными, использовать аналитические библиотеки.
Веб-разработка: вы научитесь понимать особенности устройства веб-приложений, разбираться в работе фреймворков, проектировать веб-приложения.
Создание ПО: вы научитесь работать с базовыми концепциями и моделями, исследовать устройство стороннего ПО, поддерживать собственное ПО, проектировать архитектуру.
Аудитория:
• Опытные разработчики на Python
• Опытные разработчики на других ЯП (со знанием Python)
• Веб-разработчики
• Дата-сайентисты и ML-разработчики
Необходимая подготовка:
• уверенно программируете на Python
• имеете представление о сетевом взаимодействии и реляционных СУБД
• умеете обращаться с Linux, Git и другими стандартными инструментами разработчика
• знаете HTML, CSS, JavaScript
• понимаете стандартные сетевые протоколы и web в целом
• понимаете, как хранить добытое в БД представление о примитивах ОС - алгоритмы
• можете сделать простой поисковый движок
Программа курса:
Модуль 1. База
• Структура проекта, управление зависимостями, настройка окружения: обзор и лучшие практики
• Дистрибуция кода и развертывание: путь от лэпота до кластера
• Аннотации типов: уровень nightmare!
• Внутренности: байткод, его исполнение и виртуальная машина
• Внутренности: устройство основных типов, управление памятью и GIL
• ООП: Объектная модель и особенности ООП в Python
• ООП: Дескрипторы и метапрограммирование
• Тестирование: pytest и как писать тесты
• Тестирование: (анти)паттерны и инструменты
• Дизайн кода и архитектура: абстракции, модульность, SOLID
• Дизайн кода и архитектура: domain driven design, чистая архитектура
• Дизайн кода и архитектура: event driven архитектура, микросервис
• Дизайн кода и архитектура: паттерны проектирования
Модуль 2. Web-программирование
• Сетевое взаимодействие и архитектура web-серверов
• Создание динамических страниц: от CGI до ASGI
• MVC/MVT фреймворки на примере Django
• ORM: хорошее, плохое и злое
• Работа с БД: транзакции, репликация, шардирование и даже NoSQL
• API: что такое настоящий REST и как создавать RESTful приложения
• FastAPI: основы
• FastAPI: взаимодействие с БД и SQLAlchemy
• Аутентификация и авторизация
• API: (g)RPC, GraphQL
• Безопасность: обзор распространенных проблем, уязвимостей и лучших практик
Модуль 3. ML Engineering
• Высокопроизводительные вычисления с NumPy
• Исследовательский анализ данных c Pandas
• Инструменты работы с данными: IPython, matplotlib, seaborn
• Оркестрация задач: jenkins, luigi, airflow
• Нейронки: PyTorch, TensorFlow, HuggingFace и LLM
• Обзор big data экосистемы: хранение и обработка данных, обучение и inference, model serving
Модуль 4. Highload
• Профилирование производительности
• Concurrency: многопоточное программирование и примитивы синхронизации
• Concurrency: процессы и межпроцессное взаимодействие (IPC)
• Ускорение с помощью C: расширения
• Ускорение с помощью C: Cython, Pypy и FFI
• asyncio: происхождение и основы
• asyncio: event loop, внутренности async/await, низко- и высокоуровневое API
• asyncio: инструменты и лучшие практики
• Golang: зачем он Python разработчику + тур по языку
• Golang: горутины, планировщик, конкурентная обработка
• Обзор новинок и изменений из свежих версий Python
Окончательная цена указывается в договоре на обучение.
Записаться на курс