Skip to content

Latest commit

 

History

History
 
 

orange-talent-6

Folders and files

NameName
Last commit message
Last commit date

parent directory

..
 
 
 
 
 
 
 
 
 
 

Bem-vindx ao programa Orange Talents

Banner Orange Talents

Orange Talents: um programa de aceleração de carreira e evolução exponencial em tecnologia.

Nosso programa tem duração de até 13 semanas.
Preparamos uma sequência de estudos e treinos que visam te deixar preparadx para construir API's utilizando Java/Kotlin como linguagem e Spring/Micronaut + Hibernate como frameworks principais, fazendo com que você consiga focar no que mais importa: entregar valor para o cliente final usando tecnologia como meio.

O conteúdo é intenso e exige muito esforço da sua parte. Esperamos contar com toda sua energia!

Lembre-se:

Assim como um jogo de videogame, aqui você também precisa passar fase por fase. Se uma fase parecer fácil para você, não tem problema, passa por ela mais rápido.

O que vamos estudar e treinar:

Para que você se sinta e, realmente seja capaz de construir API's, você vai estudar e treinar em cima dos seguinte tópicos:

  • Design de código orientado a objetos com a linguagem Java;
  • Design de código orientado a objetos com a linguagem Kotlin;
  • Testes automatizados de unidade para aumentar a confiabilidade de execução do software;
  • JUnit para facilitar a escrita de testes automatizados;
  • Mockito para ajudar na simulação de invocação a sistemas externos;
  • SQL básico para realizar as operações de leitura e escrita necessárias;
  • Spring Boot para facilitar a utilização de tecnologias do ecossistemas Spring;
  • Spring MVC para facilitar na criação da camada web da aplicação;
  • Spring Validation para facilitar no processo de validação da entrada dos dados;
  • Spring Actuator para expor informações sobre a saúde da aplicação;
  • Spring Scheduling para criar agendamentos;
  • Spring Security para criar mecanismos de autenticação;
  • Módulo de integração com o Feign do Spring;
  • Hibernate para fazer o mapeamento entre o mundo orientado a objetos e relacional;
  • Kafka para ser usado meio de integração assíncrona via mensageria;
  • Open Tracing para conseguir seguir o fluxo de uma requisição em um sistema distribuído;
  • Docker e Kubernetes para auxiliar no processo de criação de ambientes simulando a produção e deploy;
  • Micronaut para construção API's ainda mais preparadas para o mundo Cloud Native.
  • Stack de CI/CD da Amazon para que consiga fazer com que seu código seja um bom cliente da operação. Vamos de cultura DevOps.

Cronograma para executar todas as atividades

Dividimos o nosso cronograma em fases para apoiar você em cada etapa deste treino. Lembre-se que temos toda uma equipe pronta para te dar suporte, tirar dúvidas e te direcionar.

  1. Na primeira semana, você ficará totalmente focado no Onboarding da Zup
  2. Estimamos que você conclua a fase 1 + fase 2 até a terceira semana. Essa é uma fase muito focada em teoria e atividades de fixação
  3. Estimamos que você conclua a fase 3 até a quinta semana.
  4. Estimamos que você conclua a fase 4 até a oitava semana.
  5. Agora você tem até 5 semanas para fechar a fase cinco!

Cronograma turma 6

FASE 1

Queremos que você entenda a estrutura do programa e como ficar melhor preparadx para consumir tudo que preparamos. Essa aqui é uma fase curta, porém fundamental!

FASE 2

Nesta fase você fará uma imersão teórica sobre desenvolvimento web utilizando o paradigma de programação orientado a objetos com Java, Spring e Hibernate.

  • Design de código orientado a objetos com a linguagem Java
  • SQL básico para realizar as operações de leitura e escrita necessárias
  • Spring MVC para facilitar na criação da camada web da aplicação
  • Hibernate para fazer o mapeamento entre o mundo orientado a objetos e relacional
  • Design de código orientado a objetos com a linguagem Java
  • Spring Boot para facilitar a utilização de tecnologias do ecossistemas Spring
  • Spring Validation para facilitar no processo de validação da entrada dos dados

Aqui é uma fase com muita teoria e alguns exercícios de fixação. Não se preocupe se sentir a cabeça ficar pesada, é uma sensação normal.

Em toda essa fase teórica focaremos nos cursos da plataforma Alura. Seu acesso já está liberado pelo nosso time, basta seguir as orientações das PM´s.

Lembre-se que a ideia é que você tenha contato e que tenha um primeiro conhecimento sobre isso tudo. Depois vai chegar a parte do treino em cima dessas teorias e aí esperamos que você fique ainda mais capaz de utilizar as teorias de maneira mais fluida.

Curso | Java Servlet: Fundamentos da programação Web Java

Curso | HTTP: Entendendo a web por baixo dos panos

Curso | Introdução ao SQL com MySQL: Manipule e consulte dados

Curso | Consultas SQL: Avançando no SQL com MySQL

Curso | Java e JPA: Persista seus objetos com a JPA2 e Hibernate

Curso | Spring Boot API REST: Construa uma API

Curso | Spring Boot API Rest: Segurança da API, Cache e Monitoramento

Curso | Spring Boot e Teste: Profiles, Testes e Deploy

Curso | Spring Data JPA: Repositórios, Consultas, Projeções e Specifications

Curso | SOLID com Java: Orientação a Objetos com Java

FASE 3

Agora que você passou por uma fase intensa de teoria, chegou a hora de treinar muito.

Bem-vindx a fase 3 do nosso treino!

Você vai construir dois projetos do zero. Nessa fase é importante que você faça uma auto análise e preste muita atenção ao nível de facilidade de cada funcionalidade que você vai construindo. Você deve sentir aos poucos que as etapas ficam mais fáceis. Se não estiver, vale o alerta: talvez você precise de ajuda, bora pra um café com um dos nossos mentores?!

O desafio de implementação da Casa do Código foi muito importante para que você treinasse sua habilidade em desenvolver API's web. O próximo desafio exige habilidades bem similares, o que é bom. Lembre que a repetição em cenários variados eleva seu nível. Só que agora, além de ser um desafio mais complexo, também vai exigir de você a criação de testes automatizados.

Para te deixar ainda mais preparado(a), temos alguns conteúdos sobre testes.

Curso | Java e Testes: Test Driven Development com Junit

Curso | Teste de Integração: Testes SQL e DAOs automatizados em Java

Para apoiar você ainda mais neste tema acesse aqui um conteúdo mais profundo sobre testes

Agora, com um pouco mais de teoria sobre como os testes podem ajudar no aumento da confiabilidade de execução do seu código, mergulhe no desafio de criar uma API que simula parte do Mercado Livre.

FASE 4

Neste ponto da jornada, você deve se sentir mais confiante e mais capaz de construir API's com as tecnologias e práticas até aqui trabalhadas. Vamos para o desafio final: Construir uma API que simula o funcionamento do Credicard zero, um produto do Itaú.

Estamos quase lá, reta final do nosso treino! Bora lá!

Vamos começar pela teoria que vai ser praticada no primeiro microservice, o de criação de propostas.

Aqui ainda não temos material gravado em vídeo, então por enquanto vai ser necessário ler os nossos textos :)

ATENÇÃO: É importante lembrar que não é esperado que você acabe essa fase da leitura dos conteúdos abaixo já conseguindo aplicar tais conceitos facilmente. A ideia é ter o primeiro contato e deixar a semente plantada na sua cabeça para que, no momento da prática, tudo seja mais facilmente acessível.

Curso | Docker: Criando containers sem dor de cabeça

Cursos | Zup Edu

Agora que você fez mais imersão teórica, vamos treinar! Neste treino você vai utilizar tudo que você estudou e até um pouco mais!

Com o microservice de propostas implementado, chegou a hora de implementar um novo serviço, o que cuida das transações do cartão de crédito. Como é de praxe, antes de começar, vamos primeiro estudar a teoria necessária.

Curso | Introdução a Apache Kafka

Chegou a hora de programar o serviço de transação. Ele é um serviço pequeno, mas vai te desafiar a utilizar o Kafka integrado com o Spring e te deixar ainda mais preparadx para utilizar essa forma de integração.

FASE 5

Agora vamos para a fase final!

Vamos nos desafiar a transferir todo esse conhecimento para uma nova stack de tecnologias, a Orange Foundation! Antes de mais nada, vamos te contar um pouco sobre essa nova stack.

A Zup + Itaú, juntas, decidiram apostar em um novo conjunto de tecnologias que são ainda mais aderentes a este mundo onde tudo se executa na Cloud. A Orange Foundation vai atuar em diversas vertentes do desenvolvimento, tais como:

  • Backend;
  • Frontend;
  • Pipeline de Continuos Integration(CI) e Continuos Deployment(CD);
  • Múltiplas áreas relativas a Data Science;

