<Roadmap />
O roadmap que eu sigo: dos fundamentos à arquitetura
Este é o mapa que eu uso nos meus próprios estudos como Software Engineer. São três etapas, com os tópicos na ordem em que fazem sentido e, para cada um, os cursos, artigos, vídeos e livros que eu indico. Os tópicos marcados com estudando agora são o meu foco atual.
Ele é aberto: se quiser seguir junto, marque o que já estudou. Seu progresso fica salvo só no seu navegador.
- etapas
- 3etapas
- tópicos
- 33tópicos
- conteúdos indicados
- 154conteúdos indicados
Largada
Comece por aqui. Não pule os fundamentos — tudo depois se apoia neles.
Etapa 1
Fundamentos
Como o computador funciona, uma linguagem de programação, bancos de dados, Git, web, APIs, segurança básica, um framework e Docker.
- 1Fundamentos da ComputaçãoAntes de qualquer linguagem ou framework, entenda a máquina: como o computador executa instruções, como os programas usam a memória e o que o sistema operacional faz por você.6 subtópicos4 conteúdoscom exemplos visuais
- 2Escolha uma linguagemEscolha uma linguagem e vá fundo nela. O que importa é aprender lógica, algoritmos e paradigmas — esses conceitos se transferem para qualquer outra linguagem depois.8 subtópicos2 conteúdos
- 3SQL e Bancos RelacionaisPraticamente todo sistema persiste dados. Aprenda SQL, modelagem com relacionamentos e as garantias que um banco relacional oferece (ACID e transações).5 subtópicos5 conteúdos
- 4Versionamento de CódigoGit é obrigatório no dia a dia: commits, branches, merge, rebase e resolução de conflitos. É a base para trabalhar em equipe.3 subtópicos1 conteúdos
- 5Repositórios RemotosHospede seu código, abra pull requests, faça code review e mantenha um portfólio público. Os conceitos são os mesmos entre as plataformas.1 subtópicos
- 6Redes e InternetO que acontece entre digitar um endereço e a página aparecer: roteamento de pacotes, domínios, DNS e a estrutura de uma URL.4 subtópicos7 conteúdos
- 7Fundamentos da WebO protocolo HTTP, o modelo cliente x servidor, o papel do servidor web e como o cache acelera as respostas.4 subtópicos9 conteúdos
- 8APIs & IntegraçõesSistemas conversam por APIs. Domine REST sobre HTTP — métodos, status codes, JSON, paginação e versionamento — e conheça as alternativas.10 subtópicos12 conteúdos
- 9SegurançaO básico que todo dev precisa saber para não abrir brechas: HTTPS, autenticação x autorização, sessões e cookies, CORS e as vulnerabilidades mais comuns.8 subtópicos9 conteúdos
- 10Model-View-Controller (MVC)Entenda o padrão MVC e escolha um framework web da sua linguagem. Framework acelera, mas os fundamentos anteriores é que fazem você entender o que ele faz por baixo.1 subtópicos
- 11DockerContêineres padronizam o ambiente do desenvolvimento à produção. Saiba criar imagens, rodar e orquestrar serviços localmente.5 subtópicos
Transição para a próxima etapa
Etapa 2
Engenharia de Software
Qualidade de código, orientação a objetos de verdade, testes, design patterns, refactoring, performance, cloud e CI/CD.
- 1Mais sobre Bancos de DadosNem todo dado cabe bem em tabelas. Conheça os principais tipos de bancos não relacionais e quando cada um faz sentido.4 subtópicos1 conteúdos
- 2Clean CodeCódigo é lido muito mais vezes do que escrito. Princípios práticos para deixar o código legível, simples e fácil de mudar.12 subtópicos2 conteúdos
- 3Orientação a Objetos AvançadaVá além dos quatro pilares: coesão, acoplamento, composição sobre herança e como desenhar objetos que protegem suas regras. É a base para SOLID, Object Calisthenics e Design Patterns.4 subtópicos
- 4Princípios SOLIDCinco princípios de design orientado a objetos que tornam o código mais fácil de estender, testar e manter.5 subtópicos5 conteúdos
- 5Object CalisthenicsNove regras de exercício (propostas por Jeff Bay) que forçam um design orientado a objetos melhor. Nem sempre para seguir à risca — mas ótimas para treinar.9 subtópicos5 conteúdos
- 6Princípios de Qualidade de CódigoTrês atalhos mentais que evitam boa parte da complexidade desnecessária.3 subtópicos2 conteúdos
- 7Testes AutomatizadosA pirâmide de testes: muitos testes de unidade rápidos na base, menos testes de integração e poucos testes ponta a ponta no topo.3 subtópicos1 conteúdoscom exemplos visuais
- 8Design PatternsSoluções reutilizáveis para problemas recorrentes de design, catalogadas pela "Gang of Four". Aprenda o problema que cada padrão resolve — não só a estrutura.23 subtópicos12 conteúdos
- 9Técnicas de RefactoringMelhorar o design do código existente sem mudar o comportamento. Aprenda a reconhecer code smells e as técnicas para corrigi-los.6 subtópicos7 conteúdos
- 10Otimização e PerformanceAs técnicas que mais aparecem na prática para deixar um sistema rápido: cache, processamento assíncrono, concorrência, SQL eficiente e CDN.5 subtópicos8 conteúdoscom exemplos visuais
- 11Básico das Cloud ProvidersQuase todo sistema roda em nuvem. Conheça os serviços essenciais (computação, armazenamento, banco, rede) e seus equivalentes entre AWS, Azure e Google Cloud.1 conteúdoscom exemplos visuais
- 12Pipelines de CI/CDAutomatize build, testes e deploy a cada mudança. Integração e entrega contínuas reduzem risco e aceleram o ciclo de feedback.1 subtópicos2 conteúdos
Transição para a próxima etapa
Etapa 3
Arquitetura & System Design
Arquitetura de software, DDD, camadas, sistemas distribuídos e os requisitos não funcionais: capacidade, escala, consistência, disponibilidade e segurança.
- 1Arquitetura de SoftwareArquitetura é sobre decisões difíceis de mudar depois, e os trade-offs de cada uma. Entenda os níveis de arquitetura, os tipos de arquiteto e o que se espera de cada papel.7 subtópicos2 conteúdos
- 2Domain-Driven DesignModele o software a partir do domínio do negócio. A parte estratégica divide o problema em contextos; a tática dá os blocos de construção do código.14 subtópicos5 conteúdos
- 3Arquitetura em CamadasSepare regras de negócio de detalhes de infraestrutura. Clean, Hexagonal e Onion compartilham a mesma ideia: as dependências apontam para o domínio.3 subtópicos1 conteúdoscom exemplos visuais
- 4Monólito ModularUm único deploy, mas com módulos bem isolados por domínio. Costuma ser o melhor ponto de partida — e facilita extrair microsserviços quando (e se) fizer sentido.com exemplos visuais
- 5Sistemas Distribuídos e Padrões Arquiteturaisestudando agoraQuando um único processo não basta: microsserviços, arquitetura orientada a eventos e serverless — com seus benefícios e (muitos) custos.5 subtópicos13 conteúdoscom exemplos visuais
- 6Planejamento de CapacidadeEstimar carga antes de desenhar: quantas requisições por segundo, quanta concorrência, onde estão os limites de recursos. As contas de guardanapo do System Design.5 subtópicos3 conteúdos
- 7Escalabilidade e Performanceestudando agoraComo um sistema cresce de mil para um milhão de usuários: escalar horizontalmente, distribuir carga, aliviar o banco e evitar os anti-padrões clássicos.16 subtópicos13 conteúdos
- 8Consistência de Dadosestudando agoraEm sistemas distribuídos, nem todos veem o mesmo dado ao mesmo tempo. Entenda os modelos de consistência e os trade-offs do teorema CAP.4 subtópicos3 conteúdos
- 9Disponibilidade, Resiliência e Tolerância a FalhasFalhas vão acontecer. Projete para que o sistema continue de pé (ou degrade com elegância) quando uma parte cair — e para você saber o que está acontecendo.6 subtópicos13 conteúdos
- 10Segurança como Requisito ArquiteturalSegurança não é um item para o final: ela molda a arquitetura desde a rede até o dado armazenado.5 subtópicos6 conteúdos
Parabéns!
Chegou até aqui? Hora de validar o conhecimento e continuar se aprofundando.
Certificações recomendadas
Para continuar em System Design
- ByteByteGo — System Design
Plataforma do Alex Xu com guias visuais de System Design. Parte do conteúdo é gratuito.
- System Design Interview, Vol. 1 e 2 — Alex Xu
Os dois livros mais usados para estudar entrevistas de System Design.
- Blogs de engenharia e newsletters
Como Netflix, Uber, Stripe, Meta e outras resolvem problemas reais em escala.


