Este repositório é um guia completo e prático para quem deseja aprender fundamentos de Ciência da Computação, Engenharia de Software e Arquitetura de Sistemas, com foco em conectar teoria com a prática de desenvolvimento web (JavaScript/TypeScript, Node.js, React, Next.js, NestJS).
Cada pasta contém um módulo completo de estudos com:
- Objetivo do tópico
- O que estudar (conteúdo organizado)
- Conceitos fundamentais explicados de forma didática
- Aplicação prática em código
- Exercícios e projetos sugeridos
- Materiais de referência de qualidade
01-logica → 02-algoritmos → 03-estruturas-de-dados → 04-javascript-profundo → 05-nodejs-interno
↓
06-redes → 07-banco-de-dados → 08-linux → 09-sistemas-operacionais
↓
10-arquitetura → 11-design-patterns → 12-system-design
Por que esta ordem? Começamos com fundamentos de pensamento computacional, depois entendemos nossas ferramentas de trabalho (JS/Node), seguimos para infraestrutura (redes, SO, DB), e finalmente arquitetura e design de sistemas.
- Dominar lógica de programação e pensamento computacional
- Entender algoritmos e análise de complexidade
- Dominar estruturas de dados básicas
- Compreender profundamente o funcionamento do JavaScript
- Conhecer internamente o Node.js
- Entender redes de computadores e protocolos web
- Dominar bancos de dados relacionais e não relacionais
- Aprender Linux e administração básica de servidores
- Compreender sistemas operacionais, processos e concorrência
- Dominar arquiteturas modernas (Clean, Hexagonal, DDD)
- Aplicar design patterns de forma consciente
- Projetar sistemas distribuídos e escaláveis
- Resolver problemas de system design
Cada módulo tem seções específicas mostrando como o conhecimento se aplica diretamente ao desenvolvimento web:
| Conceito Teórico | Aplicação Prática |
|---|---|
| Estruturas de Dados | Otimizar buscas em APIs, manipulação de listas em React |
| Event Loop JS | Entender comportamento de código assíncrono |
| Índices em Banco de Dados | Otimizar consultas em aplicações NestJS |
| TCP/IP | Debuggar problemas de conexão em APIs |
| Design Patterns | Refatorar código repetitivo |
| Livro | Autor(es) | Por Que Ler |
|---|---|---|
| Código Limpo | Robert C. Martin | Bíblia sobre código legível e organizado |
| Clean Architecture | Robert C. Martin | Como organizar sistemas em camadas bem definidas |
| Structure and Interpretation of Computer Programs (SICP) | Abelson & Sussman | Livro definitivo sobre pensamento computacional |
| Introduction to Algorithms (CLRS) | Cormen et al. | Livro padrão de algoritmos |
| Design Patterns (GoF) | Gamma et al. | Padrões de projeto fundamentais |
| The Pragmatic Programmer | Hunt & Thomas | Mentalidade de um programador pragmático |
| System Design Interview | Alex Xu | Preparação para system design |
| Operating Systems: Three Easy Pieces | Arpaci-Dusseau | Livro gratuito sobre SO |
- Fireship: Conceitos rápidos e tecnologias modernas
- ByteByteGo: System Design e algoritmos com animações
- Hussein Nasser: Backend, bancos de dados e infraestrutura
- freeCodeCamp: Cursos completos
- Fábio Akita: Arquitetura em português
- Rocketseat: Ecossistema JS/TS
- API REST com Node.js + PostgreSQL
- Chat em tempo real com WebSockets
- Cache layer com Redis
- CLI Tool
- Clone de rede social básico