Skip to content

Repository files navigation

Computer Science Roadmap

🎯 Objetivo

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).

📚 Como Utilizar

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

🗺️ Ordem Recomendada de Estudos

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.

🏃 Trilha de Aprendizado

🔵 Nível Iniciante (Foco: Fundamentos)

  • 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

🟢 Nível Intermediário (Foco: Infraestrutura e Sistemas)

  • 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

🟣 Nível Avançado (Foco: Arquitetura e Design)

  • Dominar arquiteturas modernas (Clean, Hexagonal, DDD)
  • Aplicar design patterns de forma consciente
  • Projetar sistemas distribuídos e escaláveis
  • Resolver problemas de system design

🔗 Conectando Teoria com Prática

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

📖 Materiais Recomendados (Referências Geral)

Livros Clássicos

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

Documentações Oficiais

Canais do YouTube

  • 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

Blogs de Engenharia

💡 Projetos Práticos (Geral)

  1. API REST com Node.js + PostgreSQL
  2. Chat em tempo real com WebSockets
  3. Cache layer com Redis
  4. CLI Tool
  5. Clone de rede social básico

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors