Projeto de Ultraaprendizado: De desenvolvedor junior para pleno em um ano.
Sei que esse título parece meio absurdo, eu entendo, mas esse é o desafio que eu estou me propondo a fazer esse ano, tentar me superar e melhorar como desenvolvedor não é uma tarefa fácil, mas tentar alguma coisa e falhar ainda é melhor do que pensar em fazer e nunca tentar.
Existe um ritual japonês chamado “Misogi” que diz o seguinte:
“Misogi é um desafio que consiste em realizar uma atividade que demande grande esforço físico e mental, superando seus próprios limites. O objetivo é superar os próprios limites e se conectar consigo mesmo”
Esse ritual pode ser visto como uma forma de purificação ou de desafio pessoal, o objetivo é que a pessoa realize um grande objetivo de vida no período de um ano e que no meio do processo alcance um entendimento maior de si mesma. (Calma! Eu já vou chegar na parte da programação.)
Eu sou um desenvolvedor majoritariamente backend, eu me formei em 2021 e desde então tenho tido muita dificuldade de encontrar vagas junior que tenham interesse no meu currículo e quando eu consigo encontrar e tenho a oportunidade de fazer uma entrevista descobri que todos os 4 anos em sistema de informação me prepararam apenas com o básico e que as empresas querem um profissional com conhecimento que vai além apenas da grade curricular, não estou apontando todos os dedos para as empresas afinal eu poderia ter pesquisado mais e estudado por conta própria no meu tempo livre as matérias que estavam faltando na grade curricular.
É por isso que após ter lido o livro Ultra Aprendizado do autor Scott H. Young, eu decidi preparar esse material que vou mostrar a seguir com a esperança de tornar o meu perfil mais atraente para os recrutadores e também de receber um feedback de vocês que trabalham na área de coisas que posso melhorar neste material.
O meu objetivo com esse post é divulgar esse pequeno projeto de estudos que estou fazendo e fazer atualizações mensais sobre como está indo o meu progresso e quem sabe motivar algumas pessoas a seguirem a área apesar das dificuldades.
Sem mais delongas aqui está a versão 1.0 do conteúdo que eu vou seguir até o final deste ano.
Objetivo Final:
No final de 1 ano, terei conhecimento e experiência prática equivalentes a um engenheiro de software pleno, pronto para ser contratado por qualquer empresa.
Princípios do Ultralearning Aplicados
Meta-Aprendizado – Pesquisa inicial sobre o que precisa ser aprendido.
Foco – Estudo intenso e sem distrações.
Prática Direta – Trabalhar em projetos reais desde o início.
Prática Intencional – Exercícios direcionados para melhorar pontos fracos.
Recuperação – Aprender ativamente em vez de passivamente.
Feedback Rápido – Receber correções constantes de código e práticas.
Retenção – Revisões espaçadas e aplicação do conhecimento.
Experimentação – Testar novas abordagens e desafios.
Trimestre 1: Fundamentos Sólidos e Primeiros Projetos
Foco: Dominar Java, Spring Boot, banco de dados e DevOps básico
Projetos: CRUD completo, API REST, Integração com Banco de Dados
Mês 1: Java Avançado e Engenharia de Software
Teoria & Prática:
Programação funcional (Streams, Lambdas).
Concorrência e paralelismo (Threads, CompletableFuture).
Design Patterns mais usados (Factory, Singleton, Observer).
Introdução a Arquitetura de Software (MVC, Clean Code, SOLID).
Projeto 1: Criar um sistema de gerenciamento de tarefas com Java puro.
Desafios: Criar testes unitários, aplicar padrões de projeto.
Mês 2: APIs com Spring Boot e Banco de Dados
Teoria & Prática:
Criando APIs RESTful com Spring Boot.
Banco de Dados Relacional (PostgreSQL, MySQL) e ORM (Hibernate).
Transações, Indexação e Otimização de Queries.
Projeto 2: Criar um sistema de agendamento de consultas com API REST.
Desafios: Autenticação JWT, paginar resultados, CRUD otimizado.
Mês 3: Docker, DevOps Básico e Microservices
Teoria & Prática:
Criando contêineres com Docker.
Kubernetes: Introdução e Deploy básico.
Spring Boot com Microservices.
Comunicação entre Microservices (Feign, RabbitMQ, Kafka).
Projeto 3: Criar um sistema de microservices para um e-commerce.
Desafios: Deploy com Docker Compose, circuit breaker com Resilience4J.
Trimestre 2: Arquitetura Avançada e Sistemas Distribuídos
Foco: Microservices, Segurança, Mensageria
Projetos: Aplicações robustas em produção
Mês 4: Segurança e Escalabilidade
Teoria & Prática:
OWASP Top 10 (Prevenção de SQL Injection, XSS, CSRF).
Spring Security + OAuth2 + JWT.
API Gateway e Load Balancing.
Projeto 4: Criar um sistema de autenticação de usuários.
Desafios: Implementar OAuth2, logins sociais (Google, GitHub).
Mês 5: Arquitetura de Software Profunda
Teoria & Prática:
Domain-Driven Design (DDD).
Clean Architecture e Hexagonal Architecture.
Event-Driven Architecture com Kafka.
Projeto 5: Criar um sistema de pagamentos assíncronos.
Desafios: Implementar comunicação via eventos, garantir consistência.
Mês 6: Cloud Computing e Monitoramento
Teoria & Prática:
AWS Lambda, API Gateway, S3, RDS.
Infraestrutura como código (Terraform).
Monitoramento com Prometheus e Grafana.
Projeto 6: Criar um sistema serverless de envio de e-mails.
Desafios: Deploy no AWS, logs detalhados no CloudWatch.
Trimestre 3: Frontend Avançado e Integração Completa
Foco: React, Integração com Backend
Projetos: Aplicações full stack
Mês 7: React Avançado e Gerenciamento de Estado
Teoria & Prática:
Hooks avançados (useReducer, useMemo, useCallback).
Redux e Zustand para gerenciamento global de estado.
Projeto 7: Criar um painel de controle para microservices.
Desafios: Gráficos dinâmicos, integração com backend.
Mês 8: Testes e Qualidade de Código
Teoria & Prática:
TDD e BDD (JUnit, Mockito, Cypress).
Testes de carga (JMeter).
Projeto 8: Criar um sistema de monitoramento de performance.
Desafios: Criar testes unitários, integração e de performance.
Mês 9: Full Stack - Aplicação Completa
Projeto 9: Criar um sistema de reservas estilo Airbnb com React + Spring Boot + AWS.
Desafios: Deploy full, pagamentos com Stripe.
Trimestre 4: Refinamento, Desafios e Projetos Pessoais
Foco: Refinamento e preparação para entrevistas
Mês 10: Desafios e Código de Alta Performance
Teoria & Prática:
Algoritmos e Estruturas de Dados (Leetcode, Codeforces).
Performance tuning em Java e SQL.
Projeto 10: Criar um sistema de recomendação de produtos.
Desafios: Criar queries SQL performáticas.
Mês 11: Preparação para o Mercado
Desafios: Simulações de entrevistas técnicas, criação de um case para apresentar a recrutadores.
Resultado Final
Após 1 ano, terei:
Experiência prática com 12 projetos robustos.
Domínio de Java, Spring Boot, Arquitetura, DevOps e Frontend.
Perfil atrativo para empresas, pronto para se tornar um Engenheiro de Software Pleno.
Esse foi o meu primeiro post, desculpe se fui muito prolixo ou se o post não estiver no padrão da comunidade.