Python, code is True
Полный курс по Python от установки до веб-разработки, тестирования, DevOps и финального проекта. Включает 1200+ задач и 10+ проектов.
Пожалуйста, войдите или зарегистрируйтесь, чтобы начать обучение.
Часть 1: Подготовка среды и основы Python
Подготовка среды разработки
Установка Python, настройка виртуальных окружений, выбор и настройка IDE, освоение базовых команд Git и GitHub.
Установка и настройка Python
Изучение истории Python, версий, установки на разных ОС и настройки виртуальных окружений для изоляции проектов.
- История Python и его версии
- Установка Python на разные ОС
- Версии Python 2 vs 3
- Виртуальные окружения
- Пакетный менеджер pip
Выбор и настройка IDE
Обзор современных IDE для Python, преимущества VS Code, настройка расширений и интеграция с виртуальными окружениями.
- Что такое IDE и зачем она нужна
- Обзор IDE: VS Code
- Основные возможности IDE
- Установка VS Code
- Работа с расширениями в VS Code
- Настройка проекта в VS Code
Основы Python
Изучение базового синтаксиса Python, типов данных, операторов, строк, ввода-вывода и основ версионного контроля. Завершается созданием универсального калькулятора.
Введение в Python и первая программа
Ознакомление с особенностями Python как языка программирования, изучение синтаксиса, базовых функций print() и input(), а также основ работы с переменными и именованием.
- Что такое Python и его особенности
- Синтаксис Python: отступы и комментарии
- Переменные и именование
- Типы данных
- Функции print() и input()
Операторы и выражения
Изучение арифметических, логических операторов, операторов сравнения, приоритета операций и составных операторов присваивания.
- Арифметические операторы
- Операторы присваивания
- Операторы сравнения
- Логические операторы
- Приоритет операций
Строки и работа с ними
Глубокое изучение строк в Python, включая методы, форматирование, индексацию, срезы и проверку подстрок.
- Строки в Python
- Методы строк
- Форматирование строк
- Индексация и срезы
- Проверка подстроки
Ввод-вывод и базовые операции
Освоение работы с пользовательским вводом, преобразования типов данных и использования математических функций.
- Функция input() и ввод данных
- Преобразование типов
- Математические функции и консоль
Часть 2: Структуры данных и работа с файлами
Структуры данных и работа с файлами
Изучение списков, кортежей, множеств, словарей, генераторов, работы с файлами, JSON/CSV и регулярных выражений. Завершается созданием менеджера личных финансов.
Списки в Python
Изучение списков как основной структуры данных в Python: создание, методы, индексация, срезы и списковые включения.
- Что такое список (list) в Python
- Создание списков и инициализация
- Методы split() и join()
- Индексация и срезы списков
- Методы списков: append(), insert(), remove(), pop(), sort()
- Генераторы списков (list comprehensions)
- Итерация по спискам
Кортежи и множества
Изучение неизменяемых коллекций: кортежей (tuple) и множеств (set), их особенностей, операций и случаев применения.
- Что такое кортеж (tuple) и его отличия от списка
- Создание кортежей и операции с ними
- Что такое множество (set) и его особенности
- Операции с множествами: union, intersection, difference
- Когда использовать кортежи, списки и множества
- Распаковка
Словари в Python
Изучение ассоциативных массивов (словарей) в Python: создание, методы работы, итерация и применение вложенных структур.
- Что такое словарь (dict) в Python
- Ключи и значения в словаре
- Создание словарей и доступ к элементам
- Методы словарей: keys(), values(), items(), get()
- Итерация по словарям
- Вложенные словари
Генераторы и включения
Углубленное изучение списковых, словарных и множественных включений, а также генераторных выражений для эффективной работы с данными.
- Списковые включения (list comprehensions)
- Словарные включения (dict comprehensions)
- Множественные включения (set comprehensions)
- Генераторные выражения
- Условные конструкции в включениях
- Вложенные циклы в включениях
Работа с файлами
Изучение операций с файлами: открытие/закрытие, чтение/запись, работа с разными режимами и кодировками.
- Режимы открытия файлов: 'r', 'w', 'a', 'r+'
- Чтение файлов: read(), readline(), readlines()
- Открытие и закрытие файлов
- Запись в файлы: write(), writelines()
- Контекстный менеджер with
- Работа с разными кодировками
Работа с JSON и CSV
Изучение форматов обмена данными JSON и CSV, методов сериализации и десериализации в Python.
- Формат JSON и его применение
- Сериализация и десериализация JSON
- Модуль json в Python
- Формат CSV и работа с ним
- Модуль csv в Python
- Практические примеры сохранения данных
Регулярные выражения
Изучение регулярных выражений для поиска, извлечения и замены текстовых шаблонов.
- Что такое регулярные выражения (regex)
- Базовые паттерны: символы, классы символов
- Квантификаторы: *, +, ?, {n}, {n,m}
- Специальные символы: ^, $, \b, \B
- Методы модуля re: search(), match(), findall(), sub()
- Практические примеры валидации данных
Обработка исключений
Изучение механизмов обработки ошибок и исключений в Python для создания надёжных программ.
- Что такое исключения и зачем их обрабатывать
- Базовые типы исключений: ValueError, TypeError, FileNotFoundError
- Конструкция try-except-else-finally
- Создание собственных исключений
- Лучшие практики обработки ошибок
Часть 3: Объектно-ориентированное программирование
Объектно-ориентированное программирование
Изучение классов, объектов, наследования, инкапсуляции, полиморфизма, магических методов, модулей и пакетов. Завершается созданием системы управления библиотекой.
Основы ООП
Знакомство с ключевыми концепциями объектно-ориентированного программирования, их преимуществами и основными принципами.
- Что такое объектно-ориентированное программирование
- Классы и объекты - основные понятия
- Создание классов в Python
- Конструктор __init__ и методы
Наследование и полиморфизм
Изучение механизма наследования для повторного использования кода, создания иерархий классов и применения полиморфизма для гибкости программ.
- Что такое наследование и зачем оно нужно
- Родительские и дочерние классы
- Переопределение методов
- Полиморфизм и его применение
- Функция isinstance() и type()
- Множественное наследование
Инкапсуляция и свойства
Изучение механизма инкапсуляции для защиты данных объектов, использование приватных атрибутов и свойств (@property) для контроля доступа.
- Что такое инкапсуляция в ООП
- Приватные и защищенные атрибуты
- Property decorators (@property)
- Сеттеры и геттеры
Магические методы
Изучение специальных методов (dunder methods) для кастомизации поведения объектов при взаимодействии со встроенными операциями Python.
- Арифметические операторы (__add__, __sub__, __mul__)
- Что такое magic methods в Python
- Методы для строкового представления (__str__, __repr__)
- Методы для сравнения (__eq__, __lt__, __gt__)
- Методы для работы с контейнерами (__len__, __getitem__)
Модули и пакеты
Изучение организации кода в модули и пакеты, системы импорта, управления зависимостями и виртуальными окружениями.
- Работа с __all__
- Что такое модули в Python
- Создание и импорт модулей
- Псевдонимы при импорте (as)
- Пакеты и их структура
- Инициализация пакетов (__init__.py)
Работа с виртуальными окружениями и зависимостями
Изучение управления виртуальными окружениями, установки пакетов, управления зависимостями и современных инструментов разработки.
- Продвинутая работа с виртуальными окружениями
- Менеджер пакетов pip и его команды
- Файл requirements.txt для зависимостей
- virtualenv, pipenv, poetry
Часть 4: Стандартная библиотека и инструменты
Стандартная библиотека и инструменты
Изучение ключевых модулей стандартной библиотеки Python (datetime, os, random, sys), инструментов логирования, профилирования, отладки и введение в Docker. Завершается созданием системы мониторинга с контейнеризацией.
Ключевые модули стандартной библиотеки
Изучение основных модулей стандартной библиотеки Python для работы с датами, файловой системой, генерации случайных чисел и получения системной информации.
- Модуль datetime для работы с датами и временем
- Модуль random для генерации случайных чисел
- Модуль os для работы с операционной системой
- Модуль sys для системной информации
- Практические примеры использования
Системы логирования и отладки
Изучение модуля logging для ведения логов, настройки уровней логирования, форматирования сообщений и инструментов отладки.
- Модуль logging для ведения логов
- Уровни логирования: DEBUG, INFO, WARNING, ERROR
- Настройка логгеров и обработчиков
- Форматирование сообщений в логах
- Ротация лог-файлов
- Отладка с помощью pdb
- Расширенное логирование
Профилирование и оптимизация
Изучение инструментов для анализа производительности кода, измерения времени выполнения, анализа памяти и методов оптимизации.
- Модуль cProfile для профилирования
- timeit для измерения времени выполнения
- Модуль memory_profiler для анализа памяти
- Оптимизация кода на основе профилирования
- Практические примеры улучшения производительности
Контейнеризация с Docker
Изучение контейнеризации приложений с помощью Docker для обеспечения воспроизводимости и изоляции среды выполнения.
- Что такое контейнеризация и Docker
- Образы и контейнеры
- Dockerfile для создания образов
- docker-compose для оркестрации
- Основные команды Docker
- Преимущества контейнеризации
- Установка и настройка в разных ОС
- Продвинутые возможности Docker
Часть 5: Тестирование и качество кода
Тестирование и качество кода
Изучение юнит-тестирования с unittest и pytest, написания докстрингов, соблюдения PEP 8, использования инструментов статического анализа и применения TDD. Завершается созданием библиотеки утилит с 100% покрытием тестами.
Основы тестирования
Изучение фундаментальных концепций тестирования программного обеспечения, типов тестов и их роли в разработке.
- Что такое тестирование и зачем оно нужно
- Типы тестов: юнит-тесты, интеграционные, функциональные
Инструменты тестирования Python
Практическое применение фреймворков unittest и pytest для создания надежных тестов.
- Модуль unittest в Python
- Assertions и TestCase
- Runners и результаты тестирования
- TDD (Test-Driven Development) методология
- Библиотека pytest и ее преимущества
- Fixtures и параметризация тестов
- Mock и patch для изоляции
- Coverage и измерение покрытия
- Плагины pytest
- Лучшие практики написания тестов
Документирование кода
Создание качественной документации с помощью докстрингов и автоматических инструментов.
- Докстринги в Python и их назначение
- Форматы докстрингов: Google, NumPy, reStructuredText
- Создание документации для модулей и пакетов
- Автогенерация документации
- Docstrings для классов и методов
- Примеры хорошей документации
Качество кода и лучшие практики
Соблюдение стандартов кодирования, использование инструментов анализа и применение передовых практик разработки.
- Стандарт PEP 8 и его важность
- Правила именования переменных и функций
- Форматирование кода и отступы
- Длина строк и перенос строк
- Комментарии и документация
- Инструменты для проверки стиля кода
- Другие принципы и практики
- Инструменты статического анализа: pylint, flake8, mypy
- Проверка типов с mypy
- Автоформатирование с black
- Сортировка импортов с isort
- Сложность кода и ее измерение
- Интеграция инструментов в workflow
Продвинутые практики тестирования
Продвинутые методологии и интеграция тестирования в процесс разработки.
- Автоматизация тестирования
- Test-Driven Development методология
- Red-Green-Refactor цикл
- Покрытие тестами и его измерение
- Интеграционное тестирование
- Практики непрерывной интеграции
Часть 6: SQL и базы данных
SQL и базы данных
Изучение реляционных баз данных, языка SQL, работы с SQLite через Python и ORM SQLAlchemy. Завершается созданием системы управления складом.
Основы баз данных и SQL
Изучение фундаментальных понятий реляционных баз данных, основных команд SQL, типов данных и проектирования схем.
- Что такое базы данных и SQL
- Реляционные базы данных
- Типы данных в SQL
- Основные команды: SELECT, INSERT, UPDATE, DELETE
- Создание таблиц и ограничений
- Первичные и внешние ключи
Продвинутые функции SQL
Освоение фильтрации, сортировки, агрегатных функций, группировки и соединения таблиц для сложных запросов.
- Фильтрация и сортировка данных в SQL
- Агрегатные функции и группировка
- Связи и соединения таблиц
- Представления (VIEW)
- Ограничения в SQL
Работа с базами данных в Python
Изучение модуля sqlite3 для взаимодействия с базами данных из Python, обработка ошибок и транзакций.
- Модуль sqlite3 в Python
- Подключение к базе данных
- Создание курсоров
- Выполнение SQL запросов
- Обработка ошибок
- Транзакции в SQLite
ORM SQLAlchemy
Изучение SQLAlchemy как инструмента объектно-реляционного отображения для работы с базами данных в Python.
- Что такое ORM и зачем она нужна
- SQLAlchemy в Python
- Создание моделей
- Сессии и транзакции
- CRUD операции через ORM
- Связи между моделями
- Запросы и фильтрация в SQLAlchemy
- Производительность и расширенные возможности
Часть 7: Работа с API и внешними сервисами
Работа с API и внешними сервисами
Изучение протокола HTTP, библиотеки requests, работы с публичными API, обработки ошибок, кэширования и аутентификации. Завершается созданием агрегатора новостей из нескольких источников.
Основы работы с API
Изучение базовых концепций HTTP, методов запросов, статус-кодов и структуры API-запросов.
- Основы протокола HTTP и его роль в веб-коммуникации
- Методы HTTP: GET, POST, PUT, DELETE и их назначение
- Статус-коды HTTP и их классификация (2xx, 4xx, 5xx)
- Заголовки запросов и ответов
Библиотека requests для работы с HTTP
Освоение возможностей библиотеки requests для выполнения HTTP-запросов, обработки параметров, сессий и загрузки файлов.
- Библиотека requests в Python и её возможности
- Обработка ошибок подключения и некорректных ответов
- Работа с JSON-данными в ответах API
- Продвинутая работа с requests
Аутентификация и безопасность API
Изучение методов аутентификации в API (Basic Auth, Bearer Token), безопасного хранения ключей и лучших практик работы с чувствительными данными.
- Использование API-ключей и безопасное их хранение
- Rate limiting и квоты на запросы
- Аутентификация и безопасность в API
Практическая работа с публичными API
Изучение популярных публичных API, их документации и создание приложений для работы с реальными сервисами.
- Чтение и понимание документации к API
- Обзор популярных публичных API (GitHub, OpenWeatherMap, News API и др.)
- Лучшие практики: обработка ошибок, кэширование, асинхронность
- Работа с большими объёмами данных через API
Часть 8: Анализ данных с pandas
Анализ данных с pandas
Изучение библиотеки pandas для загрузки, обработки и анализа табличных данных, визуализации с помощью Matplotlib и анализа реальных датасетов. Завершается созданием аналитического дашборда.
Основы pandas
Изучение фундаментальных концепций библиотеки pandas, основных структур данных и базовых операций для работы с табличными данными.
- Введение в библиотеку pandas и её роль в анализе данных
- Основные структуры данных: Series и DataFrame
- Загрузка данных из CSV, Excel, JSON
Обработка и анализ данных
Изучение методов фильтрации, сортировки, агрегации и преобразования данных с помощью pandas.
- Индексация и выборка данных: loc, iloc
- Основные операции: фильтрация, сортировка, агрегация
- Группировка данных и сводные таблицы
- Работа с пропущенными значениями и дубликатами
Визуализация данных
Изучение методов визуализации данных с помощью matplotlib, seaborn и встроенных функций pandas.
- Интеграция pandas с Matplotlib и Seaborn
- Основные типы графиков: линейные, столбчатые, гистограммы, scatter plots
- Настройка внешнего вида: цвета, легенды, подписи
- Сохранение и экспорт графиков
- Создание множественных и интерактивных графиков
- Лучшие практики визуализации данных
Продвинутые методы анализа
Изучение сложных методов работы с данными: очистка, работа со временными рядами, обработка текста и категориальных данных, статистический анализ.
- Очистка и предварительная обработка данных
- Работа с временными рядами и датами
- Обработка текстовых и категориальных данных
- Статистический анализ и проверка гипотез
- Введение в машинное обучение с pandas
- Практические кейсы: продажи, логи, финансы, соцопросы
Часть 9: Веб-разработка с FastAPI
Веб-разработка с FastAPI
Изучение современного фреймворка FastAPI для создания высокопроизводительных веб-API, интеграции с базами данных через SQLAlchemy и создания интерфейса с Bootstrap. Завершается созданием полнофункциональной системы управления задачами.
Основы FastAPI
Знакомство с преимуществами FastAPI, установкой и созданием первого приложения с автоматической документацией.
- Введение в FastAPI и его преимущества
- Установка и первое приложение
- Path и query параметры
- Модели данных и валидация с Pydantic
Работа с базами данных
Интеграция FastAPI с SQLAlchemy ORM, асинхронная работа с базами данных и управление сессиями.
- Интеграция с SQLAlchemy
- Управление сессиями и зависимостями
- Асинхронная работа с базой данных
Безопасность и аутентификация
Реализация аутентификации и авторизации с помощью JWT, OAuth2 и защиты от распространенных уязвимостей.
- Основы безопасности веб-приложений
- Аутентификация с JWT
- OAuth2 и интеграция с социальными провайдерами
Продвинутые возможности FastAPI
Изучение асинхронных эндпоинтов, вебсокетов, фоновых задач и оптимизации производительности.
- Асинхронные эндпоинты
- WebSocket и реальное взаимодействие
- Фоновые задачи и отложенная обработка
Фронтенд и интеграция
Создание фронтенда для FastAPI с помощью HTML/CSS/JavaScript, интеграция с фреймворками и развертывание всего приложения.
- Шаблонизация с Jinja2
- Статические файлы и SPA
- Bootstrap и современный UI
Часть 10: Аутентификация, деплой и DevOps
Аутентификация, деплой и DevOps
Изучение систем аутентификации на основе JWT, безопасной хешировки паролей, деплоя приложений с Docker/Nginx/SSL, настройки CI/CD и мониторинга. Завершается развертыванием production-ready приложения.
Основы безопасности веб-приложений
Изучение принципов безопасности веб-приложений, распространенных уязвимостей и методов защиты.
- Основы безопасности веб-приложений
- Хеширование паролей с bcrypt/scrypt
- Токены JWT (JSON Web Tokens) и их структура
- Middleware для авторизации в FastAPI
- Защита от распространённых атак: XSS, CSRF, SQL injection
- OAuth 2.0 и интеграция с социальными провайдерами
- Двухфакторная аутентификация (2FA)
- Управление пользователями и сессиями
DevOps и деплой
Изучение современных практик DevOps, контейнеризации, настройки CI/CD и мониторинга для надежного развертывания приложений.
- Автоматическое тестирование и проверка кода
- Security scanning и compliance
- Обработка статики и медиафайлов
- Health checks и readiness probes
- Резервное копирование и disaster recovery
- Production-ready Dockerfile (многоэтапная сборка)
- Docker Compose для оркестрации сервисов
- Nginx как reverse proxy и балансировщик
- SSL/TLS с Let's Encrypt
- Мониторинг и алертинг
- Методы деплоя и обновления
- Безопасность инфраструктуры
- Инфраструктура как код и окружения
- Принципы DevOps: CI/CD, Infrastructure as Code
- GitHub Actions для автоматизации
- Мониторинг, алертинг и observability
- Автоматизация резервного копирования и обновлений
- Интеграции и уведомления