Python roadmap, который ведёт к работе, начинается не со списка библиотек. Он начинается с ветки: backend, данные и скрипты, иногда автоматизация тестов. «Выучить Python» как цель в 2026-м в CIS даёт резюме без роли — и отклики, на которые не отвечают.
Ниже — карта до junior, а не энциклопедия. Что считать базой языка, какие ветки реально нанимают, чего не тащить в первые 90 дней, какой проект закрывает созвон и как понять, что вы уже не «на курсе», а готовы к тестовому.
Коротко:
- Сначала роль и пять вакансий, потом стек. Иначе roadmap расползается в «все фреймворки».
- База: типы, функции, ошибки, модули, виртуальное окружение, Git, тесты на своём коде — не «синтаксис за выходные».
- Backend-ветка в CIS чаще всего: HTTP API, PostgreSQL, Docker. FastAPI и Django — разные продукты, не чекбоксы в одном резюме без проекта.
- Данные — другая карта: SQL в центре, Python как клей. Не путайте с ML-инженером.
- Критерий готовности — репозиторий, который можно запустить, и рассказ, что сломалось. Не сертификат и не «прошёл 40 часов».
Сначала ветка, не язык
Откройте вакансии Python-разработчика и прочитайте десять заголовков. Часть — backend (Django, FastAPI, Flask). Часть — аналитика и скрипты. Часть — автотесты. Редко — «просто Python». Если смешать ветки в одном файле, получится человек, которого некуда положить в воронке.
Выберите одну на 90 дней. Сменить потом можно, но проект должен быть одним. Backend: сервис с БД и тестами. Данные: повторный расчёт и SQL, Python не главная строка. Автотесты: API/UI-набор с отчётом, не «знаю pytest» без кейсов. Как вообще входить в разработку на этом языке — в как стать Python-разработчиком; здесь — порядок учёбы под найм.
Не выбирайте ветку по «что популярнее в интернете». Выбирайте по тому, какие объявления вы готовы читать без боли и какой проект реально доведёте. Удалённый junior на Python в русскоязычных командах чаще backend или данные, чем «ML с нуля».
База языка, без которой вакансии врут вам
До фреймворка нужно читать чужой код и не теряться. Практический минимум:
- структуры, срезы, словари, генераторы на уровне «пишу сам», не «видел в шпаргалке»;
- функции, аргументы, исключения, логирование вместо print в «проде учебного сервиса»;
- модули, пакеты, venv, зависимости в файле, а не глобальный Python в системе;
- чтение traceback и pdb/отладчик в IDE;
- Git: ветка, коммит с смыслом, pull request самому себе, если нет команды.
ООП зубрите ровно настолько, насколько требует ветка. Django без классов не проживёт. Для скриптов аналитика классы часто лишние. Не сидите месяц на «солид и паттерны» до первой сущности в БД — это популярный способ не дойти до проекта.
Асинхронность, метаклассы, сложные декораторы — не вход. Если в вакансии FastAPI и вы не понимаете, зачем async на I/O, разберёте на проекте, не в отрыве. Типы: аннотации полезны, mypy не обязателен в первую очередь, если вы ещё путаетесь в обычных ошибках.
Backend-ветка
Типичный junior backend на Python в CIS: принять запрос, проверить данные, записать в PostgreSQL, отдать JSON, покрыть пару негативных сценариев тестом, собрать в Docker. Очереди, Kafka, Kubernetes — плюс или middle, не чек-лист новичка.
Порядок, который стыкуется с вакансиями:
- HTTP: статус-коды, идемпотентность на пальцах, что такое клиентская и серверная ошибка.
- Один фреймворк. FastAPI — если в ваших пяти вакансиях он есть и вам ближе API. Django — если админка, ORM, шаблоны, «классический» продукт. Карты: FastAPI roadmap и Django roadmap.
- PostgreSQL: схема, миграции, транзакция, «почему N+1». Сырой SQL на уровне понимания, не только ORM.
- Тесты: хотя бы на хендлер создания сущности и на отказ валидации. pytest достаточно.
- Docker: сервис + БД поднимаются одной командой. Детали — в Docker roadmap.
Не ставьте в резюме Django и FastAPI равным весом, если один — курс, второй — три дня. Основной фреймворк тот, в котором лежит проект. Второй — «касался», если готовы так сказать.
Ветка данных и скриптов
Если цель — аналитик или «Python для отчётов», roadmap другой. Центр — SQL и метрики, Python — pandas/скрипт выгрузки. Не учите FastAPI «на всякий случай» вместо JOIN. Навыки роли — в что должен знать Data Analyst, SQL — в SQL roadmap.
Достаточный Python здесь: чтение файлов, merge, даты, повтор запуска, а не микросервисы. Если вакансии смешанные «аналитик-разработчик», честно выберите перевес и покажите его в заголовке резюме. Смешанный skills без проекта путает ATS и человека.
Что не учить в первые 90 дней
Список, который чаще всего раздувает roadmap и не закрывает junior:
- второй и третий фреймворк «для широты»;
- Kubernetes, Terraform, «микросервисная архитектура» без одного сервиса;
- нейронные сети при цели backend;
- все облака сразу: AWS, GCP, Yandex Cloud как три навыка с курса;
- алгоритмы на уровне олимпиады, если ваши вакансии не про спортивное программирование. Структуры данных на пальцах — да, LeetCode как единственная учёба — нет.
Алгоритмы имеют смысл как разминка к лайвкодингу, если в вакансии его прямо обещают. Тогда 3–4 типовые задачи в неделю, не вместо проекта. Иначе вы придёте с пустым GitHub и «решал 200 задач» — для CIS junior backend это слабый пакет.
Пример 1. 90-дневный проект под backend junior
Сервис «заказы»: пользователи, позиции, статусы, простой лимит. Стек: Python, FastAPI или Django — один, PostgreSQL, pytest, Docker Compose, README.
- Дни 1–15. Модель данных, миграции, создание заказа, ошибка при пустой корзине. Без фронта: HTTP-клиент или минимальный скрипт.
- Дни 16–40. Список с фильтром по статусу, пагинация, идемпотентный ключ на создание «на пальцах», логирование. Два теста на счастливый путь, два — на отказ.
- Дни 41–65. Docker Compose: приложение + Postgres. Переменные окружения, не пароль в репозитории. Короткий сценарий «как накатить миграции».
- Дни 66–90. README на 15–20 строк: зачем сервис, как запустить, что сделано вами, чего нет (нет оплаты, нет очереди). Один разбор бага в issues или в файле DECISIONS.md: «почему отказался от такого JOIN». Резюме по резюме Python-разработчика.
Откликаюсь на junior Python backend. Собрал сервис заказов: FastAPI, PostgreSQL, тесты на создание и валидацию, Docker Compose. Коммерческого стажа нет. На созвоне могу разобрать схему и почему пагинация сделана так. Репозиторий: [ссылка]. Готов к тестовому на 4–8 часов в том же формате, что в вакансии.
Это письмо закрывает роль лучше, чем «прошёл roadmap Python 2026». Черновик можно собрать в генераторе письма — вставьте ссылку и стек из README, не общий абзац про язык.