Улучшаемые навыки
Автоматизация процессов
Написание скриптов
Работа с API
Обработка данных
Качество кода
Отладка кода
Виртуальные окружения
Type hints
Алгоритмическое мышление
Инструменты
Python
Чему вы научитесь
01
Писать понятный и аккуратный код на Python.
02
Применять списки, словари и множества со знанием их особенностей.
03
Настраивать виртуальные окружения и работать с библиотеками.
04
Загружать и обрабатывать данные из файлов и интернет-сервисов.
05
Пользоваться автопроверкой кода, чтобы сразу видеть ошибки.
06
Находить и исправлять ошибки через отладчик и простые тесты.
Как проходит обучение
Половина учебного времени отведена на самостоятельное написание кода и решение прикладных задач. Вы пройдете путь от сбора данных по REST API до создания собственной CLI-утилиты, а также проведете масштабный рефакторинг «грязного» кода: научитесь разбивать его на модули, внедрять аннотации типов, настраивать линтеры и покрывать логику автотестами на Pytest.
Программа курса
01
Инфраструктура разработки и типы данных Python
Установка Python, IDE и интерпретатора.
Виртуальные окружения (venv) и пакетный менеджер (pip, requirements.txt).
Создание проекта и установка сторонних пакетов.
Изменяемые и неизменяемые типы данных (mutable/immutable): почему список изменяется при передаче в функцию, а число — нет.
Практическое занятие: отслеживание поведения объектов в памяти через id().
02
Коллекции и алгоритмическое мышление
Изучение коллекций: list, dict, set, tuple.
Вычислительная сложность (Big O): почему поиск в set значительно быстрее, чем в list.
Генераторы списков, словарей и множеств (comprehensions): как писать код короче.
Встроенные функции map, filter, zip, enumerate.
Решение практических задач на фильтрацию и агрегацию данных.
Замена вложенных циклов for на comprehensions.
Сравнение скорости работы list и set на больших объёмах.
03
Функции и организация процедурного кода
Проблема «спагетти-кода» и глобальных переменных.
Области видимости переменных: локальная, глобальная, вложенная (LEGB).
Гибкие аргументы: *args, **kwargs, позиционные и именованные аргументы.
Функции как объекты первого класса: передача и возврат функций.
Практика: декомпозиция (разбиение) длинного «грязного» скрипта на набор переиспользуемых чистых функций.
04
Работа с файловой системой и исключениями
Современная работа с путями: почему pathlib лучше os.path.
Контекстные менеджеры (with open): автоматическое закрытие файлов.
Чтение и запись форматов для инженеров: .csv, .json.
Обработка ошибок try / except / finally: как не дать скрипту упасть.
Написание скрипта, который обходит папку с тысячами лог-файлов, находит нужные ошибки по маске, склеивает их и сохраняет в сводный .csv файл.
05
Стандарты качества и строгая типизация
Эволюция Python: зачем динамическому языку типы.
Аннотации типов (Type hints) и модуль typing (Optional, Union, Any).
Статический анализатор mypy — поиск багов до запуска кода.
Инструменты форматирования и линтеры: black, isort, ruff / flake8 (проверка PEP8).
Рефакторинг кода без аннотаций: задача — типизировать его, прогнать через mypy и отформатировать через black.
06
Сетевое взаимодействие и командная строка (CLI)
HTTP-запросы в Python: библиотека requests. Работа с REST API (GET/POST, заголовки, параметры).
Обработка JSON-ответов от серверов, таймауты и статус-коды.
Создание консольных утилит: передача параметров через sys.argv (обзор argparse для сложных проектов).
Разработка скрипта, который стучится в публичное API (например, погода или курсы валют), забирает данные и принимает параметры из консоли (например: python script.py --city Moscow).
07
Базовое тестирование скриптов
Почему ручная проверка через print() — это путь в никуда.
Введение в фреймворк pytest.
Написание первых Unit-тестов для своих функций.
Тестирование исключений: как убедиться, что код корректно выбрасывает ошибку при неверных данных.
Покрытие Unit-тестами функций, написанных на 3 и 6 занятиях. Настройка автоматического запуска тестов через консоль.
08
ИИ-ассистент для работы с Python: делегирование рутины и безопасность
Использование ИИ для ускорения работы: написание шаблонного кода, генерация тестовых данных и подсказки по регулярным выражениям.
Корпоративная безопасность (InfoSec): что категорически запрещено передавать в публичные нейросети.
Проблема «галлюцинаций» ИИ и обязательный аудит сгенерированного кода.
09
Финальный проект: объединение всех концепций
Архитектура скрипта: точка входа __main__, модульность.
Разработка полноценного CLI-инструмента: API → валидация типов → обработка исключений → фильтрация → сохранение в JSON.
Проект типизирован, покрыт линтерами и тестами.
Код-ревью работ участников тренером.
Ответы на вопросы и рекомендации.
10
Итого на курс 32 ак. ч.: теория — 12,5 ак. ч. (40%), практика — 19,5 ак. ч. (60%)
Для кого
Разработчик
Тестировщик
Бизнес-аналитик
Дата-аналитик
DevOps-инженер
Предварительная подготовка
Базовая компьютерная грамотность и опыт работы в ИТ. Понимание общих принципов (что такое консоль, переменные, базы данных). Опыт написания простых макросов, SQL-запросов или bash-скриптов будет преимуществом.