Pular para o conteúdo

Backend Roadmap

Um guia prático e progressivo para dominar Java moderno e backend.

  • Algoritmos e resolução de problemas
  • Pseudocódigo
  • Linguagens de programação
  • Variáveis e constantes
  • Tipos de dados (primitivos e não primitivos)
  • Atribuição de valores
  • Comentários
  • Operadores aritméticos
  • Operadores relacionais e de igualdade
  • Operadores lógicos
  • Incremento e decremento
  • Precedência de operadores
  • Leitura de dados
  • Escrita de dados
  • Concatenação
  • Condicionais (if, else, switch)
  • Estruturas de repetição (for, while, do-while)
  • Arrays
  • Listas
  • Mapas
  • Pilhas e filas (conceitual)
  • Classes e objetos
  • Métodos e atributos
  • Instanciação
  • Encapsulamento
  • Herança
  • Polimorfismo
  • Abstração
  • Interfaces
  • Classes abstratas
  • Sobrecarga vs sobrescrita
  • Modificadores de acesso (public, private, protected)
  • Estrutura de um projeto Java
  • JVM, JDK e JRE
  • Processo de compilação
  • Construtores
  • this e super
  • Classe Object
  • Autoboxing / Unboxing
  • Upcasting / Downcasting
  • List, Set, Map
  • ArrayList, HashMap, HashSet
  • Comparators e Comparable
  • Métodos principais
  • Imutabilidade
  • Checked vs Unchecked
  • Try / Catch / Finally
  • Boas práticas
  • Lambda expressions
  • Method reference
  • Streams API
  • Optional
  • Records
  • Text Blocks
  • Pattern Matching (instanceof, switch)
  • Sealed Classes
  • Virtual Threads (Project Loom)
  • Java Time API
  • Java IO / NIO
  • Concurrency API (Threads, Executors)
  • Garbage Collector
  • JIT Compiler
  • Memory model
  • OpenJDK
  • Temurin (Adoptium)
  • Azul Zulu
  • GraalVM
  • Maven
  • Gradle
  • Bazel
  • SDKMAN!
  • Maven vs Gradle: quando usar cada um
  • Estrutura de pom.xml e build.gradle
  • Conceito de versionamento
  • Repositórios e branches
git clone
git branch
git checkout
git status
git add
git commit
git push
git pull
  • Pull Requests
  • Code Review
  • Merge
  • Resolução de conflitos
  • CREATE DATABASE
  • CREATE TABLE
  • INSERT
  • SELECT
  • UPDATE
  • DELETE
  • TRUNCATE
  • Chaves primárias e estrangeiras
  • INNER JOIN
  • LEFT JOIN
  • RIGHT JOIN
  • FULL OUTER JOIN
  • SELF JOIN
  • O que é API
  • Cliente vs servidor
  • REST
  • Métodos: GET, POST, PUT, DELETE, PATCH
  • Status codes:
    • 1xx - Informacional
    • 2xx - Sucesso
    • 3xx - Redirecionamento
    • 4xx - Erro do cliente
    • 5xx - Erro do servidor
  • Recursos
  • Idempotência
  • Versionamento
  • Spring Initializr
  • IoC (Inversão de Controle)
  • Injeção de dependência
  • Beans
  • Controllers (@RestController)
  • Rotas (@RequestMapping)
  • Teste com Postman / Insomnia
  • Consumo de APIs externas
  • Quarkus (foco em cloud-native e GraalVM)
  • Micronaut (AOT, startup rápido)
  • Helidon (compatível com MicroProfile e Jakarta EE)
  • JPA
  • Hibernate
  • DAO Pattern
  • CrudRepository
  • JpaRepository
  • H2 Database (banco em memória)
  • Criar
  • Listar
  • Atualizar
  • Deletar
  • jOOQ (SQL type-safe via DSL)
  • MyBatis (mapeamento SQL explícito)
  • Spring WebFlux
  • Project Reactor
  • RxJava
  • Virtual Threads como alternativa ao modelo reativo
  • Swagger / OpenAPI
  • Spring GraphQL
  • Feign Client (REST declarativo)
  • gRPC Java (RPC de alta performance)
  • Spring Integration
  • Autenticação vs autorização
  • Basic Auth
  • JWT
  • OAuth 2 + OIDC
  • Login com JWT
  • Refresh Token
  • Password encoder (BCrypt)
  • Keycloak
  • Testes unitários (JUnit 5, Mockito)
  • Assertions fluentes com AssertJ
  • Testes de integração com Testcontainers
  • Testes de contrato
  • SOLID
  • Clean Code
  • Apache Kafka
  • RabbitMQ
  • Spring Integration
  • ActiveMQ Artemis
  • Micrometer (métricas)
  • Prometheus (coleta de métricas)
  • OpenTelemetry (rastreamento distribuído)
  • Grafana (visualização)
  • Logging estruturado
  • Docker
  • Kubernetes
  • Jib (build de imagens Docker sem Dockerfile)
  • AWS, GCP, Azure
  • Native Image (GraalVM)
  • OWASP Top 10
  • Resiliência (retry, circuit breaker)
  • Monitoramento e alertas
  • IntelliJ IDEA
  • Eclipse
  • SonarQube
  • Flyway
  • Liquibase
  • System Design
  • Performance tuning
  • Escalabilidade
  • Engenharia de plataforma
  • IA aplicada ao desenvolvimento
  1. Domine Java 21+: Records, Virtual Threads, Pattern Matching
  2. Spring Boot + JPA + Testes (JUnit 5, Mockito, Testcontainers)
  3. Kafka + Security (JWT, OAuth 2 + Keycloak) + OpenAPI
  4. Docker + Kubernetes + Observability (OpenTelemetry, Grafana)
  5. GraalVM Native Image + Performance Tuning

Foque em projetos reais ao invés de só teoria.

Sugestões:

  • API REST completa com autenticação (Spring Boot + JWT + OpenAPI)
  • Sistema com mensageria (Kafka + Spring Integration)
  • Microsserviço com Spring Boot + Docker + Kubernetes
  • Serviço reativo com Spring WebFlux + Project Reactor

🔥 Regra de ouro: Aprenda - Aplique - Ensine - Repita