[Python] От Новичка до Senior (roadmap)

Полный Roadmap: от Новичка до Senior Python-разработчика (0 -> Senior)

Длительность: 18-24 месяца (при 10-15 ч/неделю)
Философия:
  • Каждый уровень строится на предыдущем.
  • Теория + практика + проект.
  • Нет "магии" - всё объясняется и отрабатывается.
  • Акцент на современные практики 2025 года.
Уровень 0: Новичок (0-2 месяца)
Цель: Написать первую программу, понять основы синтаксиса и запустить код.
Что изучить:
  • Установка 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+ типизацияFlaskSQLitepytestvenv
Middle-+ asyncFastAPIPostgreSQL+ мокиDocker
Middle+ архитектура+ Celery+ миграции+ e2eGitHub Actions
Senior-+ безопасность+ OAuth2+ реплики+ chaosPrometheus
Senior+ CPython internals+ gRPC/event streaming+ шардирование+ property-basedKubernetes

Как использовать этот roadmap:
  • Определи свой текущий уровень по критериям.
  • Сфокусируйся на одном уровне - не прыгай вперёд.
  • Каждый уровень = 1 полноценный проект + документация (README, ADR).
  • Раз в месяц проводи ретроспективу: что освоил, что требует доработки.
  • Не гонись за новыми фреймворками - освой основы до автоматизма.

Заключение:
Senior - это не тот, кто знает всё. Это тот, кто умеет учиться, принимать взвешенные решения и нести за них ответственность - перед командой, продуктом и пользователями. Если вы следуете этому пути последовательно, через 2 года вы не просто будете senior-разработчиком - вы станете инженером, на которого можно положиться в любой ситуации.
 
Назад
Сверху