Django-Admin.ru

Python roadmap: что учить и в каком порядке

Python roadmap: дорожная карта от основ языка до веба, анализа данных, автоматизации и ML. Порядок тем, инструменты и чек-листы навыков для каждого этапа.

Редакция Django-Admin.ru
· обновлено · 9 мин чтения

Содержание · 9 разделов
  1. Карта целиком
  2. Основы языка
  3. Уверенный Python
  4. Инструменты разработчика
  5. Выбор направления
  6. Веб-разработка (бэкенд)
  7. Анализ данных
  8. Автоматизация и скрипты
  9. Машинное обучение
  10. Углубление
  11. Как пользоваться картой
  12. Частые вопросы
  13. Можно ли сразу начать с Django или ML?
  14. Нужно ли учить алгоритмы и структуры данных?
  15. Нужен ли английский?
  16. Какой версии Python учиться?
  17. Нужно ли бэкенд-разработчику знать HTML и JavaScript?
  18. Куда двигаться, если хочется писать десктопные программы или игры?
  19. Итог

Python roadmap — это дорожная карта, которая показывает, что учить и в каком порядке: основы языка → уверенный Python → инструменты разработчика → одно направление (веб, анализ данных, автоматизация или машинное обучение). Основы, уверенный Python и инструменты нужны всем, развилка начинается только с выбора направления.

В этой статье — карта целиком: темы каждого уровня, порядок внутри направлений и чек-листы навыков, по которым удобно проверять себя. Подробный разбор самых первых шагов с примерами кода — в учебном маршруте «Python с нуля»; здесь мы смотрим дальше и шире.

Карта целиком

УровеньЧто входитРезультат
Основы языкаСинтаксис, типы, коллекции, функции, исключения, файлыРешаете учебные задачи без подсказок
Уверенный PythonООП, модули, генераторы, контекстные менеджеры, аннотации типовПишете программу из нескольких модулей
Инструменты разработчикаТерминал, Git, venv и pip, отладчик, тесты, линтеры, SQL, HTTPПроект в репозитории, который запустит другой
НаправлениеВеб, данные, автоматизация или MLПроект в выбранной области
УглублениеАрхитектура, производительность, асинхронность, деплойРешения, которые можно поддерживать годами

Двигайтесь по уровням последовательно, но не ждите «идеального» знания: переходите дальше, когда закрыт чек-лист уровня. Практика — задачи и проекты — идёт параллельно на всех уровнях.

Основы языка

Порядок тем внутри уровня:

  1. Установка Python и запуск скриптов — см. «Как установить Python».
  2. Переменные, числа, строки, bool, ввод и вывод, f-строки.
  3. Условия и циклы: if, for, while, range().
  4. Коллекции: списки, словари, кортежи, множества.
  5. Функции: параметры, return, значения по умолчанию, области видимости.
  6. Исключения: чтение traceback, try/except.
  7. Работа с файлами: open(), with, кодировки, модули csv и json.

Чек-лист уровня:

  • Пишу программу с вводом, условиями и циклом без подглядывания в шпаргалку.
  • Выбираю подходящую коллекцию: когда список, когда словарь, когда множество.
  • Разбиваю код на функции, которые возвращают значения, а не печатают их.
  • По traceback нахожу строку и причину ошибки.
  • Читаю и записываю текстовые, CSV- и JSON-файлы.

Уверенный Python

На этом уровне вы перестаёте писать «скрипты на один экран» и начинаете писать программы. Порядок:

  1. ООП: классы, __init__, методы, наследование, «магические» методы, @dataclass.
  2. Модули и пакеты: import, структура проекта, конструкция if __name__ == "__main__".
  3. Стандартная библиотека: pathlib, datetime, collections, itertools, re, logging, argparse.
  4. Итераторы и генераторы: yield, генераторные выражения, ленивые вычисления.
  5. Функции высшего порядка: lambda, sorted(key=...), декораторы.
  6. Контекстные менеджеры: with, contextlib.contextmanager.
  7. Аннотации типов: 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() для диагностики.

Инструменты разработчика

