Полный Roadmap: от Новичка до Senior Python-разработчика (0 -> Senior)
Длительность: 18-24 месяца (при 10-15 ч/неделю)
Философия:
- Каждый уровень строится на предыдущем.
- Теория + практика + проект.
- Нет "магии" - всё объясняется и отрабатывается.
- Акцент на современные практики 2025 года.
Цель: Написать первую программу, понять основы синтаксиса и запустить код.
Что изучить:
- Установка Python, pip
- Переменные, типы (int, str, bool, float)
- Операторы: +, -, ==, and, or
- Условия: if/elif/else
- Циклы: for, while
- Функции: def, return, параметры
- Встроенные структуры: list, dict, tuple, set
- Работа с файлами: open(), read(), write()
- Обработка ошибок: try/except
- Калькулятор
- Список дел (сохранение в файл)
- Парсер лог-файла (найти IP-адреса)
- Можешь написать программу без помощи внешних источников.
- Понимаешь, почему 1 == True, но 1 is not True.
Уровень 1: Junior (2-6 месяцев)
Цель: Писать читаемый, структурированный код и использовать стандартную библиотеку.
Что изучить:
- Модули и пакеты (import, init.py)
- Виртуальные окружения (venv, poetry)
- Списковые включения, генераторы
- Работа с датами (datetime)
- Регулярные выражения (re)
- ООП: классы, методы, наследование
- *args, **kwargs
- with и контекстные менеджеры
- Аннотации типов (str, List[int])
- logging вместо print
- CLI-утилита для переименования файлов
- Простой веб-скрапер (requests + BeautifulSoup)
- Мини-блог с сохранением в JSON
- Используешь poetry и pyproject.toml.
- Твой код проходит ruff и mypy (базово).
- Ты не боишься читать официальную документацию.
Уровень 2: Junior+ / Middle- (6-12 месяцев)
Цель: Писать тестируемый, асинхронный, типизированный код и работать с БД.
Что изучить:
- Продвинутый ООП: @property, магические методы, dataclass
- Декораторы (написание своих)
- Асинхронность: async/await, asyncio
- Асинхронные библиотеки: httpx, aiofiles
- Работа с БД: sqlite3, asyncpg, SQLAlchemy Core
- FastAPI или Flask
- Тестирование: pytest, моки
- Docker: базовый Dockerfile
- Асинхронный парсер 10 сайтов за ~1 секунду
- REST API для управления задачами (FastAPI + PostgreSQL)
- Тесты с покрытием > 80%
- Ты деплоишь свой API на Render, Railway или аналогичный хостинг.
- Используешь async осознанно, а не потому что "модно".
- Понимаешь разницу между threading и asyncio.
Уровень 3: Middle (12-18 месяцев)
Цель: Проектировать системы, а не только писать эндпоинты.
Что изучить:
- Архитектурные паттерны: layered, clean architecture
- Dependency injection
- Миграции БД: Alembic
- Очереди: Celery, Redis
- Аутентификация: JWT, OAuth2
- Валидация: Pydantic v2
- Тестирование: интеграционные, e2e
- CI/CD: GitHub Actions
- Docker Compose
- Система уведомлений: email + push через очередь
- Многосервисное приложение: auth-service + task-service
- Настройка CI: тесты + линтеры + сборка образа
- Ты пишешь ADR (Architecture Decision Record) перед крупным изменением.
- Твой проект имеет чёткое разделение на слои (domain, adapters, entrypoints).
- Можешь обосновать выбор очереди (Celery vs arq vs dramatiq).
Уровень 4: Middle+ / Senior- (18-21 месяцев)
Цель: Обеспечивать надёжность, безопасность и наблюдаемость.
Что изучить:
- Observability: structured logging, Prometheus, OpenTelemetry
- Безопасность: OWASP Top 10, rate limiting, IDOR
- Профилирование: py-spy, scalene
- Graceful shutdown, health-checks
- Circuit breaker, retry с jitter
- Kubernetes: Pods, Deployments, Probes (базово)
- Property-based testing (hypothesis)
- Добавь observability в свой проект: логи с trace ID, метрики, трассировка.
- Проведи security audit: устрани уязвимости, добавь rate limiting.
- Напиши chaos-тест: имитация падения БД или внешнего API.
- Ты видишь в Grafana latency, RPS и error rate.
- Твой сервис корректно завершается при SIGTERM без потери данных.
- В CI есть проверка на уязвимости зависимостей (например, через safety).
Уровень 5: Senior (21-24+ месяцев)
Цель: Быть тем, кто задаёт направление, а не только следует ему.
Что изучить:
- Глубокое устройство CPython: GIL, сборка мусора, bytecode
- Масштабирование: шардирование, read replicas, CQRS
- Event-driven архитектура
- Technical leadership: code review, mentoring
- RFC/ADR, техническая документация
- Оценка задач, архитектурные trade-offs
- Коммуникация с нетехническими стейкхолдерами
- Перепроектируй систему под 10x нагрузку: добавь read replica, кэш, шардирование.
- Проведи code review в open-source проекте (например, FastAPI или Celery).
- Напиши RFC: «Переход с REST на gRPC» или «Миграция с Celery на arq».
- Наставляй джуниоров (реально или через менторство в сообществе).
- Ты участвуешь в принятии архитектурных решений на уровне компании.
- Твои решения учитывают бизнес-контекст, стоимость поддержки и риски.
- Ты регулярно делаешь других разработчиков лучше через ревью и обсуждения.
Уровень | Язык | Веб | БД | Тесты | DevOps |
---|---|---|---|---|---|
Новичок | Python 3.10+ | - | JSON | - | - |
Junior | + типизация | Flask | SQLite | pytest | venv |
Middle- | + async | FastAPI | PostgreSQL | + моки | Docker |
Middle | + архитектура | + Celery | + миграции | + e2e | GitHub Actions |
Senior- | + безопасность | + OAuth2 | + реплики | + chaos | Prometheus |
Senior | + CPython internals | + gRPC/event streaming | + шардирование | + property-based | Kubernetes |
Как использовать этот roadmap:
- Определи свой текущий уровень по критериям.
- Сфокусируйся на одном уровне - не прыгай вперёд.
- Каждый уровень = 1 полноценный проект + документация (README, ADR).
- Раз в месяц проводи ретроспективу: что освоил, что требует доработки.
- Не гонись за новыми фреймворками - освой основы до автоматизма.
Заключение:
Senior - это не тот, кто знает всё. Это тот, кто умеет учиться, принимать взвешенные решения и нести за них ответственность - перед командой, продуктом и пользователями. Если вы следуете этому пути последовательно, через 2 года вы не просто будете senior-разработчиком - вы станете инженером, на которого можно положиться в любой ситуации.