На этом курсе начинают с основ языка Python. Студенты узнают об истории языка и его философии. Учатся работать с терминалом и интерактивной оболочкой. Рассматривают базовые операторы, типы данных и основные структуры. Осваивают условные операторы if, elif, else. Знакомятся с PEP8 - стандартом оформления кода, и настраивают среду для работы.
Далее курс охватывает основы синтаксиса. Студенты изучают циклы while и for, работу с ошибками и исключениями. Делают акцент на методах работы со строками и кодировании. Работают с типами bytes и bytearray. Обучаются читать и записывать файлы. Если хватает времени - рассматривают pattern matching из Python 3.10.
Этот блок посвящен функциям в Python. Студенты изучают основы работы с функциями, области видимости, аргументы функций. Работают с lambda-функциями и функциями map, filter, zip, reduce. Потом переходят к основным принципам объектно-ориентированного программирования: синтаксис классов, магические методы, наследование и композиция.
Здесь рассматривают декораторы - от замыканий до синтаксиса декораторов с аргументами и без. Далее переходят к итераторам, генераторам и модулю itertools. Изучают модули - импорт, пространства имен, менеджеры контекста и contextlib. Последняя часть этого блока охватывает тестирование и документацию - пирамиду тестирования, unittest, py.test и доктесты.
Студенты узнают о Global Interpreter Lock (GIL) и работе с процессами и потоками. Изучают контроль доступа к ресурсам, синхронизацию потоков и пакеты multithreading, multiprocessing, asyncio. Потом переходят к введению в SQL - основные команды PostgreSQL, соединения, подзапросы, агрегатные функции. Обучаются работать с базами данных из Python через CRUD операции, ORM и SqlAlchemy.
Последний блок охватывает веб-фреймворки и библиотеки. Студенты знакомятся с популярными фреймворками, Flask и Django, шаблоном Jinja2. Изучают процесс сборки и развертывания приложений в Docker, создание REST API, интеграционное и E2E тестирование. Финальная часть - выпускной проект, где применяют Git, Docker, Virtualenv, Pandas, Dash, Heroku и Django на практике.
Курс содержит много практических заданий для закрепления материала. Завершается обучение дипломным проектом, где студенты демонстрируют полученные навыки.