- Conceitos básicos de programação
- Variáveis e tipos de dados
- Estruturas de controle (if/else, switch, loops)
- Funções/métodos
- Manipulação de strings
- Orientação a Objetos (OOP)
- Classes e objetos
- Encapsulamento, herança e polimorfismo
- Abstração
- Interfaces
-
Escolha um IDE/Editor
- IntelliJ IDEA (recomendado)
- Eclipse
- Visual Studio Code com extensão para Java
-
Gerenciamento de Projetos
- Conheça o Maven
- Entenda o Gradle
-
Controle de Versão
- Git e GitHub/GitLab/Bitbucket
- Fluxos como Git Flow
-
Aprenda a sintaxe moderna
- Recursos de Java 17 e Java 21 (LTS)
- Switch Expressions
- Text Blocks
- Record Classes
-
APIs principais
- Coleções (List, Set, Map)
- Streams e Lambdas
- Concurrency (ExecutorService, CompletableFuture)
-
Boas práticas
- Código limpo
- Princípios SOLID
-
Manipulação de arquivos e I/O
- File, BufferedReader, BufferedWriter
- NIO (Java 7+)
-
Serialização e deserialização
- JSON (com Jackson ou Gson)
- XML
-
Gerenciamento de memória
- Garbage Collector (GC)
- Análise de heap
-
Multithreading e Concorrência
- Threads
- Parallel Streams
- CompletableFuture
-
Desenvolvimento Web
- Spring Framework (Core, MVC, Boot)
- Quarkus ou Micronaut (alternativas para microserviços)
- Jakarta EE (antigo Java EE)
-
Banco de Dados
- JDBC
- JPA e Hibernate
- Flyway ou Liquibase (migrações de banco)
-
Segurança
- Spring Security
- OAuth2 e JWT
- Configuração de HTTPS (TLS/SSL)
-
APIs
- RESTful APIs com Spring Boot
- OpenAPI/Swagger
- WebSockets
-
Testes
- JUnit 5
- Mockito
- Testcontainers
-
Ambientes de containerização
- Docker
- Kubernetes
-
CI/CD
- GitHub Actions
- Jenkins
- ArgoCD
-
Monitoramento
- Prometheus e Grafana
- Elastic Stack (ELK)
-
Build e Deploy
- Cloud (AWS, GCP, Azure)
- Heroku, Render, ou alternativas
-
Design Patterns
- Singleton, Factory, Builder, Observer, etc.
-
Arquitetura
- Monolitos x Microserviços
- Event-Driven Architecture
- DDD (Domain-Driven Design)
-
Ferramentas de produtividade
- Lombok
- MapStruct
-
Reactive Programming
- Project Reactor
- RxJava
-
Módulos e JPMS
- Modularização no Java (desde o Java 9)
-
Desempenho e tuning
- Análise de desempenho com JProfiler ou VisualVM
- Ajustes do JVM (GC tuning, flags)
-
Machine Learning e Data Science
- Deep Java Library (DJL)
- Apache Spark com Java
-
Documentação oficial
-
Livros
- Effective Java (Joshua Bloch)
- Java Concurrency in Practice (Brian Goetz)
-
Comunidades
- Nosso discord: discord.gg/msjsG55MGn
- Reddit: r/java