Aqui no nosso programa, vamos focar nas tecnologias associadas com a vertente de backend. Entre essas tecnologias temos:

  • Kotlin;
  • Micronaut;
  • GRPC;
  • Kafka;
  • JUnit;
  • Pitest;
  • Prometheus;
  • Jaeger;
  • Gradle;
  • Redis;
  • Amazon EKS;
  • AWS Secret Manager;
  • Gitlab;
  • AWS Code Pipeline;
  • AWS Code Build;
  • AWS Code Deploy;

Algumas delas, como JUnit, Prometheus e Jaeger já trabalhamos. Vamos continuar fazendo uso delas, estudar e praticar em cima de mais algumas agora:

  • Kotlin;
  • Micronaut;
  • GRPC;
  • Gradle;
  • AWS EKS;
  • AWS Secret Manager;
  • Gitlab;
  • AWS Code Pipeline;
  • AWS Code Build;
  • AWS Code Deploy;

Para começar, precisamos cair de cabeça no Kotlin, que é a linguagem base para a stack de backend da Orange Foundation. A teoria e atividades iniciais para a linguagem vão ser consumidas na Alura.

Uma coisa muito importante aqui: Você já estudou e treinou sobre a linguagem Java, tente fazer transferência de conhecimento. O que mudou foi a linguagem, mas muitos conceitos permanecem os mesmos.

Curso | Kotlin: primeiros passos e Orientação a Objetos

Curso | Kotlin: herança, polimorfismo e interface

Curso | Kotlin: recursos da linguagem com pacotes e composição

Curso | Kotlin: lidando com exceptions e referências nulas

Curso | Kotlin: Desenvolva com coleções, arrays e listas

Curso | Kotlin Collections: Set e Map

Curso | Kotlin: recursos do paradigma funcional

Com o Kotlin um pouco mais presente na sua mente, vamos agora consumir toda a teoria relativa ao Micronaut. Do mesmo jeito que era possível transferir conhecimento do Java para o Kotlin, agora você pode transferir conhecimento do mundo Spring para o mundo Micronaut :).

Um detalhe importante sobre a didática neste ponto: Dividimos cada explicação prática em dois vídeos semelhantes. O primeiro vídeo apresenta o assunto em cima de um exemplo já pronto, enquanto que o segundo apresenta o mesmo assunto construindo o exemplo. Nossa intenção é facilitar seu entendimento, fornecendo duas explicacões sobre o mesmo assunto em formatos diferentes.

Cursos | Zup Edu

O conteúdo que você acabou de consumir foi bem focado no módulo HTTP do Micronaut: basicamente o que você precisa para construir uma aplicação com Micronaut que vai se comunicar primordialmente via tal protocolo. Agora vamos direcionar nossa atenção para o módulo de GRPC do Micronaut :).

O GRPC é a tentativa de aumentar a performance na comunicação entre os serviços numa arquitetura distribuída, por exemplo com microsserviços. Nos próximos vídeos você terá acesso a bastante conhecimento sobre essa forma de comunicação e como o Micronaut facilita isso para você.

Agora que você fez mais essa imersão teórica em boa parte do conteúdo da Orange Stack, é hora de treinar! Neste treino você vai utilizar tudo que você estudou até esse momento e um pouco mais:

Nesse momento você já deve estar se sentindo apto a construir microsserviços utilizando as principais tecnologias da Orange Stack como Kotlin, Micronaut, API REST e gRPC.

Deploy

E o deploy? Como você vai levar sua aplicação da sua máquina para ficar exposta para ser consumida pelo mundo? Vamos agora mergulhar na teoria de deploy utilizando a nuvem da AWS.

Curso | Kubernetes: Pods, Services e ConfigMaps

Curso | Kubernetes: Deployments, Volumes e Escalabilidade

Cursos | Zup Edu

Chegamos na reta final do nosso programa, e como últimas dicas, aconselhamos que você consuma os conteúdos sobre Gitlab que também é uma ferramenta utilizada dentro da Zup.

Fizemos uma seleção de temas para apoiar você nesta etapa final dos estudos:

Espero que você tenha aproveitado cada fase, vídeos e conteúdos preparados pelo nosso time. Lembre-se que o treino foi intenso para que você estivesse preparado para esse momento tão esperado do jogo.

Time Zup EDU