Волею судьбы меня подключили к новому проекту, который был написан на Python. Благодаря агентскому режиму в Pycharm я достаточно быстро понял примерную структуру проекта и уже через полтора дня отгрузил первый коммит в прод. Однако понимание самого языка, его библиотек и best practices это не прибавило. Было принято решение постепенно погружаться в новый для себя язык, а для составления дорожной карты обратиться к искусственному интеллекту.
В качестве эксперимента я выбрал три нейросети: Grok от Маска, ChatGPT от OpenAI и YandexGPT. В этой статье мы с вами посмотрим, какой путь предложил искусственный интеллект, и попробуем оценить его вместе с настоящим Python-разработчиком из плоти и крови.
На вход всем нейросетям был подан одинаковый промпт следующего вида:
Ты мой ментор по разработке.
Я Java-разработчик и мне нужно подключиться к проекту на Python и быстро вникнуть в проект.
Описание проекта:
[ТУТ ДЛИННЫЙ СПИСОК ТЕХНОЛОГИЙ С ТЕКУЩЕГО ПРОЕКТА, РАЗБИТЫЙ ПО КАТЕГОРИЯМ: Core Technologies, Testing, Infrastructure, Logging и т.д. И ПЕРЕЧИСЛЕНЫ ЗАВИСИМОСТИ]
Составь мне дорожную карту развития, чтобы вникнуть в новый проект.
Приведи конкретные ссылки на документацию, обучающие материалы или названия книг.
Описание проекта было составлено при помощи агентского режима с DeepSeek.
YandexGPT
Дорожная карта перехода с Java на Python-проект
Этап 1: Основы Python и экосистемы
- Базовые знания Python
Изучите синтаксис Python 3.x
Освойте основные структуры данных
Познакомьтесь с принципами ООП в Python
Изучите async/await для асинхронного программирования
Ресурсы:
Официальная документация Python
Книга «Fluent Python» Лучано Рамальо
Real Python — практические уроки
Этап 2: Изучение ключевых технологий проекта
FastAPI и веб-разработка
- Изучите основы FastAPI
- Освойте создание API и работу с запросами
- Изучите документацию и лучшие практики
Ресурсы:
Официальная документация FastAPI
FastStream и асинхронное программирование
- Изучите работу с NATS Streaming
- Освойте паттерн Publisher-Subscriber
- Изучите асинхронные задачи
Ресурсы:
Этап 3: Изучение архитектуры проекта
- Обзор архитектуры:
Изучите структуру проекта
Проанализируйте компоненты Gateway и Worker
Ознакомьтесь с сервисами и их взаимодействием - Ключевые компоненты:
Gateway Layer
Worker Layer
Services Layer
Core Components
Этап 4: Инструменты и инфраструктура
Контейнеризация и оркестрация
- Изучите Docker и Docker Compose
- Освойте работу с Kubernetes и Helm
- Изучите CI/CD практики
Ресурсы:
Мониторинг и трассировка
- Изучите OpenTelemetry
- Освойте Prometheus и его метрики
- Изучите Graylog для логирования
Ресурсы:
Этап 5: Безопасность и аутентификация
- Аутентификация:
Изучите Keycloak
Освойте работу с JWT
Изучите Vault для управления секретами
Ресурсы:
Этап 6: Тестирование и отладка
- Тестирование:
Изучите Pytest
Освойте асинхронное тестирование
Изучите mocking и stubbing
Ресурсы:
Этап 7: Практическая работа
- Начните с простых задач
- Постепенно переходите к более сложным
- Изучайте код проекта параллельно с теорией
- Участвуйте в code review
Рекомендации по работе
- Ежедневная практика:
Пишите код на Python каждый день
Решайте задачи на LeetCode на Python
Создавайте небольшие проекты - Сообщество:
Присоединяйтесь к Python-сообществам
Участвуйте в митапах и конференциях
Общайтесь с коллегами
Временные рамки
- Первый месяц: освоение основ Python и ключевых технологий
- Второй месяц: глубокое изучение архитектуры проекта
- Третий месяц: практическое применение знаний
- Четвертый месяц: достижение продуктивной работы в проекте
Инструменты для работы
- IDE:
PyCharm
VS Code с расширениями для Python - Версионирование:
Git
GitHub/GitLab - Документация:
Keep Notes
Confluence
Следуя этой дорожной карте, вы сможете эффективно перейти на новый проект и освоить все необходимые технологии.
Фидбек по первому плану
Yandex сделал упор на документацию и предложил книгу для изучения. Я не сразу нашёл «Fluent Python» Лучано Рамальо в продаже, но потом понял, что перевод выпустили под названием «Python. К вершинам мастерства». У данного издания смешанные отзывы: оригинал получил 4,3 балла на Amazon и до 4,7 на других сайтах. Перевод же на Ozon оценён довольно высоко — 4,9–5,0, а на LiveLib — 4,7.
Для новичков в Python самая популярная рекомендация, которую мне встречалось (и она считается базовой), — это книга Марка Лутца «Изучаем Python». Однако, вероятно, благодаря моему бэкграунду Java-разработчика ИИ посчитал, что можно начать с более продвинутого уровня, опираясь на отзывы читателей о книге Лучано.
Также радует, что было предложено практиковаться как на LeetCode, так и на специализированном сайте Real Python.
Из минусов отмечу, что часть представленных ссылок не работает, а ещё в плане совсем не упомянут Pydantic.
В итоге план выглядит реалистичным, но, на мой взгляд, недостаточно детализированным и местами поверхностным. Создаётся впечатление, что просто переписали список технологий и добавили документацию по каждому пункту, дополнив рекомендациями в стиле «чтобы выучиться, нужно практиковаться».
ChatGPT
Ниже — практичная, ориентированная на задачу дорожная карта, которая поможет Java-разработчику быстро войти в Python-проект с FastAPI, FastStream, NATS, Kafka, OpenTelemetry, Vault и Kubernetes.
Все ссылки — официальные, максимально релевантные стеку.
---
🚀 Дорожная карта: “Войти в Python-проект за 4 недели”
📌 Неделя 1 — Python + FastAPI + Основы проекта
1. База Python (только нужное для backend)
Что выучить:
- async / await
- типизация (typing)
- dataclasses vs pydantic models
- virtualenv / poetry
- import system
- структура проектов
Материалы:
- Python AsyncIO Tutorial: https://docs.python.org/3/library/asyncio.html
- Типизация Python: https://docs.python.org/3/library/typing.html
- Pydantic v2 Tutorial: https://docs.pydantic.dev/latest/
Книга (по желанию):
Effective Python, 2nd Edition — Brett Slatkin (лучший ускоритель для разработчиков из Java).
---
2. FastAPI
Вы используете FastAPI в Gateway — это ключевой компонент.
Материалы:
- Официальная документация: https://fastapi.tiangolo.com/
- Руководство по Dependency Injection в FastAPI: https://fastapi.tiangolo.com/tutorial/dependencies/
- Background tasks: https://fastapi.tiangolo.com/tutorial/background-tasks/
На что обратить внимание в проекте:
- app/gateway/main.py — создание приложения
- app/gateway/settings.py — конфигурация через Pydantic Settings
- app/gateway/routers/api.py — endpoints
- middleware в app/core/middleware/
---
3. Логирование через Structlog
Очень важно, т.к. проект зависит от Graylog/GELF.
Материалы:
- Structlog Documentation: https://www.structlog.org/en/stable/
- Pygelf: https://pypi.org/project/pygelf/
---
📌 Неделя 2 — FastStream, NATS, Kafka, Worker Layer
4. FastStream + NATS
Ваш Worker построен на FastStream и NATS Streaming.
Материалы:
- FastStream Docs (очень хорошие): https://faststream.airt.ai/
- FastStream NATS Guide: https://faststream.airt.ai/latest/nats/
На что обратить внимание:
- app/worker/broker.py
- app/worker/task.py
- Kafka integration: app/services/kafka/messaging.py
---
5. Kafka (aiokafka)
Материалы:
Aiokafka docs: https://aiokafka.readthedocs.io/
Kafka fundamentals (если нужно подтянуть): https://kafka.apache.org/documentation/
---
📌 Неделя 3 — Observability: OpenTelemetry, Prometheus, Metrics, Tracing
6. OpenTelemetry
Один из важных компонентов проекта.
Материалы:
- OpenTelemetry Python: https://opentelemetry.io/docs/languages/python/
- FastAPI Instrumentation: https://opentelemetry.io/docs/languages/python/instrumentation/fastapi/
- httpx instrumentation:
Посмотреть в проекте:
- app/core/otel.py — конфигурация трейсинга
- app/core/metrics.py — Prometheus metrics
---
7. Prometheus
Материалы:
- prom-client Python: https://github.com/prometheus/client_python
- Руководство по метрикам: https://prometheus.io/docs/practices/naming/
---
📌 Неделя 4 — Auth, Security, Vault, Kubernetes, Testing
8. Аутентификация: Keycloak, JWT, OIDC
В Gateway есть разные варианты авторизации, особенно через Keycloak.
Материалы:
- Keycloak Docs: https://www.keycloak.org/documentation
- PyJWT Docs: https://pyjwt.readthedocs.io/en/stable/
- OIDC Core Spec (пригодится для понимания): https://openid.net/specs/openid-connect-core-1_0.html
- FastAPI security OAuth: https://fastapi.tiangolo.com/tutorial/security/oauth2-jwt/
Файлы в проекте:
- app/gateway/auth/providers/auth_providers.py
- app/services/oidc.py
---
9. Vault
Vault используется для секретов — важно знать workflow.
Материалы:
Vault Docs: https://developer.hashicorp.com/vault/docs
hvac Python client: https://hvac.readthedocs.io/en/stable/
Файл:
app/services/vault.py
---
10. Kubernetes Helm Charts
Материалы:
- Helm Docs: https://helm.sh/docs/
- Helm Best Practices: https://helm.sh/docs/chart_best_practices/
---
11. Тестирование: Pytest, Async, Testcontainers
Материалы:
- Pytest: https://docs.pytest.org/
- pytest-asyncio: https://github.com/pytest-dev/pytest-asyncio
- Testcontainers Python: https://testcontainers-python.readthedocs.io/
Где смотреть в проекте:
- tests/ (если есть)
- использование pytest-httpx и respx для моков HTTP
---
🎯 Итоговый план обучения по дням (если нужно быстро)
🗓️ 1-я неделя
- День 1: async/await, typing
- День 2: Pydantic + Settings
- День 3–4: FastAPI
- День 5: Structlog
🗓️ 2-я неделя
- День 6–7: FastStream
- День 8: NATS
- День 9: Kafka
- День 10: Gateway/Worker архитектура
### 🗓️ 3-я неделя
- День 11–12: OpenTelemetry
- День 13: Prometheus
- День 14: Логирование + Метрики в проекте
### 🗓️ 4-я неделя
- День 15–16: Auth (Keycloak + JWT + OIDC)
- День 17: Vault
- День 18: Kubernetes Helm
- День 19–20: Pytest/async/testcontainers
---
🎁 Бонус: что изучить *минимум*, если нужно только «зайти и работать»
- Python async/await
- FastAPI + Dependency Injection
- FastStream (обязательно!)
- OpenTelemetry basics
- Pydantic settings
- Structlog
- Vault basics
Фидбек по второму плану
Мне понравился индивидуальный подход ChatGPT — словно это хороший друг, искренне заинтересованный в вашем результате. По сравнению с планом от нейросети Яндекса, здесь предусмотрен интенсив с обучением 4–6 дней в неделю и планом на 4 недели. При этом, учитывая, что я уже знаком с Kubernetes, Vault и системами авторизации, освоение нового материала укладывается в 2 недели.
Интересно, что ChatGPT не предусмотрел ни одного дня на изучение базового синтаксиса языка, как будто предполагается, что у меня уже есть определённая база в Python.
Ссылки на этот раз все верные (кроме документации по FastStream) и более точные. Практику нейросеть от OpenAI подразумевает только в рабочем режиме и в целом не делает на ней особого акцента.
Книгу «Effective Python», 2nd edition от Brett Slatkin я бы отнёс к недостаткам. Да, рейтинг оригинала выше — 4,7 на Amazon, но книга сфокусирована на продвинутых темах и не очень подходит для быстрого погружения в язык без понимания его основ.
Grok
Вот дорожная карта развития для Java-разработчика, переходящего на Python-проект с FastAPI, FastStream, NATS, OpenTelemetry и микросервисной архитектурой. Она разбита на этапы по приоритету и времени (от 1 дня до 2 недель), с конкретными целями, задачами, ссылками на документацию и обучающие материалы.
---
Этап 0: Подготовка окружения (1 день)
Цель: Запустить проект локально, понять, как он стартует.
| Задача | Инструменты | Ссылки |
| Установить Python 3.11+ | pyenv или asdf | https://realpython.com/intro-to-pyenv/ |
| Клонировать репозиторий | Git | — |
| Установить зависимости | poetry или pip | pyproject.toml |
| Запустить через Docker Compose | docker-compose up | docker-compose.yaml |
| Проверить API в Swagger | http://localhost:8000/docs | FastAPI Auto Swagger |
> Задание: Запусти docker-compose up --build и открой Swagger UI. Сделай 1-2 запроса.
---
Этап 1: Python для Java-разработчика (1-2 дня)
Цель: Быстро освоить синтаксис и идиомы Python, которые используются в проекте.
| Тема | Ресурс | Ссылка |
| Python за 2 часа (для Java devs) | "Python for Java Developers" (YouTube) | https://www.youtube.com/watch?v=OGtnMze6e5c |
| Асинхронность: async/await | Async IO in Python | https://realpython.com/async-io-python/ |
| Pydantic (вместо Lombok/Jackson) | Pydantic Tutorial | https://docs.pydantic.dev/latest/ |
| Type Hints (как Java generics) | Python Type Checking | https://realpython.com/python-type-checking/ |
> Практика: Напиши простой dataclass с валидацией через Pydantic.
---
Этап 2: FastAPI — основа Gateway (2-3 дня)
Цель: Понять, как работает API-слой.
| Тема | Документация / Курс | Ссылка |
| FastAPI Basics | Официальная документация | https://fastapi.tiangolo.com/tutorial/ |
| Dependency Injection | Depends() | https://fastapi.tiangolo.com/tutorial/dependencies/ |
| Routers, APIRouter | Модульность | https://fastapi.tiangolo.com/tutorial/bigger-applications/ |
| Middleware | app/core/middleware/ | https://fastapi.tiangolo.com/tutorial/middleware/ |
| OpenAPI/Swagger | Автогенерация | http://localhost:8000/docs |
> Практика: Добавь тестовый эндпоинт /ping в app/gateway/routers/api.py.
---
Этап 3: FastStream + NATS Streaming (2 дня)
Цель: Понять, как работает Worker и обмен сообщениями.
| Тема | Документация | Ссылка |
| FastStream Intro | Официальная документация | https://faststream.airt.ai/latest/ |
| NATS Streaming (Stan) | Основы | https://docs.nats.io/nats-concepts/stan-intro |
| @broker.subscriber, @broker.publisher | Примеры | https://faststream.airt.ai/latest/nats/ |
| app/worker/broker.py | Реализация | — |
> Практика: Напиши тестовый consumer, который логирует входящее сообщение.
---
Этап 4: Аутентификация и безопасность (2 дня)
Цель: Понять, как работает авторизация.
| Компонент | Документация | Ссылка |
| Keycloak + OIDC | FastAPI + Keycloak | https://fastapi.tiangolo.com/security/oauth2/ |
| JWT (PyJWT) | Декодирование токенов | https://pyjwt.readthedocs.io/en/stable/ |
| Vault (hvac) | Чтение секретов | https://hvac.readthedocs.io/en/stable/usage/secrets_engines/kv.html |
| app/gateway/auth/providers/ | Реализация | — |
> Практика: Распечатай sub из JWT в middleware.
---
Этап 5: Observability: OpenTelemetry, Prometheus, Structlog (2 дня)
| Инструмент | Документация | Ссылка |
| OpenTelemetry Python | SDK + Auto-instrumentation | https://opentelemetry.io/docs/instrumentation/python/ |
| FastAPI Instrumentation | Автометрики | https://opentelemetry-python-contrib.readthedocs.io/en/latest/instrumentation/fastapi/fastapi.html |
| Prometheus Client | Кастомные метрики | https://github.com/prometheus/client_python |
| Structlog | Структурированный лог | https://www.structlog.org/en/stable/ |
> Практика: Добавь кастомную метрику requests_processed_total в app/core/metrics.py.
---
Этап 6: Тестирование и разработка (2 дня)
| Инструмент | Документация | Ссылка |
| Pytest + pytest-asyncio | Асинхронные тесты | https://docs.pytest.org/en/stable/ |
| pytest-httpx | Мок HTTP | https://colinhowe.co.uk/pytest-httpx/ |
| Testcontainers | Запуск NATS/Vault в тестах | https://testcontainers.com/guides/getting-started-with-testcontainers-for-python/ |
> Практика: Напиши тест для /health эндпоинта через httpx.AsyncClient.
---
Этап 7: Архитектура и кодовая база (3-5 дней)
Цель: Прочитать ключевые файлы и понять поток данных.
| Файл / Папка | Что изучить |
| app/gateway/main.py | Точка входа, middleware, lifespan |
| app/gateway/routers/*.py | API маршруты |
| app/worker/task.py | Обработка сообщений |
| app/services/container.py | DI контейнер |
| app/services/vllm.py | Работа с LLM |
| app/core/otel.py | Трейсинг |
| app/core/logs.py | Логирование |
> Задание: Нарисуй диаграмму потока: HTTP → Gateway → NATS → Worker → VLLM → Ответ
---
Этап 8: Инфраструктура (по желанию, 2-3 дня)
| Тема | Ресурс |
| Docker Compose | https://docs.docker.com/compose/ |
| Helm Charts | https://helm.sh/docs/ |
| Kubernetes Basics | https://kubernetes.io/docs/tutorials/kubernetes-basics/ |
---
Рекомендуемые книги / курсы
| Название | Формат | Ссылка |
| "Architecture Patterns with Python" | Книга (DI, Clean Architecture) | https://www.cosmicpython.com/ |
| "FastAPI: Modern Python Web Development" | Курс (Udemy) | https://www.udemy.com/course/fastapi-the-complete-course/ |
| "Python Asyncio Mastery" | Книга | https://superfastpython.com/python-asyncio-mastery/ |
---
Еженедельный план (2 недели)
| День | Фокус |
| 1 | Окружение + Python basics |
| 2-3 | FastAPI + первый эндпоинт |
| 4-5 | FastStream + NATS |
| 6-7 | Auth + Vault |
| 8-9 | OpenTelemetry + Prometheus |
| 10 | Тесты + pytest-httpx |
| 11-14 | Чтение кода + диаграммы + первый PR |
---
Полезные команды (добавь в README или заметки)
# Запуск
docker-compose up --build
# Тесты
pytest -v --cov=app
# Линтеры
ruff check .
ruff format .
# Локальный запуск Gateway
uvicorn app.gateway.main:app --reload
# Локальный запуск Worker
python -m app.worker.main
---
Финальная цель через 2 недели
- Запускать проект локально
- Добавлять простые эндпоинты
- Писать тесты
- Читать логи и метрики
- Понимать, где что лежит
- Готов внести первый осмысленный вклад
---
Если хочешь — могу сгенерировать шаблон Notion-страницы или Obsidian-граф для этой дорожной карты. Пиши: "Сделай Notion-шаблон".
Удачи в проекте! 🚀
Фидбек по финальному плану
Мой фаворит — Grok. По моему мнению, здесь всё сделано хорошо. ИИ не предполагает, что пользователь уже погружён в язык, а представляет материал разного уровня, при этом план позволяет быстро влиться в проект.
Особенно хочу отметить, что дорожная карта получилась практичной — она не состоит из простого списка документации, а действительно нацелена на работу с проектом. Отлично, что предусмотрен интерактивный компонент в виде практических заданий, а также представлены не только книги, но и видеокурс с платформы Udemy.
Мнение Python-разработчика
(частично сохранена авторская орфография / стилистика)
По оценке знающего человека, нейронки сгенерировали "валидные" дорожные карты, но местами не достаточно детальные / обобщенные, предлагают изучить "всё-всё-всё, даже что нахер не надо".
Рекомендации (частично на основе ответов ИИ с пояснениями):
База Python
Что выучить:
- async / await
- типизация (typing)
- dataclasses (эта штука из коробки языка) vs pydantic models (это сторонний пакет, но очень крутой, рекомендую)
- virtualenv / poetry - (есть ещё модный uv
спижженыйскопированный из Раста) - import system
- структура проектов - (луковичная архитектура, гексогональная, чистая архитектура, я к тому, что нужно точнее, чем "почитай что-то про структуру")
Добавил бы однострочную магию к изучению, потому что это фишка языка и она оптимизирована, поэтому рекомендуется к использованию https://habr.com/ru/articles/540486/
pyenv - удобная утилита, чтоб иметь разные версии питона сразу и переключаться
Я бы вынес отдельный шаг "настройка машины локальной/сервера", туда бы включил:
- pyenv (или другой способ установить сам питон)
- uv/poetry/pipx/pip/conda/virtualenv (это менеджеры зависимостей и виртуального окружения, отсортировано в порядке крутости)
- pycharm/vscodium/другие ide (тут важно научиться дебажить через стоп-поинты, вместо принтов/логов, очень нужно и важно)
Потом выделил бы шаг "выбор фреймворка(ов) под задачу":
Веб-сервера/HTTP
1. FastApi/Flask - если нужен асинхронный микросервис.
Эти штуки довольно лёгкие, там +- только веб-сервер. К ним надо ставить всякие фреймворки для бд, аутентификации, и всего-всего-всего (в инете куча рецептов, дружится легко).
2. django - если хочется собрать что-то очень быстро из готового конструктора, очень "жирный" фреймворк с кучей модулей под любые нужды.
В основном с UI делают, но есть и django-rest чтоб писать api. Для UI можно очень легко сделать админку.
Микросервисы и "нетипичные" проекты на нём не рекомендую делать, получится говно, он не гибкий.
3. gRPC - тут не очень круто у питона (мож что новое и изобрели уже, но я через боль grpc делал в питоне)
- grpcio - базовый фреймворк
- Fast-GRPC - попытка сделать интерфейс как у FastAPI, но для gRPC
Данные
1. pydantic - фреймворк для работы с данными, с удобной валидацей, аннотацией данных (тайпхинты), маршалинг/анмаршалинг. Настройки приложения можно делать удобно, очень приятная штука, в основном используется с FastAPI.
2. Marshmallow - конкурент pydantic, делает всё тоже самое (я предпочитаю pydantic чисто из привычки)
Базы данных
1. pgx - драйвер для бд, то, что внутри обрабатывает коннекты к бд, исполнение запросов
2. sqlx - аналог pgx, они как два брата с pgx
3. sqlalchemy - пизда какая запутанная штука очень сложная библиотека, но когда разберёшься, будет хорошо. ORM для формирования запросов, очень "жирнючая и крутая"
4. Peewee - простенькая ORM
5. SQLModel - ORM, специально для FastAPI+pydantic
Тестирование
1. Pytest
2. Unittest
Не знаю что о них сказать, не люблю юниты, манал я их в рот, пиши с помощью ИИ
В другой инфре, вроде Docker, k8s, OpenTelemetry, логировании, и т.д., вроде нет подводных камней и, если на Java это знал, на питоне то же самое.
3. FastStream (обязательно!) - хз что это, не работал с этим
Заключение
С помощью искусственного интеллекта мы получили достаточно релевантные, хотя и не слишком детализированные, дорожные карты, которые позволяют погрузиться в Python в срок от недели до нескольких месяцев.
Поделитесь в комментариях полезными материалами по изучению Python, вашим опытом перехода на новый язык, а также расскажите, используете ли вы искусственный интеллект в процессе обучения.
Ссылка на автора рекомендаций, с благодарностью - https://github.com/aK0nshin