Найти в Дзене
Паша шКОДит

Из Java в Python по плану ИИ

Волею судьбы меня подключили к новому проекту, который был написан на Python. Благодаря агентскому режиму в Pycharm я достаточно быстро понял примерную структуру проекта и уже через полтора дня отгрузил первый коммит в прод. Однако понимание самого языка, его библиотек и best practices это не прибавило. Было принято решение постепенно погружаться в новый для себя язык, а для составления дорожной карты обратиться к искусственному интеллекту. В качестве эксперимента я выбрал три нейросети: Grok от Маска, ChatGPT от OpenAI и YandexGPT. В этой статье мы с вами посмотрим, какой путь предложил искусственный интеллект, и попробуем оценить его вместе с настоящим Python-разработчиком из плоти и крови. На вход всем нейросетям был подан одинаковый промпт следующего вида: Ты мой ментор по разработке. Я Java-разработчик и мне нужно подключиться к проекту на Python и быстро вникнуть в проект. Описание проекта: [ТУТ ДЛИННЫЙ СПИСОК ТЕХНОЛОГИЙ С ТЕКУЩЕГО ПРОЕКТА, РАЗБИТЫЙ ПО КАТЕГОРИЯМ: Core Technologi
Оглавление

Волею судьбы меня подключили к новому проекту, который был написан на 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

FastAPI Tutorials

FastStream и асинхронное программирование

  • Изучите работу с NATS Streaming
  • Освойте паттерн Publisher-Subscriber
  • Изучите асинхронные задачи

Ресурсы:

Документация FastStream

NATS Documentation

Этап 3: Изучение архитектуры проекта

  • Обзор архитектуры:
    Изучите структуру проекта
    Проанализируйте компоненты Gateway и Worker
    Ознакомьтесь с сервисами и их взаимодействием
  • Ключевые компоненты:
    Gateway Layer
    Worker Layer
    Services Layer
    Core Components

Этап 4: Инструменты и инфраструктура

Контейнеризация и оркестрация

  • Изучите Docker и Docker Compose
  • Освойте работу с Kubernetes и Helm
  • Изучите CI/CD практики

Ресурсы:

Docker Documentation

Kubernetes Documentation

Мониторинг и трассировка

  • Изучите OpenTelemetry
  • Освойте Prometheus и его метрики
  • Изучите Graylog для логирования

Ресурсы:

OpenTelemetry Docs

Prometheus Documentation

Этап 5: Безопасность и аутентификация

  • Аутентификация:
    Изучите Keycloak
    Освойте работу с JWT
    Изучите Vault для управления секретами

Ресурсы:

Keycloak Documentation

Vault Documentation

Этап 6: Тестирование и отладка

  • Тестирование:
    Изучите Pytest
    Освойте асинхронное тестирование
    Изучите mocking и stubbing

Ресурсы:

Pytest Documentation

Testing in Python

Этап 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
  • структура проектов

Материалы:

Книга (по желанию):

Effective Python, 2nd Edition — Brett Slatkin (лучший ускоритель для разработчиков из Java).

---

2. FastAPI

Вы используете FastAPI в Gateway — это ключевой компонент.

Материалы:

На что обратить внимание в проекте:

  • app/gateway/main.py — создание приложения
  • app/gateway/settings.py — конфигурация через Pydantic Settings
  • app/gateway/routers/api.py — endpoints
  • middleware в app/core/middleware/

---

3. Логирование через Structlog

Очень важно, т.к. проект зависит от Graylog/GELF.

Материалы:

---

📌 Неделя 2 — FastStream, NATS, Kafka, Worker Layer

4. FastStream + NATS

Ваш Worker построен на FastStream и NATS Streaming.

Материалы:

На что обратить внимание:

  • 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

Один из важных компонентов проекта.

Материалы:

Посмотреть в проекте:

  • app/core/otel.py — конфигурация трейсинга
  • app/core/metrics.py — Prometheus metrics

---

7. Prometheus

Материалы:

---

📌 Неделя 4 — Auth, Security, Vault, Kubernetes, Testing

8. Аутентификация: Keycloak, JWT, OIDC

В Gateway есть разные варианты авторизации, особенно через Keycloak.

Материалы:

Файлы в проекте:

  • 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

Материалы:

---

11. Тестирование: Pytest, Async, Testcontainers

Материалы:

Где смотреть в проекте:

  • 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

---

🎁 Бонус: что изучить *минимум*, если нужно только «зайти и работать»

  1. Python async/await
  2. FastAPI + Dependency Injection
  3. FastStream (обязательно!)
  4. OpenTelemetry basics
  5. Pydantic settings
  6. Structlog
  7. 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 - удобная утилита, чтоб иметь разные версии питона сразу и переключаться

Я бы вынес отдельный шаг "настройка машины локальной/сервера", туда бы включил:

  1. pyenv (или другой способ установить сам питон)
  2. uv/poetry/pipx/pip/conda/virtualenv (это менеджеры зависимостей и виртуального окружения, отсортировано в порядке крутости)
  3. 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