An open API service indexing awesome lists of open source software.

https://github.com/jorgeluisreis/javachallenge

Java Challenge é uma iniciativa para os estudantes inciantes da Turma 4 do Programa 1000Devs, da mesttra em parceria com a J&J Medtech e o Hospital Albert Einstein.
https://github.com/jorgeluisreis/javachallenge

cli java programacao

Last synced: 9 months ago
JSON representation

Java Challenge é uma iniciativa para os estudantes inciantes da Turma 4 do Programa 1000Devs, da mesttra em parceria com a J&J Medtech e o Hospital Albert Einstein.

Awesome Lists containing this project

README

          


Logo

# Java Challenge

Este repositório foi criado para a documentação de aprendizado, principalmente para ser usado para os iniciantes do programa 1000Devs Turma 4. Nele será abordado a parte teórica e prática de cada tópico aqui apresentado.

# Roadmap de Estudos em Java

Este roadmap foi criado para te guiar desde os fundamentos até tópicos mais avançados em Java. O plano foi organizado para que você possa estudar de forma consistente, praticando boas práticas e aumentando gradualmente a complexidade dos tópicos.

## 1. Fundamentos do Java (1 a 2 semanas)

| Tópico | Atividades | Links |
| ----------------------------- | ------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| História do Java e JVM | Estudar como a JVM funciona. | [História do Java e JVM](https://friendly-king-597.notion.site/Hist-ria-do-Java-5ca63bf92944407284f4050546b1d8f6?pvs=4) |
| Tipos de dados e operadores | Resolver problemas básicos de lógica no console. | [Tipos de dados e operadores](https://friendly-king-597.notion.site/Tipos-de-Dados-1079c07fc35a800f943ec48f3c4c24d6) |
| Controle de fluxo | Criar pequenos programas com `if/else`, `switch`, laços (`for`, `while`). | [Controle de fluxo](https://www.notion.so/Controle-de-Flu-1079c07fc35a80f9b444fd12e0a38fb8) |
| Métodos e escopo de variáveis | Implementar funções para cálculos matemáticos básicos. | [Métodos e escopo de variáveis](https://github.com/Jorgeluisreis/JavaChallenge) |
| Manipulação de Strings | Simular operações com Strings. | [Manipulação de Strings](https://friendly-king-597.notion.site/Manipula-o-de-Strings-1089c07fc35a80efab8ad5a0448c5f4f) |
| Calculadora Simples | Criar um programa que solicita dois números e uma operação matemática. | [Calculadora Simples](https://github.com/Jorgeluisreis/JavaChallenge/tree/main/Calculadora) |

**Duração:** 1-2 semanas (1 hora por dia)
**Tempo por tópico:** 2-3 dias

---

## 2. Estruturas de Dados e Coleções (2 a 3 semanas)

| Tópico | Atividades | Links |
| --------------------------- | -------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |
| Iteradores | Praticar a navegação por coleções utilizando Iteradores, com métodos que encapsulam essa lógica. | [Iteradores](https://friendly-king-597.notion.site/Iteradores-11b9c07fc35a80b695e4e35092cfe8f3?pvs=4) |
| Métodos | Criar métodos reutilizáveis para manipular Arrays, Listas, Sets e Mapas de forma eficiente. | [Métodos](https://friendly-king-597.notion.site/M-todos-11b9c07fc35a80b6883fdc3c6ea2bcd3?pvs=4) |
| Arrays e Matrizes | Aplicabilidade na prática entre Arrays e Matrizes, implementando métodos para manipulação. | [Arrays e Matrizes](https://friendly-king-597.notion.site/Arrays-e-Matrizes-11a9c07fc35a803da5ccf3c625a299cb?pvs=4) |
| Listas, Sets e Mapas | A importância de Coleções em Java para manipular grandes volumes, com métodos de busca e inserção. | [Listas, Sets e Maps](https://friendly-king-597.notion.site/Listas-Sets-e-Maps-11b9c07fc35a808a8653fae0a22c4e72?pvs=4) |
| Sistema de Cadastro Simples | Um sistema de cadastro de pessoas abordando tudo que foi estudado até aqui. | [Sistema de Cadastro Simples](https://github.com/Jorgeluisreis/JavaChallenge/tree/main/SistemaCadastro) |

**Duração:** 2-3 semanas (1 hora por dia)
**Tempo por tópico:** 2-3 dias

---

## 3. Orientação a Objetos (2 a 3 semanas)

| Tópico | Atividades |
| ------------------------------------- | ----------------------------------------------------------------------------- |
| Classes e Objetos | Criar um sistema simples (ex: gerenciador de biblioteca ou loja de produtos). |
| Encapsulamento, Herança, Polimorfismo | Implementar exemplos práticos com herança e polimorfismo. |
| Modificadores de acesso | Praticar o uso de `public`, `private`, `protected` em um sistema de cadastro. |
| Construtores e destrutores | Simular a criação e destruição de objetos. |

**Duração:** 2-3 semanas (1-1.5 horas por dia)
**Tempo por tópico:** 3-5 dias

## 4. Exceções e Manipulação de Arquivos (1 semana)

| Tópico | Atividades |
| ------------------------------- | -------------------------------------------------------------------------------- |
| Bloco `try`, `catch`, `finally` | Manipular exceções básicas em programas. |
| Exceções Personalizadas | Criar suas próprias exceções para tratamentos específicos. |
| Leitura e escrita de arquivos | Criar um sistema de logs ou gerenciador de cadastro com manipulação de arquivos. |

**Duração:** 1 semana (1-1.5 horas por dia)
**Tempo por tópico:** 3-4 dias para exceções, restante para arquivos

---

## 5. Programação Funcional e Streams (1 semana)

| Tópico | Atividades |
| --------------------- | --------------------------------------------------------------------- |
| Interfaces Funcionais | Estudar interfaces funcionais. |
| Lambda Expressions | Praticar uso de expressões lambda em coleções. |
| Stream API | Criar programas que usam Stream API para manipular listas e coleções. |

**Duração:** 1 semana (1-1.5 horas por dia)

---

## 6. Banco de Dados e JDBC (2 semanas)

| Tópico | Atividades |
| --------------------------- | ------------------------------------------------------------------ |
| Bancos de dados relacionais | Estudar como funcionam os bancos de dados relacionais (ex: MySQL). |
| JDBC | Conectar e executar consultas usando JDBC. |
| ORM (Hibernate) | Introdução ao Hibernate para mapeamento objeto-relacional. |

**Duração:** 2 semanas (1-1.5 horas por dia)
**Tempo por tópico:** 4-5 dias para JDBC, restante para Hibernate

---

## 7. Multithreading e Concorrência (2 semanas)

| Tópico | Atividades |
| -------------------------- | ----------------------------------------------------------------- |
| Threads e ciclo de vida | Criar programas que processam tarefas em paralelo usando threads. |
| Synchronized e Locks | Praticar controle de concorrência com `synchronized` e Locks. |
| ExecutorService e Callable | Implementar `ExecutorService` e tarefas assíncronas. |

**Duração:** 2 semanas (1-1.5 horas por dia)

---

## 8. Java Avançado: Spring Framework (3 a 4 semanas)

| Tópico | Atividades |
| ---------------------- | --------------------------------------------- |
| Injeção de Dependência | Praticar DI em projetos Spring Boot. |
| Spring Boot | Criar um projeto básico com Spring Boot. |
| Spring Data JPA | Implementar CRUD com Spring Data JPA. |
| APIs RESTful | Desenvolver uma API completa com Spring Boot. |

**Duração:** 3-4 semanas (1.5-2 horas por dia)

---

## 9. Testes Automatizados (1 a 2 semanas)

| Tópico | Atividades |
| -------------------- | ----------------------------------------------------------- |
| JUnit 5 | Criar testes unitários para funcionalidades anteriores. |
| Mockito | Utilizar Mockito para simulação de dependências nos testes. |
| Testes de Integração | Implementar testes de integração para serviços RESTful. |

**Duração:** 1-2 semanas (1 hora por dia)