🔰 Fase 1 – Fundamentos da Programação com Java
Objetivo:
Aprender a base da linguagem Java e desenvolver o raciocínio lógico necessário para backend.
Tipos primitivos: int, double, char, boolean
Declaração de variáveis e constantes
Operadores: aritméticos, relacionais, lógicos
Condicionais: if, else, switch
Laços de repetição: for, while, do-while
Métodos (funções) e escopo
Arrays e matrizes
Entrada de dados com Scanner
🧱 Fase 2 – Orientação a Objetos (POO)
Objetivo: Aplicar os conceitos de programação orientada a objetos em estruturas reais.
Criação de classes e objetos
Atributos e métodos
Encapsulamento: uso de getters e setters
Herança: reutilização de código com extends
Polimorfismo: sobrescrita e sobrecarga de métodos
Interfaces e classes abstratas
Modificadores de acesso: public, private, protected
📦 Fase 3 – Java Avançado + Coleções
Objetivo:
Trabalhar com estruturas de dados dinâmicas e manipulação de arquivos.
Tratamento de exceções: try-catch, throws, finally
Coleções: ArrayList, LinkedList, HashMap, HashSet, TreeMap
Generics
Manipulação de arquivos: File, BufferedReader, BufferedWriter
🔌 Fase 4 – Conexão com Banco de Dados (JDBC)
Objetivo:
Conectar aplicações Java com bancos relacionais usando JDBC.
Comandos SQL básicos: SELECT, INSERT, UPDATE, DELETE
Conexão com MySQL ou PostgreSQL
Uso de DriverManager, Connection, Statement, PreparedStatement
Execução de queries e leitura com ResultSet
Boas práticas com try-with-resources
🌱 Fase 5 – Introdução ao Spring Boot
Objetivo:
Criar APIs modernas com Java e Spring Boot, aplicando organização e boas práticas.
O que é o Spring e o ecossistema Spring Boot
Criação de projetos com Spring Initializr
Anotações principais: @RestController, @RequestMapping, @GetMapping, @PostMapping
Injeção de dependência com @Autowired
Camadas da aplicação: Controller, Service, Repository
Persistência com Spring Data JPA
Banco H2 para testes rápidos
🔐 Fase 6 – Segurança e Autenticação
Objetivo:
Implementar autenticação, autorização e segurança na sua API.
Spring Security básico
JWT (JSON Web Token): autenticação baseada em token
Configuração de CORS
Controle de acesso por roles e permissões
☁️ Fase 7 – Deploy, Testes e Boas Práticas
Objetivo:
Colocar seu projeto no ar com qualidade, testes e versionamento.
Documentação com Swagger
Testes automatizados com JUnit e Mockito
Versionamento com Git e GitHub
Deploy em serviços gratuitos: Render, Railway, Fly.io
Separação de ambientes: dev, prod
Objetivo:
Aprender a base da linguagem Java e desenvolver o raciocínio lógico necessário para backend.
Tipos primitivos: int, double, char, boolean
Declaração de variáveis e constantes
Operadores: aritméticos, relacionais, lógicos
Condicionais: if, else, switch
Laços de repetição: for, while, do-while
Métodos (funções) e escopo
Arrays e matrizes
Entrada de dados com Scanner
🧱 Fase 2 – Orientação a Objetos (POO)
Objetivo: Aplicar os conceitos de programação orientada a objetos em estruturas reais.
Criação de classes e objetos
Atributos e métodos
Encapsulamento: uso de getters e setters
Herança: reutilização de código com extends
Polimorfismo: sobrescrita e sobrecarga de métodos
Interfaces e classes abstratas
Modificadores de acesso: public, private, protected
📦 Fase 3 – Java Avançado + Coleções
Objetivo:
Trabalhar com estruturas de dados dinâmicas e manipulação de arquivos.
Tratamento de exceções: try-catch, throws, finally
Coleções: ArrayList, LinkedList, HashMap, HashSet, TreeMap
Generics
Manipulação de arquivos: File, BufferedReader, BufferedWriter
🔌 Fase 4 – Conexão com Banco de Dados (JDBC)
Objetivo:
Conectar aplicações Java com bancos relacionais usando JDBC.
Comandos SQL básicos: SELECT, INSERT, UPDATE, DELETE
Conexão com MySQL ou PostgreSQL
Uso de DriverManager, Connection, Statement, PreparedStatement
Execução de queries e leitura com ResultSet
Boas práticas com try-with-resources
🌱 Fase 5 – Introdução ao Spring Boot
Objetivo:
Criar APIs modernas com Java e Spring Boot, aplicando organização e boas práticas.
O que é o Spring e o ecossistema Spring Boot
Criação de projetos com Spring Initializr
Anotações principais: @RestController, @RequestMapping, @GetMapping, @PostMapping
Injeção de dependência com @Autowired
Camadas da aplicação: Controller, Service, Repository
Persistência com Spring Data JPA
Banco H2 para testes rápidos
🔐 Fase 6 – Segurança e Autenticação
Objetivo:
Implementar autenticação, autorização e segurança na sua API.
Spring Security básico
JWT (JSON Web Token): autenticação baseada em token
Configuração de CORS
Controle de acesso por roles e permissões
☁️ Fase 7 – Deploy, Testes e Boas Práticas
Objetivo:
Colocar seu projeto no ar com qualidade, testes e versionamento.
Documentação com Swagger
Testes automatizados com JUnit e Mockito
Versionamento com Git e GitHub
Deploy em serviços gratuitos: Render, Railway, Fly.io
Separação de ambientes: dev, prod