Python roadmap: что учить и в каком порядке
Python roadmap: дорожная карта от основ языка до веба, анализа данных, автоматизации и ML. Порядок тем, инструменты и чек-листы навыков для каждого этапа.
Содержание · 9 разделов
- Карта целиком
- Основы языка
- Уверенный Python
- Инструменты разработчика
- Выбор направления
- Веб-разработка (бэкенд)
- Анализ данных
- Автоматизация и скрипты
- Машинное обучение
- Углубление
- Как пользоваться картой
- Частые вопросы
- Можно ли сразу начать с Django или ML?
- Нужно ли учить алгоритмы и структуры данных?
- Нужен ли английский?
- Какой версии Python учиться?
- Нужно ли бэкенд-разработчику знать HTML и JavaScript?
- Куда двигаться, если хочется писать десктопные программы или игры?
- Итог
Python roadmap — это дорожная карта, которая показывает, что учить и в каком порядке: основы языка → уверенный Python → инструменты разработчика → одно направление (веб, анализ данных, автоматизация или машинное обучение). Основы, уверенный Python и инструменты нужны всем, развилка начинается только с выбора направления.
В этой статье — карта целиком: темы каждого уровня, порядок внутри направлений и чек-листы навыков, по которым удобно проверять себя. Подробный разбор самых первых шагов с примерами кода — в учебном маршруте «Python с нуля»; здесь мы смотрим дальше и шире.
Карта целиком
| Уровень | Что входит | Результат |
|---|---|---|
| Основы языка | Синтаксис, типы, коллекции, функции, исключения, файлы | Решаете учебные задачи без подсказок |
| Уверенный Python | ООП, модули, генераторы, контекстные менеджеры, аннотации типов | Пишете программу из нескольких модулей |
| Инструменты разработчика | Терминал, Git, venv и pip, отладчик, тесты, линтеры, SQL, HTTP | Проект в репозитории, который запустит другой |
| Направление | Веб, данные, автоматизация или ML | Проект в выбранной области |
| Углубление | Архитектура, производительность, асинхронность, деплой | Решения, которые можно поддерживать годами |
Двигайтесь по уровням последовательно, но не ждите «идеального» знания: переходите дальше, когда закрыт чек-лист уровня. Практика — задачи и проекты — идёт параллельно на всех уровнях.
Основы языка
Порядок тем внутри уровня:
- Установка Python и запуск скриптов — см. «Как установить Python».
- Переменные, числа, строки,
bool, ввод и вывод, f-строки. - Условия и циклы:
if,for,while,range(). - Коллекции: списки, словари, кортежи, множества.
- Функции: параметры,
return, значения по умолчанию, области видимости. - Исключения: чтение traceback,
try/except. - Работа с файлами:
open(),with, кодировки, модулиcsvиjson.
Чек-лист уровня:
- Пишу программу с вводом, условиями и циклом без подглядывания в шпаргалку.
- Выбираю подходящую коллекцию: когда список, когда словарь, когда множество.
- Разбиваю код на функции, которые возвращают значения, а не печатают их.
- По traceback нахожу строку и причину ошибки.
- Читаю и записываю текстовые, CSV- и JSON-файлы.
Уверенный Python
На этом уровне вы перестаёте писать «скрипты на один экран» и начинаете писать программы. Порядок:
- ООП: классы,
__init__, методы, наследование, «магические» методы,@dataclass. - Модули и пакеты:
import, структура проекта, конструкцияif __name__ == "__main__". - Стандартная библиотека:
pathlib,datetime,collections,itertools,re,logging,argparse. - Итераторы и генераторы:
yield, генераторные выражения, ленивые вычисления. - Функции высшего порядка:
lambda,sorted(key=...), декораторы. - Контекстные менеджеры:
with,contextlib.contextmanager. - Аннотации типов:
list[str],str | None, проверка через mypy или pyright.
Проверить себя можно на коротком примере: если каждая строка здесь понятна, уровень почти закрыт.
from collections.abc import Iterator
from contextlib import contextmanager
from dataclasses import dataclass
import time
@dataclass
class Task:
title: str
done: bool = False
def pending(tasks: list[Task]) -> Iterator[str]:
for task in tasks:
if not task.done:
yield task.title
@contextmanager
def timer(label: str):
start = time.perf_counter()
yield
print(f"{label}: {time.perf_counter() - start:.3f} c")
tasks = [Task("Выучить генераторы"), Task("Написать тесты", done=True)]
with timer("Поиск"):
print(list(pending(tasks)))
['Выучить генераторы']
Поиск: 0.000 c
Чек-лист уровня:
- Описываю предметную область классами и понимаю, когда класс не нужен.
- Раскладываю проект по модулям и импортирую свой код без ошибок.
- Объясняю, чем генератор отличается от списка и когда он выгоднее.
- Понимаю, что делает декоратор, и могу написать простой.
- Ставлю аннотации типов в сигнатурах функций.
- Использую
loggingвместоprint()для диагностики.
Инструменты разработчика
Эти навыки часто пропускают, а потом именно на них спотыкаются в первом рабочем проекте. Порядок не жёсткий, но начните с первых трёх пунктов:
- Терминал: навигация, запуск команд, переменные окружения,
PATH. - Окружения и пакеты: виртуальное окружение venv, pip,
requirements.txt; затем современные менеджеры вроде uv или Poetry. - Git: коммиты, ветки, слияние, работа с удалённым репозиторием (GitHub, GitLab и аналоги).
- Редактор и отладчик: точки останова, пошаговое выполнение — например, в VS Code или PyCharm.
- Тесты:
pytest, фикстуры, проверка исключений. - Качество кода: PEP 8, форматтер и линтер (например, Ruff), проверка типов.
- SQL и базы данных:
SELECT,JOIN,GROUP BY, индексы; модульsqlite3для практики. - HTTP и API: методы, коды ответов, заголовки, JSON; клиент — библиотека requests.
Чек-лист уровня:
- Проект лежит в Git-репозитории с README и
requirements.txt, другой человек может его запустить. - Каждый проект живёт в своём виртуальном окружении.
- Ищу ошибку отладчиком, а не только через
print(). - Для ключевых функций есть тесты на
pytest. - Пишу SQL-запрос с
JOINи группировкой. - Отправляю HTTP-запрос к API и обрабатываю ошибки и тайм-ауты.
Выбор направления
Язык один, но инструменты у направлений разные. Выберите одно и пройдите его до проекта, прежде чем браться за следующее. Обзор областей применения — в статье «Python: что это за язык и для чего он нужен».
Веб-разработка (бэкенд)
Что учить по порядку:
- Как работает веб: HTTP, клиент и сервер, HTML и формы, cookie и сессии.
- Фреймворк. Для сайтов с админкой и базой данных — Django, для API — FastAPI, для небольших приложений — Flask. Сравнение — в статье о веб-фреймворках Python.
- Базы данных: PostgreSQL, ORM, миграции.
- REST API: сериализация, аутентификация, документация.
- Фоновые задачи и кэш: Celery, Redis.
- Деплой: Linux-сервер, Gunicorn или Uvicorn, Nginx, Docker.
Чек-лист: CRUD-приложение с регистрацией пользователей; API с авторизацией и тестами; проект развёрнут на сервере и доступен по адресу. Начать удобно с руководства Django для начинающих или статьи о FastAPI.
Анализ данных
- Jupyter Notebook и NumPy: массивы и векторные операции.
- pandas: загрузка, очистка, фильтрация, группировка, объединение таблиц.
- Визуализация: matplotlib, затем seaborn или Plotly.
- SQL на продвинутом уровне: оконные функции, подзапросы.
- Статистика: распределения, выборки, проверка гипотез, A/B-тесты.
- Подача результатов: отчёт или дашборд, понятный нетехническому читателю.
Чек-лист: провели исследование открытого датасета от «сырых» данных до выводов с графиками; объясняете, почему выбрали ту или иную метрику; результат воспроизводится из ноутбука с нуля.
Автоматизация и скрипты
- Файлы и папки:
pathlib,shutil, архивы, кодировки. - Офисные форматы: Excel (
openpyxl, pandas), Word, PowerPoint (python-pptx), PDF. - Сеть:
requests, API сервисов, парсинг HTML через BeautifulSoup, браузерная автоматизация через Selenium или Playwright. - Регулярные выражения,
argparse, логирование. - Запуск по расписанию: планировщик Windows, cron,
schedule. - Боты: Telegram и другие мессенджеры.
Чек-лист: скрипт, который экономит вам время каждую неделю и работает по расписанию без вашего участия; бот с несколькими командами; обработка ошибок сети и неправильных данных. Готовые примеры — в статье «Автоматизация рутинных задач с помощью Python».
Машинное обучение
ML — продолжение анализа данных, поэтому сначала освойте Jupyter, NumPy, pandas и визуализацию из блока про анализ данных.
- Математика: линейная алгебра (векторы, матрицы), основы матанализа (производная, градиент), теория вероятностей и статистика.
- Классическое ML на scikit-learn: регрессия, классификация, деревья и ансамбли, кросс-валидация, метрики качества.
- Подготовка признаков и борьба с переобучением.
- Глубокое обучение: нейросети на PyTorch (или другом фреймворке), обучение на GPU.
- Прикладная область по интересу: компьютерное зрение (OpenCV), обработка текста, рекомендательные системы.
- Вывод модели в работу: сохранение модели, API для предсказаний, мониторинг.
Чек-лист: обучили модель на реальных данных и честно оценили её на отложенной выборке; объясняете, почему выбрали метрику и модель; модель доступна через простой API.
Углубление
Когда направление освоено на уровне проектов, пора углубляться в него и в сам язык:
- Асинхронность:
asyncio,async/await— основа FastAPI, ботов и сетевых сервисов. - Производительность: профилирование (
cProfile), алгоритмическая сложность, кэширование. - Архитектура: принципы проектирования, слои приложения, работа с чужим кодом.
- Устройство Python: модель данных, изменяемость, сборка мусора, GIL и его изменения в новых версиях.
- Инфраструктура: Docker, CI/CD, мониторинг и логи в продакшне.
- Командная работа: код-ревью, pull request, документация.
Как пользоваться картой
- Одно направление за раз. Попытка одновременно учить Django, pandas и нейросети — частая причина выгорания.
- Проект на каждом уровне. Уровень закрыт, когда есть программа, а не прочитанная глава.
- Возвращайтесь к основам. Встретили непонятный синтаксис во фреймворке — вернитесь к соответствующей теме уверенного Python (декораторам, генераторам, контекстным менеджерам), а не заучивайте код фреймворка.
- Учитесь по одному основному источнику. Курс или книга плюс практика. Подборка литературы — в статье о книгах по Python для начинающих.
- Не гонитесь за сроками. Скорость зависит от времени на занятия и прошлого опыта, поэтому ориентируйтесь на чек-листы, а не на календарь.
Частые вопросы
Можно ли сразу начать с Django или ML?
Технически — да, но без основ и уверенного владения языком код фреймворка будет выглядеть набором магических заклинаний. Быстрее сначала закрыть основы, а потом идти в направление.
Нужно ли учить алгоритмы и структуры данных?
Базовый минимум нужен всем: сложность операций со списком, словарём и множеством, сортировка, поиск, рекурсия. Глубокая алгоритмика важна для собеседований в крупные компании и для задач, где важна производительность.
Нужен ли английский?
Желателен. Документация, сообщения об ошибках, ответы на форумах и большинство свежих материалов — на английском. Достаточно уровня, чтобы читать техтекст с переводчиком под рукой.
Какой версии Python учиться?
Актуальной стабильной ветки Python 3 — в октябре 2026 года это Python 3.15. Различия между соседними версиями для новичка минимальны, а Python 2 не поддерживается с 2020 года. Как проверить, что стоит у вас, — в статье «Как узнать версию Python».
Нужно ли бэкенд-разработчику знать HTML и JavaScript?
На базовом уровне — да. HTML и формы понадобятся в шаблонах Django и Flask, а понимание того, как JavaScript во фронтенде вызывает ваш API, упрощает отладку и общение с фронтенд-разработчиками. Глубоко изучать фронтенд-фреймворки бэкендеру не обязательно.
Куда двигаться, если хочется писать десктопные программы или игры?
Это отдельные небольшие направления. Окна и формы делают на Tkinter из стандартной библиотеки или на PyQt/PySide, двумерные игры — на Pygame. Основы языка и инструменты разработчика для них те же, что и для остальных направлений.
Итог
Дорожная карта Python проста: основы, уверенный язык, инструменты разработчика, затем одно направление и углубление в нём. Отмечайте пункты чек-листов, подкрепляйте каждый уровень проектом и возвращайтесь к основам, когда что-то непонятно. Начните с маршрута «Python с нуля», закрепляйте темы на задачах с решениями и выберите первый проект для портфолио.
- #Python
- #Roadmap
- #Обучение
- #Карьера
- #Для начинающих