Эти навыки часто пропускают, а потом именно на них спотыкаются в первом рабочем проекте. Порядок не жёсткий, но начните с первых трёх пунктов:

  1. Терминал: навигация, запуск команд, переменные окружения, PATH.
  2. Окружения и пакеты: виртуальное окружение venv, pip, requirements.txt; затем современные менеджеры вроде uv или Poetry.
  3. Git: коммиты, ветки, слияние, работа с удалённым репозиторием (GitHub, GitLab и аналоги).
  4. Редактор и отладчик: точки останова, пошаговое выполнение — например, в VS Code или PyCharm.
  5. Тесты: pytest, фикстуры, проверка исключений.
  6. Качество кода: PEP 8, форматтер и линтер (например, Ruff), проверка типов.
  7. SQL и базы данных: SELECT, JOIN, GROUP BY, индексы; модуль sqlite3 для практики.
  8. HTTP и API: методы, коды ответов, заголовки, JSON; клиент — библиотека requests.

Чек-лист уровня:

  • Проект лежит в Git-репозитории с README и requirements.txt, другой человек может его запустить.
  • Каждый проект живёт в своём виртуальном окружении.
  • Ищу ошибку отладчиком, а не только через print().
  • Для ключевых функций есть тесты на pytest.
  • Пишу SQL-запрос с JOIN и группировкой.
  • Отправляю HTTP-запрос к API и обрабатываю ошибки и тайм-ауты.

Выбор направления

Язык один, но инструменты у направлений разные. Выберите одно и пройдите его до проекта, прежде чем браться за следующее. Обзор областей применения — в статье «Python: что это за язык и для чего он нужен».

Веб-разработка (бэкенд)

Что учить по порядку:

  1. Как работает веб: HTTP, клиент и сервер, HTML и формы, cookie и сессии.
  2. Фреймворк. Для сайтов с админкой и базой данных — Django, для API — FastAPI, для небольших приложений — Flask. Сравнение — в статье о веб-фреймворках Python.
  3. Базы данных: PostgreSQL, ORM, миграции.
  4. REST API: сериализация, аутентификация, документация.
  5. Фоновые задачи и кэш: Celery, Redis.
  6. Деплой: Linux-сервер, Gunicorn или Uvicorn, Nginx, Docker.

Чек-лист: CRUD-приложение с регистрацией пользователей; API с авторизацией и тестами; проект развёрнут на сервере и доступен по адресу. Начать удобно с руководства Django для начинающих или статьи о FastAPI.

Анализ данных

  1. Jupyter Notebook и NumPy: массивы и векторные операции.
  2. pandas: загрузка, очистка, фильтрация, группировка, объединение таблиц.
  3. Визуализация: matplotlib, затем seaborn или Plotly.
  4. SQL на продвинутом уровне: оконные функции, подзапросы.
  5. Статистика: распределения, выборки, проверка гипотез, A/B-тесты.
  6. Подача результатов: отчёт или дашборд, понятный нетехническому читателю.

Чек-лист: провели исследование открытого датасета от «сырых» данных до выводов с графиками; объясняете, почему выбрали ту или иную метрику; результат воспроизводится из ноутбука с нуля.

Автоматизация и скрипты

  1. Файлы и папки: pathlib, shutil, архивы, кодировки.
  2. Офисные форматы: Excel (openpyxl, pandas), Word, PowerPoint (python-pptx), PDF.
  3. Сеть: requests, API сервисов, парсинг HTML через BeautifulSoup, браузерная автоматизация через Selenium или Playwright.
  4. Регулярные выражения, argparse, логирование.
  5. Запуск по расписанию: планировщик Windows, cron, schedule.
  6. Боты: Telegram и другие мессенджеры.

Чек-лист: скрипт, который экономит вам время каждую неделю и работает по расписанию без вашего участия; бот с несколькими командами; обработка ошибок сети и неправильных данных. Готовые примеры — в статье «Автоматизация рутинных задач с помощью Python».

Машинное обучение

ML — продолжение анализа данных, поэтому сначала освойте Jupyter, NumPy, pandas и визуализацию из блока про анализ данных.

  1. Математика: линейная алгебра (векторы, матрицы), основы матанализа (производная, градиент), теория вероятностей и статистика.
  2. Классическое ML на scikit-learn: регрессия, классификация, деревья и ансамбли, кросс-валидация, метрики качества.
  3. Подготовка признаков и борьба с переобучением.
  4. Глубокое обучение: нейросети на PyTorch (или другом фреймворке), обучение на GPU.
  5. Прикладная область по интересу: компьютерное зрение (OpenCV), обработка текста, рекомендательные системы.
  6. Вывод модели в работу: сохранение модели, 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
  • #Обучение
  • #Карьера
  • #Для начинающих
↑ ↓ выборEnter открытьEsc закрыть