{"id":18858619,"url":"https://github.com/jorgeluisreis/javachallenge","last_synced_at":"2025-09-03T00:35:07.411Z","repository":{"id":257250571,"uuid":"857730103","full_name":"Jorgeluisreis/JavaChallenge","owner":"Jorgeluisreis","description":"Java Challenge é uma iniciativa para os estudantes inciantes da Turma 4 do Programa 1000Devs, da mesttra em parceria com a J\u0026J Medtech e o Hospital Albert Einstein.","archived":false,"fork":false,"pushed_at":"2024-10-10T22:51:40.000Z","size":36,"stargazers_count":4,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2024-11-08T04:15:12.824Z","etag":null,"topics":["cli","java","programacao"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Jorgeluisreis.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-09-15T13:09:54.000Z","updated_at":"2024-10-17T18:00:57.000Z","dependencies_parsed_at":null,"dependency_job_id":"ccd2d676-f6d6-40bc-8ab2-0d8593110537","html_url":"https://github.com/Jorgeluisreis/JavaChallenge","commit_stats":null,"previous_names":["jorgeluisreis/javachallenge"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jorgeluisreis%2FJavaChallenge","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jorgeluisreis%2FJavaChallenge/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jorgeluisreis%2FJavaChallenge/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Jorgeluisreis%2FJavaChallenge/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Jorgeluisreis","download_url":"https://codeload.github.com/Jorgeluisreis/JavaChallenge/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231907832,"owners_count":18444186,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli","java","programacao"],"created_at":"2024-11-08T04:14:07.938Z","updated_at":"2024-12-30T19:48:31.645Z","avatar_url":"https://github.com/Jorgeluisreis.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cimg src=\"https://i.imgur.com/OlAXmKK.png\" alt=\"Logo\"\u003e\n\u003c/p\u003e\n\n# Java Challenge\n\nEste 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.\n\n# Roadmap de Estudos em Java\n\nEste 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.\n\n## 1. Fundamentos do Java (1 a 2 semanas)\n\n| Tópico                        | Atividades                                                                | Links                                                                                                                   |\n| ----------------------------- | ------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |\n| 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) |\n| 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)    |\n| 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)                             |\n| 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)                                         |\n| Manipulação de Strings        | Simular operações com Strings.                                            | [Manipulação de Strings](https://friendly-king-597.notion.site/Manipula-o-de-Strings-1089c07fc35a80efab8ad5a0448c5f4f)  |\n| 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)                             |\n\n**Duração:** 1-2 semanas (1 hora por dia)  \n**Tempo por tópico:** 2-3 dias\n\n---\n\n## 2. Estruturas de Dados e Coleções (2 a 3 semanas)\n\n| Tópico                      | Atividades                                                                                         | Links                                                                                                                  |\n| --------------------------- | -------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------------------- |\n| 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)                  |\n| 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)                        |\n| 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)    |\n| 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) |\n| 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)                |\n\n**Duração:** 2-3 semanas (1 hora por dia)  \n**Tempo por tópico:** 2-3 dias\n\n---\n\n## 3. Orientação a Objetos (2 a 3 semanas)\n\n| Tópico                                | Atividades                                                                    |\n| ------------------------------------- | ----------------------------------------------------------------------------- |\n| Classes e Objetos                     | Criar um sistema simples (ex: gerenciador de biblioteca ou loja de produtos). |\n| Encapsulamento, Herança, Polimorfismo | Implementar exemplos práticos com herança e polimorfismo.                     |\n| Modificadores de acesso               | Praticar o uso de `public`, `private`, `protected` em um sistema de cadastro. |\n| Construtores e destrutores            | Simular a criação e destruição de objetos.                                    |\n\n**Duração:** 2-3 semanas (1-1.5 horas por dia)  \n**Tempo por tópico:** 3-5 dias\n\n## 4. Exceções e Manipulação de Arquivos (1 semana)\n\n| Tópico                          | Atividades                                                                       |\n| ------------------------------- | -------------------------------------------------------------------------------- |\n| Bloco `try`, `catch`, `finally` | Manipular exceções básicas em programas.                                         |\n| Exceções Personalizadas         | Criar suas próprias exceções para tratamentos específicos.                       |\n| Leitura e escrita de arquivos   | Criar um sistema de logs ou gerenciador de cadastro com manipulação de arquivos. |\n\n**Duração:** 1 semana (1-1.5 horas por dia)  \n**Tempo por tópico:** 3-4 dias para exceções, restante para arquivos\n\n---\n\n## 5. Programação Funcional e Streams (1 semana)\n\n| Tópico                | Atividades                                                            |\n| --------------------- | --------------------------------------------------------------------- |\n| Interfaces Funcionais | Estudar interfaces funcionais.                                        |\n| Lambda Expressions    | Praticar uso de expressões lambda em coleções.                        |\n| Stream API            | Criar programas que usam Stream API para manipular listas e coleções. |\n\n**Duração:** 1 semana (1-1.5 horas por dia)\n\n---\n\n## 6. Banco de Dados e JDBC (2 semanas)\n\n| Tópico                      | Atividades                                                         |\n| --------------------------- | ------------------------------------------------------------------ |\n| Bancos de dados relacionais | Estudar como funcionam os bancos de dados relacionais (ex: MySQL). |\n| JDBC                        | Conectar e executar consultas usando JDBC.                         |\n| ORM (Hibernate)             | Introdução ao Hibernate para mapeamento objeto-relacional.         |\n\n**Duração:** 2 semanas (1-1.5 horas por dia)  \n**Tempo por tópico:** 4-5 dias para JDBC, restante para Hibernate\n\n---\n\n## 7. Multithreading e Concorrência (2 semanas)\n\n| Tópico                     | Atividades                                                        |\n| -------------------------- | ----------------------------------------------------------------- |\n| Threads e ciclo de vida    | Criar programas que processam tarefas em paralelo usando threads. |\n| Synchronized e Locks       | Praticar controle de concorrência com `synchronized` e Locks.     |\n| ExecutorService e Callable | Implementar `ExecutorService` e tarefas assíncronas.              |\n\n**Duração:** 2 semanas (1-1.5 horas por dia)\n\n---\n\n## 8. Java Avançado: Spring Framework (3 a 4 semanas)\n\n| Tópico                 | Atividades                                    |\n| ---------------------- | --------------------------------------------- |\n| Injeção de Dependência | Praticar DI em projetos Spring Boot.          |\n| Spring Boot            | Criar um projeto básico com Spring Boot.      |\n| Spring Data JPA        | Implementar CRUD com Spring Data JPA.         |\n| APIs RESTful           | Desenvolver uma API completa com Spring Boot. |\n\n**Duração:** 3-4 semanas (1.5-2 horas por dia)\n\n---\n\n## 9. Testes Automatizados (1 a 2 semanas)\n\n| Tópico               | Atividades                                                  |\n| -------------------- | ----------------------------------------------------------- |\n| JUnit 5              | Criar testes unitários para funcionalidades anteriores.     |\n| Mockito              | Utilizar Mockito para simulação de dependências nos testes. |\n| Testes de Integração | Implementar testes de integração para serviços RESTful.     |\n\n**Duração:** 1-2 semanas (1 hora por dia)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjorgeluisreis%2Fjavachallenge","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fjorgeluisreis%2Fjavachallenge","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fjorgeluisreis%2Fjavachallenge/lists"}