Online обучение на Python‑разработчика включает в себя 5 модулей с лекциями, практикой и итоговыми проектами (от новичка до уровня Middle-разработчика), а также финальный групповой проект.
Основы программирования на Python
- Установка PyCharm. Установка Python. Создание проекта. Устройство проекта
- Знакомство с Python. Переменные и типы данных. Ввод данных. Циклы и ветвления
- Переменные и типы данных. Преобразование типов. Конкатенация
- Создание функций. Локальные переменные. return
- Коллекции. Упорядоченные и неупорядоченные коллекции, изменяемые и неизменяемые типы данных, работа со словарями
- Итерации и циклы. Итераторы, цикл for и цикл while, списковые и словарные включения, работа со вложенными циклами
- Модули и пакеты. Настройка окружения. import
- Отладка программ
- Объекты и классы. Конструкторы
- Наследование. Множественное наследование
- Расширенные возможности. Итераторы и генераторы, лямбда-функции, декораторы
- Исключения. rise. with
- Работа с файлами
- Работа с сетью. Сериализация в Python
- Date. Math. JSON
- Многопоточность в Python
Алгоритмы и структуры данных
- Знакомство с алгоритмами. Линейный и бинарный поиск. Алгоритмические задачи
- Структуры данных. Графы. Оперативная память и представление данных, массивы постоянного размера, динамические массивы, связные списки, хеш-функции и другие структуры данных
- Рекурсия и сортировки. Рекурсивный и базовый случаи, рекурсивный бинарный поиск, алгоритмы сортировки, выбор алгоритма сортировки и их сравнение
- Сложность алгоритмов. Временная и пространственная сложность алгоритмов, нотация Big O
- Методы решения задач. Наивные методы, метод двух указателей, метод скользящего окна и т.д.
- Домашний проект
Итоговый проект
Работа с сетью
- Устройство сети
- Протокол HTTP
Основы Web
- Основы HTML. Теги и атрибуты. Семантика
- Основы CSS. Селекторы. Цвет
- Основы JavaScript. Переменные и типы. Ветвления. Циклы
- Массивы. Функции. Коллекции. ООП
- Асинхронность и Date. Промисы
- Взаимодействие с бэкендом
Docker
- Введение в контейнеризацию и Docker
- Установка и настройка Docker
- Основы работы с Docker
- Работа с Docker Images
- Docker Compose и оркестрация
- Продвинутые темы и лучшие практики
Основы SQL
- Знакомство с SQL (SQLite, PostgreSQL). Таблицы, строки и типы данных. Запрос
SELECT
. WHERE
. Агрегирование. ФункцииCOUNT
,SUM
,MIN
,MAX
.JOIN
,LEFT JOIN
,RIGHT JOIN
.- Ключи. Внешние ключи. Связывание таблиц. Ограничения (Constraints).
- Подзапросы.
WITH
. Практические примеры. - Изменение данных в таблицах:
INSERT
,UPDATE
,DELETE
.ALTER TABLE
.
Итоговый проект
Бекенд на Django
- Знакомство с Django. Создание проекта. Разбор проекта
- Пути и view-функции. Планирование адресов и конвертеры путей, распределение адресов по приложениям, view-функции
- HTML и шаблоны Django. Теги include, extends, block, словарь контекста, ветвление, циклы, ссылки и фильтры в шаблонах, подключение стилей, картинок и скриптов
- Приложения в Django
- Django ORM. Описание таблиц и связей, Django Shell, CRUD-операции в Django ORM, Django Debug Toolbar
- Админзона Django. Создание суперпользователя, регистрация моделей в админке, локализация и перевод, настройка админзоны
- Работа с формами. Формы в HTML и в Django, обработка данных, подключение стилей Bootstrap к HTML-форме
- Middleware. Работа с запросами и ответами
- Библиотека Pytest. Выборочный запуск тестов, запуск упавших тестов, отладка тестов, маркеры, фикстуры, файл конфигураций, Pytest для Django
- Библиотека Unittest. Метод subTest, параметризация тестов, фикстуры, Unittest в Django
- Перенос данных и миграции
- Развертывание Django-проектов
- Работа с API в Django
- Оптимизация производительности
- Международная поддержка
- Безопасность приложений Django
- Домашний проект
Управление проектом на удаленном сервере
- Работа с сервером. Настройка подключения, работа в терминале linux, установка и настройка веб- и прокси-сервера, настройка SGI
- Деплой веб-приложения на сервер. Мониторинг работы приложений
- Работа с контейнерами. Автоматизация деплоя. CI/CD
- Дополнительные инструменты. PostgreSQL, Docker Hub, GitHub Actions
- Работа с облаками. Настройка и конфигурация виртуальных машин
- Работа с AWS. Работа с Azure. Google Cloud
Итоговый проект
Architect Skills (pt.1)
- Архитектура ПО, клиент-серверная архитектура, MVC
- Методологии разработки
- Паттерны проектирования
- Паттерны проектирования 2
API & REST
- Что такое API. Взаимодействие программ по сети, API First, REST
- Работа с внешними API. Client API в Телеграме, Bot API в Телеграме, обработка входящих сообщений
- Django REST Framework. REST API, инструментарий для тестирования API, сериализаторы, view-функции API, view-классы
- Django REST Framework. API вьюсеты и роутеры, аутентификация по токену, JWT + Djoser
- Взаимодействие фронтенда и бэкенда. Multi Page Application vs Single Page Application
- Документация для API, CORS и политика единого источника. PyDoc
- Лимиты запросов и фильтрация ответов. Проверка прав: Permissions
- Throttling: ограничение количества запросов, пагинация в API, фильтрация, сортировка и поиск
- Домашний проект
Парсинг сайтов
- Введение в парсинг. Beautiful Soup
- Работа с браузером. Selenium
- Фреймворк Scrapy
Итоговый проект
Альтернативные фреймворки
- Фреймворк Flask
- Фреймворк Flask. Создание своего проекта
- Фреймворк FastAPI
- Фреймворк FastAPI. Создание своего проекта
- Миграции: библиотека Alembic
- SQLAlchemy
Python & Enterprise
- WebSockets, Aiohttp
- RabbitMQ
- noSQL (Redis, MongoDB)
- Сервисы Google. Google API
- Проект. Интеграция приложения на FastAPI с сервисами Google Sheets API и Google Drive API
Architect Skills (pt.2)
- Проектирование баз данных
- Повышение скорости базы данных
- Транзакции, ACID, CAD
- Дополнительное занятие (NoSQL, Кластер и Cassandra)
- Дополнительное занятие (Шардирование, BigData, MapReduce)
Итоговый проект