Roadmap (30h/semana) — React + Next.js (Frontend-heavy Full Stack)

Fase 0 (Semanas 1 – 2 ) — Fundamentos de Programação + Ambiente (Linux/IDE)


Fase 1 (Semanas 3 – 6) — Base Web(redes) + Git + Layout


Fase 2 (Semanas 7 – 9) — JavaScript Forte + Tooling (Vite + lint)


Fase 3 (Semanas 10 - 12) — React Core (sem gambiarra) + Astro.build (final da fase)


Fase 4 (Semanas 13 – 15) — TypeScript + DDD-lite (camadas)


Fase 5 (Semanas 16 – 21) — Next.js App Router Full Stack (empregável)



#  Lógica de programação e algoritmos

### Fundamentos

- Sintaxe da linguagem
- Variáveis e tipos (string, number, boolean, null/undefined)
- Condicionais (if/else, switch)
- Loops (for/while, for..of)
- Funções (parâmetros, retorno, pure vs side effects)
- Arrays/Listas
- Objetos/Dicionários (chave/valor, contagem, agrupamento)
- Strings (split/join, replace, validações)

	### POO

- Quando usar classes (modelos/entidades, estado + comportamento)
- Quando NÃO usar (pra não complicar: função + objeto resolve)

### BIG 0 

-  (no futuro add: Big-O notation,Algoritmos de ordenação,Algoritmos de Busca e Estruturas de dados em árvore)

# Linux (Comandos básicos)

## Navegação e arquivos
### Navegar no terminal
- pwd (onde estou)
- ls (listar)
- cd (entrar/sair de pastas)

### Criar e organizar
- mkdir (criar pasta)
- touch (criar arquivo)
- cp (copiar)
- mv (mover/renomear)
- rm (remover)
- caminho relativo vs absoluto
- . e .. (pasta atual e anterior)

## Leitura e pesquisa
### Ver conteúdo
- cat (ver rápido)
- less (ver com scroll)
- head / tail (início/fim de arquivo)
- tail -f (acompanhar logs)

### Buscar texto
- grep (buscar palavra/padrão)
- grep -r (buscar em pasta)
- grep -i (ignorar maiúsculas)

## Permissões 
### Entender erro de permissão
- leitura/escrita/exec (r/w/x)
- chmod (dar permissão quando necessário)
- sudo (noção: usar com cuidado)

### Dono do arquivo (noção)
- chown (saber que existe e quando usar)

## Processos (só o suficiente)
### Ver e encerrar
- ps (listar processos)
- top (monitorar)
- kill (encerrar processo travado)

## Rede (pra testar APIs e downloads)
### HTTP básico no terminal
- curl (GET rápido pra endpoint)
- curl -I (headers/status)
- curl -o (baixar arquivo)

## Compactação (pra mexer com projetos)
### Compactar e extrair
- tar (extrair/compactar .tar.gz)
- zip / unzip (extrair/compactar .zip)

# IDE + Terminal + Node/npm + Git 

## VS Code
### Setup essencial
- Auto Save (opcional)
- Format on Save
- Default Formatter (Prettier)

### Extensões essenciais
- Prettier
- ESLint
- EditorConfig (opcional)
- GitLens (opcional)

### Atalhos que mais importam
- abrir command palette
- buscar arquivo rápido
- mover/duplicar linha
- multi-cursor (noção)
- comentar/descomentar

## Terminal (noção prática)
### Shell e comandos do dia a dia
- bash/zsh (entender que é o “interpretador”)
- terminal integrado do VS Code

### PATH e variáveis de ambiente (noção)
- o que é PATH (achar comandos)
- definir variáveis no projeto (.env)
- ler variáveis no Node (process.env)

## Node.js + npm
### Verificar e iniciar projeto
- node -v
- npm -v
- npm init

### Instalar e usar dependências
- npm install
- npm install -D
- node_modules e package-lock (noção)

### Scripts (o que você mais vai usar)
- npm run dev
- npm run build
- npm run test (quando existir)
- npm run lint / format (quando existir)

## Git (mínimo pra produzir)
### Ciclo básico
- git init
- git status
- git add
- git commit

### Histórico
- git log (ver commits)

### (Recomendado pro dia a dia)
- git restore (desfazer alterações)
- git reset (noção)
- .gitignore (ignorar node_modules, dist)