Data Science
Matplotlib / Seaborn
- Несколько графиков на одной фигуре: subplot
- Настройка легенды, сетки, заголовков
- Ящики с усами: boxplot()
- Круговые диаграммы: pie()
- Гистограммы: hist()
- Столбчатые диаграммы: bar()
- Точечные графики: scatter()
- Линейные графики: plot()
- Настройка фигуры: размер, dpi, подписи
- Установка Matplotlib и первый график
NumPy
- 10 задач на NumPy (для начинающих)
- Случайные числа: random.rand, randn, uniform, seed
- Линейная алгебра: dot, matmul, inv, det
- Broadcasting (распространение) в NumPy
- Статистики: sum, mean, std, min, max, cumsum
- Универсальные функции (ufunc): sin, cos, exp, log
- Векторизованные операции: без циклов
- Формы массивов: reshape, ravel, flatten
- Булева индексация и fancy indexing
- Индексация и срезы в NumPy
- Атрибуты массива: shape, size, dtype, ndim
- Создание массивов: array(), zeros(), ones(), arange()
- Установка NumPy и первый массив
Pandas
- Сортировка и ранжирование
- Группировка: groupby() и агрегация (agg)
- Замена значений: replace и map
- Обработка пропусков: isnull(), dropna(), fillna()
- Добавление и удаление колонок
- Фильтрация данных по условию
- Выбор колонок и строк: [] vs loc vs iloc
- Просмотр данных: head(), tail(), info(), describe()
- Создание DataFrame из CSV, Excel, словаря
- Что такое DataFrame: таблица в Pandas
- Установка Pandas и знакомство с Series
Scikit-learn
- Градиентный бустинг: GradientBoosting
- Случайный лес: RandomForest
- Деревья решений: DecisionTree
- Матрица ошибок (confusion matrix)
- Метрики классификации: accuracy, precision, recall, F1
- Метрики регрессии: MAE, MSE, RMSE, R2
- Логистическая регрессия для классификации
- Линейная регрессия: теория и практика
- Кодирование категорий: OneHotEncoder, LabelEncoder
- Масштабирование: StandardScaler, MinMaxScaler
- Разделение данных на train/test: train_test_split
- Установка scikit-learn и знакомство
Автоматизация
Telegram-боты
Парсинг (BeautifulSoup, Selenium)
- Клики, ввод текста, скроллинг
- Поиск элементов в Selenium
- Первый скрипт на Selenium: открыть сайт
- Установка Selenium и WebDriver
- Извлечение текста, ссылок, атрибутов в BeautifulSoup
- Навигация по DOM-дереву с помощью CSS-селекторов
- Поиск тегов: find(), find_all()
- Установка BeautifulSoup и первый парсер
- Что такое парсинг сайтов: законно ли это?
Веб-разработка
Django
FastAPI
- FastAPI vs Flask vs Django: полное сравнение
- Мини-проект: To-Do лист с БД
- Мини-проект: API погоды
- Деплой FastAPI на сервер (Uvicorn + Nginx)
- Тестирование FastAPI: TestClient
- Документация: Swagger и ReDoc
- Аутентификация JWT в FastAPI
- Работа с базами данных: SQLAlchemy + FastAPI
- Фоновые задачи (BackgroundTasks)
- WebSockets в FastAPI: чат в реальном времени
- CORS в FastAPI
- Middleware в FastAPI
- Обработка ошибок и кастомные исключения
- Асинхронность в FastAPI: async/await
- Зависимости (Depends) в FastAPI
- Path-параметры и их валидация
- Валидация данных в FastAPI
- Тело запроса: Pydantic модели
- Пути и query-параметры в FastAPI
- Установка FastAPI и первый эндпоинт
Flask
REST API
- Топ-10 ошибок при создании REST API
- Мини-проект: API для интернет-магазина
- Мини-проект: API для блога (CRUD)
- Версионирование API: стратегии и примеры
- Rate limiting: ограничение частоты запросов
- Документирование API (Swagger, ReDoc)
- Тестирование API (Postman, pytest)
- Аутентификация в API: JWT и OAuth2
- Пагинация, фильтрация и сортировка
- Валидация входных данных в API
- Сериализация и десериализация данных
- Создание API на Django REST Framework
- Создание API на FastAPI
- Создание простого API на Flask
- Формат JSON: структура и работа в Python
- Статус-коды HTTP: 2xx, 3xx, 4xx, 5xx
- Методы HTTP: GET, POST, PUT, PATCH, DELETE
- Что такое REST API: принципы и архитектура
Синтаксис и основы
Генераторы списков и словарей
Декораторы
Обработка исключений
- Как не писать пустой except: антипаттерны
- 10 задач на обработку исключений (для новичков)
- Иерархия исключений: BaseException, Exception и их наследники
- Создание своих исключений: классы исключений
- Raise: как вручную вызвать исключение
- Блок finally: действия, которые выполняются всегда
- Блок else в try-except: когда выполняется
- Конкретные исключения: ValueError, TypeError, KeyError и другие
- Конструкция try-except: перехват ошибок
- Что такое исключение в Python и зачем их обрабатывать
Переменные и типы данных
- Как сократить код с помощью множественного присваивания (5 примеров)
- Топ-10 вопросов о переменных и типах данных на собеседовании
- Мини-проект: программа для перевода секунд в часы и минуты
- Мини-проект: калькулятор индекса массы тела (ИМТ)
- Шпаргалка по типам данных в Python (быстрый справочник)
- Топ-5 ошибок с переменными и типами данных
- Цепочка присваиваний: как работает a = b = c = 5
- Почему 0.1 + 0.2 не равно 0.3? Проблема точности float
- 5 задач на преобразование типов (с решениями)
- 10 задач на переменные и типы данных (для новичков)
- Динамическая типизация в Python: плюсы и минусы
- Множественное присваивание: a, b = 1, 2
- Изменяемые и неизменяемые типы данных: в чём разница
- Как узнать тип переменной: type() и isinstance()
- Тип None: что это и зачем нужен?
- Преобразование типов: int(), str(), float()
- Логический тип (bool): True и False
- Строки (str): кавычки, конкатенация и экранирование
- Числа в Python: int и float
- Что такое переменная в Python: первое знакомство
- Установка Python и VS Code: подготовка рабочего места
Работа с файлами
- Модуль os: переименование, удаление, проверка существования файлов
- Работа с бинарными файлами: ‘rb’, ‘wb’
- Работа с текстовыми файлами (TXT): примеры
- Работа с JSON: json.dump(), json.load()
- Работа с CSV: модуль csv (чтение и запись)
- Запись в файл: write(), writelines()
- Чтение файлов: read(), readline(), readlines()
- Менеджер контекста with: безопасная работа с файлами
- Функция open(): как открыть файл
- Что такое файл в Python: режимы чтения и записи
Списки, словари, кортежи
- Добавление и изменение элементов в словаре
- Что такое словарь (dict): пары ключ-значение
- Зачем нужны кортежи, если есть списки
- Что такое кортеж (tuple): неизменяемый список
- Генераторы списков (list comprehensions): синтаксис и примеры
- Копирование списка: copy(), срезы, list() и их отличия
- Сортировка списка: sort() и sorted()
- Поиск в списке: index(), count(), in
- Удаление элементов: remove(), pop(), del, clear()
- Добавление элементов: append(), insert(), extend()
- Что такое список (list): создание, индексы, срезы
Условия и циклы
- Что такое цикл while: синтаксис и простые примеры
- Вложенные условия: if внутри if
- Тернарный оператор: условия в одну строку
- Конструкция elif: множественные условия
- Конструкция if-else: ветвление на два направления
- Логические операторы: and, or, not
- Операторы сравнения: ==, !=, >, <, >=, <=
- Что такое условный оператор if: первое знакомство
- Установка Python и VS Code (Техническая версия)
Функции
- Переменное количество аргументов: *args и **kwargs
- Значения аргументов по умолчанию
- Глобальная переменная global: когда и зачем нужна
- Области видимости переменных: локальные и глобальные
- Функции без return: что возвращают и зачем нужны
- Return: возврат значения из функции
- Аргументы функции: позиционные и именованные
- Синтаксис def: создание и вызов функции
- Что такое функция в Python: зачем нужны и как работают







