Este repositório contém informações e referências sobre o curso Turma Java da Raro Academy, uma formação intensiva voltada para desenvolvedores(as) em início de carreira ou em transição, com foco prático e voltado para o mercado de tecnologia.
O curso tem duração de 14 semanas e oferece uma abordagem completa, combinando teoria e prática em aulas síncronas. Os principais tópicos abordados incluem:
✅ Sintaxe básica da linguagem Java
✅ Orientação a Objetos (OOP)
✅ Spring Framework e padrões de projeto
✅ Integração com bibliotecas externas (ex: Jackson)
✅ Persistência de dados
✅ HTTP e APIs RESTful
✅ Testes unitários e de ponta a ponta (E2E)
✅ Desenvolvimento de Soft Skills
📌 Aulas ao vivo com instrutores especialistas
🧑💻 Monitorias e suporte contínuo
📂 Acesso a material didático atualizado e organizado
![]() Rodrigo Sol |
![]() Marcelo Pinheiro |
![]() Lucas Santana |
![]() Bruno Sottomaior |
|---|
O curso conta com profissionais experientes do mercado, incluindo:
- Rodrigo Sol – Mestre em Ciência da Computação e cofundador da Raro Labs
- Marcelo Pinheiro – Desenvolvedor Back-End com mais de 10 anos de experiência
- Lucas Santana – Desenvolvedor Mobile com atuação internacional
- Bruno Sottomaior – Engenheiro de Software especialista em Java e Spring Boot
![]() Fernanda Cássia |
![]() Breno Peruchi |
|---|
O suporte aos alunos é reforçado por monitores dedicados:
- Fernanda Cássia – Analista de QA com experiência desde 2020, apaixonada por tecnologia e aprendizado contínuo
- Breno Peruchi – Head da Raro Academy, com background em Jornalismo e Cinema, e transição para o mercado tech em 2021
Este curso é ideal para:
- Desenvolvedores(as) iniciantes
- Pessoas em transição de carreira
- Interessados(as) em aprofundar conhecimentos em Java e frameworks modernos
Pré-requisitos recomendados:
- Conhecimentos básicos em lógica de programação
- Noções de orientação a objetos
📎 Para mais detalhes, acesse o site oficial da Raro Academy.
(14 aulas, 2h cada – Detalhamento Completo)
- História, características e relevância atual da linguagem Java
- Conceitos importantes: JVM, JRE e JDK
- Configuração do ambiente de desenvolvimento:
- Instalação e configuração do JDK
- Apresentação das principais IDEs (IntelliJ IDEA, Eclipse, VSCode)
- Estrutura básica de um programa Java
- Tipos primitivos, variáveis, operadores e expressões básicas
- Compilação e execução do primeiro programa: "Hello World"
- Estruturas de controle condicionais:
if,if-else,switch
- Estruturas de repetição:
for,while,do-while
- Introdução a arrays:
- Arrays unidimensionais e multidimensionais
- Operações básicas com arrays
- Introdução prática aos testes unitários com JUnit:
- Conceito básico de TDD (Test Driven Development)
- Criando testes simples para estruturas condicionais e loops
- Conceitos essenciais da Orientação a Objetos (OOP)
- Classes e objetos:
- Declaração e instanciação
- Atributos, métodos e encapsulamento
- Modificadores de acesso (
public,private,protected)
- Construtores e sobrecarga de métodos
- Exercícios práticos com testes unitários aplicando conceitos
- Conceitos fundamentais de herança:
- Reutilização de código, hierarquias de classes
- Polimorfismo:
- Polimorfismo estático (sobrecarga) e dinâmico (sobrescrita)
- Classes abstratas e interfaces:
- Aplicações práticas, diferenças fundamentais
- Implementação de cenários práticos com testes unitários
- Introdução à modelagem orientada a objetos
- UML básico aplicado ao Java:
- Diagramas de classes, associações, agregação e composição
- Técnicas práticas para análise e resolução orientada a objetos de problemas reais
- Exercícios integrados com implementação prática e testes unitários
- Apresentação geral do pacote
java.util - Classes essenciais:
Objects,Arrays,CollectionsScanner,RandomDate/Calendar
- Implementação de comparações (
Comparable,Comparator) - Exercícios com testes unitários utilizando essas classes
- Conceitos fundamentais de algoritmos e pseudocódigo
- Complexidade de algoritmos (introdução simples ao Big-O)
- Algoritmos essenciais:
- Busca linear e busca binária
- Algoritmos básicos de ordenação: bubble sort, selection sort, insertion sort
- Exercícios práticos com implementação Java e testes unitários
- Manipulação avançada de Strings:
- Classe
String,StringBuilder,StringBuffer
- Classe
- API moderna de datas com
java.time:LocalDate,LocalTime,LocalDateTime,Duration
- Manipulação de arquivos:
- IO clássico (
File,FileReader,FileWriter) - Introdução ao pacote
java.nio
- IO clássico (
- Exercícios práticos com testes unitários aplicados aos tópicos acima
- Introdução ao Collections Framework
- Uso e implementação prática das principais estruturas:
- Listas (
ArrayList,LinkedList) - Conjuntos (
HashSet,TreeSet) - Filas (
Queue,PriorityQueue) - Mapas (
HashMap,TreeMap)
- Listas (
- Exercícios integrados e implementação com testes unitários
- Exceções em Java:
- Conceitos gerais de exceções (
try-catch-finally) - Checked e unchecked exceptions
- Criação e uso de exceções customizadas
- Conceitos gerais de exceções (
- Reflection API:
- Introdução básica ao Java Reflection
- Carregamento dinâmico de classes
- Introspecção e invocação dinâmica de métodos
- Exemplos práticos com cenários reais e testes unitários
- Fundamentos de threads e multitarefa
- Implementação básica de threads com
ThreadeRunnable - Concorrência e problemas comuns (race conditions)
- Técnicas básicas de sincronização (
synchronized) - Exercícios práticos e testes unitários simples
- Expressões Lambda:
- Sintaxe, conceitos fundamentais
- Interfaces funcionais padrão (
Predicate,Function,Consumer,Supplier) - API Streams:
- Processamento funcional de coleções (filtros, mapeamentos e reduções básicas)
- Uso do
Optional:- Boas práticas de programação defensiva
- Exercícios práticos com testes unitários
- Introdução ao paradigma funcional:
- Conceitos principais (imutabilidade, funções puras, efeitos colaterais)
- Funções de alta ordem, composição de funções
- Streams avançados, operações intermediárias e terminais
- Aplicações práticas com Java utilizando lambdas, streams e Optional
- Exercícios avançados e testes unitários associados
- Introdução ao Clean Code com Java
- Princípios SOLID na prática
- Testes unitários avançados:
- Técnicas práticas com Mockito (introdução ao mocking)
- Refatoração prática de código real (exercícios guiados)
- Revisão e consolidação de melhores práticas ao longo do curso
| Aula | Título Principal |
|---|---|
| 1 | Introdução ao Java e Ambiente |
| 2 | Estruturas de Controle, Arrays e Testes Unitários |
| 3 | Fundamentos da Orientação a Objetos |
| 4 | Herança e Polimorfismo |
| 5 | Modelagem e Projeto Orientado a Objetos |
| 6 | Principais Classes do pacote java.util |
| 7 | Fundamentos de Algoritmos |
| 8 | Manipulação de Strings, Datas e Arquivos |
| 9 | Estruturas de Dados (Listas, Sets, Filas, Maps) |
| 10 | Tratamento de Exceções e Reflection |
| 11 | Introdução a Threads e Concorrência |
| 12 | Java Moderno (Lambdas, Streams e Optional) |
| 13 | Paradigma Funcional aplicado ao Java |
| 14 | Boas Práticas e Qualidade de Código |







