Este roadmap foi desenhado para ajudar você no aprendizado da linguagem Java e seu ecossistema de forma estruturada e eficiente.
Disclaimer: A IA acelera muito, mas nunca use como muleta. Sempre peça explicação, trade-offs, como debugar e teste tudo. Mantenha um arquivo
decisoes.mdem cada projeto explicando suas escolhas. Virtual Threads só onde tem I/O bloqueante. Features preview são só para estudo.
- 0. Monte sua IA de programação
- 1. Fundamentos de Programação
- 2. Configurando o Ambiente
- 3. Dominando a Linguagem Java
- 4. Fundamentos Intermediários
- 5. Frameworks Essenciais
- 6. Deploy e DevOps
- 7. Aprendizado Contínuo
- 8. Tópicos Avançados
- 9. Próximos Passos
- Recursos Recomendados
- Apêndice — Algoritmos e Estruturas de Dados
📁 Apêndice - Algoritmos e Estruturas de Dados/
Complexidade algorítmica, Big-O aplicado às Collections Java, Pilha, Fila, PriorityQueue, BST, Grafos com BFS/DFS, e 15 exercícios com os padrões que aparecem em entrevistas e em código de produção real.
Quando estudar: após o módulo 3.2, em paralelo com os módulos 4 e 5. Não espere terminar o roadmap.
Antes de escrever qualquer linha de código, configure isso:
Instale o Cursor ou VS Code com Continue.dev (o módulo 2.1 discute os prós e contras de cada opção). Conecte com Claude 4.6+ Sonnet ou Opus.
Crie este prompt fixo e use em todo projeto:
"Você é um desenvolvedor Java sênior especializado em Java 25 LTS + Spring Boot 4. Sempre explique o motivo da escolha, mostre trade-offs, sugira testes e priorize código limpo e eficiente. Nunca use features preview em produção."
Regra de ouro: IA gera primeiro → você lê, entende, testa, melhora e escreve no decisoes.md.
Com isso pronto, você já ganha umas 4 semanas de vantagem.
📁 01 - Aprenda os Fundamentos/
| # | Tópico | Link |
|---|---|---|
| 1.1 | Criando Variáveis e nomeando elas | 📄 readme |
| 1.2 | Tipos de Dados | 📄 readme |
| 1.3 | Operadores | 📄 readme |
| 1.4 | Estruturas de Controle | 📄 readme |
| 1.5 | Métodos | 📄 readme |
| 1.6 | Strings e Arrays | 📄 readme |
| 1.7 | Entrada e Saída Padrão | 📄 readme |
📄 POO/readme.md — Objetos, Classes, Herança, Interfaces, Classes Abstratas, Encapsulamento, Polimorfismo, Abstração.
Checklist:
- Variáveis, tipos de dados e operadores
- Estruturas de controle
- Métodos: declaração, parâmetros, retorno
- Strings e arrays básicos
- Entrada e saída padrão (console)
- Classes e objetos
- Interfaces e classes abstratas
- Encapsulamento, Herança, Polimorfismo, Abstração
Projeto prático: Gerenciador de tarefas em linha de comando (adicionar, listar, remover). Depois: sistema de biblioteca com Livro, Autor e Biblioteca usando Records.
📁 02 - Configurando o Ambiente/
| # | Tópico | Link |
|---|---|---|
| 2.1 | IDEs e Editores (Cursor, IntelliJ, VS Code) | 📄 readme |
| 2.2 | Maven e Gradle | 📄 readme |
| 2.3 | Git e Controle de Versão | 📄 readme |
Checklist:
- Escolha e configure sua IDE (Cursor, IntelliJ IDEA ou VS Code — veja comparativo no módulo 2.1)
- Maven: pom.xml, ciclo de vida, dependências
- Gradle como alternativa
- Git: comandos essenciais, GitHub Flow, Conventional Commits
Prática contínua: Crie um repositório no GitHub para cada projeto. Use GitHub Codespaces quando não quiser instalar nada.
| # | Tópico | Link |
|---|---|---|
| 3.1 | Recursos Modernos do Java 21 e 25 | 📄 readme |
| 3.2 | Collections Framework e Streams | 📄 readme |
| 3.3 | Tratamento de Exceções | 📄 readme |
| 3.4 | Concorrência Básica | 📄 readme |
| 3.5 | Boas Práticas (Clean Code, SOLID) | 📄 readme |
Checklist:
- var, Switch Expressions, Text Blocks, Records, Pattern Matching, Sealed Classes
- Scoped Values, Unnamed Variables, Virtual Threads
- Collections: List, Set, Map, Queue
- Functional Interfaces, Streams, Optional
- Tratamento de exceções e exceções customizadas
- Thread, ExecutorService, Virtual Threads
- Clean Code, SOLID, Object Calisthenics
Projeto prático: Processador de eventos de domínio — use Sealed Classes + Pattern Matching para modelar os tipos de evento (sem framework). Depois: ranking de filmes com coleções e streams. Refatore projetos anteriores usando as features modernas.
Antes de avançar para o módulo 5 (Spring Boot): estude os padrões essenciais do módulo 7.1 (Strategy, Factory, Builder, Observer, Proxy, Chain of Responsibility). Construir services sem saber o que é Strategy resulta em
if-elseem cascata que você vai precisar refatorar. Oito padrões bem entendidos valem mais do que o catálogo GoF completo decorado.
| # | Tópico | Link |
|---|---|---|
| 4.1 | Manipulação de Arquivos e IO | 📄 readme |
| 4.2 | JSON com Jackson | 📄 readme |
| 4.3 | Testes com JUnit 5, Mockito e AssertJ | 📄 readme |
| 4.4 | Banco de Dados com JDBC e PostgreSQL | 📄 readme |
Checklist:
- File, BufferedReader/Writer, NIO (Path, Files, WatchService)
- Jackson: ObjectMapper, anotações, TypeReference
- JUnit 5, Mockito, AssertJ, JaCoCo
- JDBC, PreparedStatement, HikariCP, PostgreSQL via Docker
Projeto prático: Leia um CSV de produtos, processe com Streams e salve resultado. CRUD de usuários com JDBC.
| # | Tópico | Link |
|---|---|---|
| 5.1 | Spring Boot (Core, MVC, REST, Validação) | 📄 readme |
| 5.2 | JPA e Hibernate + Spring Data + Flyway | 📄 readme |
| 5.3 | Spring Security + JWT + OAuth2 | 📄 readme |
| 5.4 | Documentação com OpenAPI e Swagger | 📄 readme |
| 5.5 | Testes de Integração + Testcontainers | 📄 readme |
| 5.6 | Resiliência com Resilience4j (Circuit Breaker, Retry, Bulkhead) | 📄 readme |
| 5.7 | Cache com Redis (@Cacheable, @CacheEvict, RedisTemplate) | 📄 readme |
| 5.8 | Versionamento de APIs | readme |
Checklist:
- Spring Core: IoC, DI, @Component, @Service, @Repository
- Spring Boot: starters, application.yml, profiles, Virtual Threads
- Spring MVC: REST, @Valid, ControllerAdvice, CORS
- JPA: entidades, relacionamentos, N+1, lazy loading
- Spring Data JPA: JpaRepository, query methods, paginação
- Flyway: migrations versionadas
- Spring Security + JWT + OAuth2
- springdoc-openapi + Swagger UI
- @SpringBootTest + Testcontainers
Projeto prático: API de e-commerce com autenticação JWT, controle de acesso por papel (admin/usuário), documentação OpenAPI, versionamento de pelo menos um endpoint, Circuit Breaker em chamada a API de CEP externa, cache de listagem de produtos, cobertura de integração com Testcontainers nos fluxos críticos. Inclua testes de contrato com Pact para garantir que o contrato do consumidor não quebra silenciosamente.
| # | Tópico | Link |
|---|---|---|
| 6.1 | Docker e Kubernetes | 📄 readme |
| 6.2 | CI/CD com GitHub Actions + Feature Flags | 📄 readme |
| 6.3 | Deploy em Nuvem (Render, AWS, GCP) | 📄 readme |
| 6.4 | Monitoramento e Observabilidade | 📄 readme |
| 6.5 | Testes de Carga com k6 | 📄 readme |
Checklist:
- Dockerfile multi-stage + Docker Compose
- Kubernetes: Pods, Services, Deployments, ConfigMaps, Secrets, liveness/readiness probes
- GitHub Actions: pipeline build → test → deploy
- Deploy no Render ou AWS
- Spring Boot Actuator + Prometheus + Grafana + OpenTelemetry
- Feature flags com OpenFeature (desacoplar deploy de release)
- Testes de carga com k6: medir throughput, p95 e p99 de latência
Projeto prático: API rodando em produção com pipeline CI/CD completo, dashboard Grafana, alertas configurados, feature flags habilitando rollout gradual, e relatório de teste de carga com p95 documentado.
| # | Tópico | Link |
|---|---|---|
| 7.1 | Padrões de Projeto (15 Design Patterns GoF) | 📄 readme |
| 7.2 | Arquitetura (DDD, Hexagonal, Clean, Microsserviços) | 📄 readme |
| 7.3 | Ferramentas de Produtividade (Lombok, MapStruct) | 📄 readme |
| 7.4 | Soft Skills e Carreira | 📄 readme |
Checklist:
- Design Patterns: Singleton, Factory, Builder, Strategy, Observer, etc.
- DDD: Entities, Value Objects, Aggregates, Bounded Contexts
- Arquitetura Hexagonal e Clean Architecture
- Lombok e MapStruct
- Code reviews, ADRs, contribuição open-source
Projeto prático (avançado): Refatore um módulo do projeto principal usando DDD + Arquitetura Hexagonal.
Nota: Kafka não é opcional para quem trabalha com microsserviços. Qualquer dev Java pleno em 2026 vai encontrar mensageria assíncrona em produção. Priorize 8.4 se o seu foco é arquitetura de sistemas.
| # | Tópico | Link |
|---|---|---|
| 8.1 | Programação Reativa com Spring WebFlux | 📄 readme |
| 8.2 | Concorrência Avançada (CompletableFuture, StructuredTaskScope) | 📄 readme |
| 8.3 | Otimização de Performance e JVM (JMH, GC, GraalVM AOT) | 📄 readme |
| 8.4 | Kafka (essencial), gRPC, GraphQL, Spring AI, Spark | 📄 readme |
Checklist:
- Spring WebFlux: Mono, Flux, R2DBC (quando realmente precisar de streaming)
- CompletableFuture + Virtual Threads + StructuredTaskScope
- JVM: GC, VisualVM, JMH, GraalVM AOT
- Kafka — Producer, Consumer, particionamento, idempotência, Dead Letter Topic
- Spring AI — integração com LLMs, padrão RAG básico
- gRPC, GraphQL (conforme o contexto do projeto)
Mapa de bifurcações para depois do roadmap — não ensina, orienta. Cada trilha aponta para um caminho de especialização com contexto de quando faz sentido e por onde começar.
| Trilha | Foco | Quando priorizar |
|---|---|---|
| 1 — Cloud-Native | Quarkus, Micronaut, GraalVM AOT | Serverless, muitas instâncias, cold start importa |
| 2 — Dados e Streaming | Kafka Streams, Flink, Spark | Pipelines em tempo real, volume de TBs |
| 3 — Arquitetura Avançada | CQRS, Event Sourcing, Saga | Consistência em sistemas distribuídos |
| 4 — IA em Java | Spring AI avançado, LangChain4j | Produtos com LLMs como parte da lógica |
| 5 — Certificações | OCP 21, AWS Developer, Spring Pro | Validação formal, diferenciação em processos |
| 6 — Open Source | Spring, Resilience4j, OpenFeature | Portfólio público, aprendizado por code review |
| 7 — Staff/Principal | Escrita técnica, influência, sistemas de escala | 5+ anos, crescimento além do código |
- Java 25 LTS — dev.java
- Spring Boot Reference
- Spring Framework Reference (Core) — leia o capítulo de IoC/DI antes de qualquer outro
- Baeldung
- Inside Java (canal oficial Oracle) — cobre cada JEP com profundidade, direto dos autores
- Blog de Mark Reinhold e do Project Loom — fonte primária de Virtual Threads e Structured Concurrency
- Effective Java — Joshua Bloch (obrigatório — leia no mínimo duas vezes)
- Java Concurrency in Practice — Brian Goetz (obrigatório antes de Virtual Threads em produção)
- Clean Code — Robert C. Martin
- Designing Data-Intensive Applications — Martin Kleppmann (indispensável para sistemas distribuídos)
- Release It! — Michael Nygard (origem dos padrões Circuit Breaker e Bulkhead)
- Head First Java (para quem está no início)
- LeetCode — fácil/médio para algoritmos
- HackerRank
- Learn Git Branching
Pratique todos os dias. Cada conceito vira projeto pequeno com testes e GitHub.
Sempre use a IA primeiro, mas nunca aceite sem entender.
Mantenha o GitHub atualizado com projetos bem explicados e o arquivo decisoes.md.
Fique de olho nas novidades (Java 25+, Spring AI, GraalVM). Com IA você acompanha sem stress.
Estimativa de tempo honesta (estudando 1,5–2h/dia com consistência e construindo os projetos):
| Módulos | Perfil iniciante | Perfil com base em outra linguagem |
|---|---|---|
| 1–3 | 7–9 semanas | 3–5 semanas |
| 4–5 | 7–9 semanas | 5–7 semanas |
| 6–7 | 8–10 semanas | 5–7 semanas |
| 8 | 4–6 semanas | 3–4 semanas |
| Total | 6–8 meses | 4–6 meses |
O ponto de maior risco de burnout é o módulo 5. Se travar: construa o CRUD mais simples possível com Spring Boot e Postgres sem nenhum extra, coloque em produção, e só então adicione uma camada de cada vez.
O conhecimento se consolida na prática. Escolha um projeto, comece pelo módulo que faz mais sentido para onde você está hoje, e construa algo real.