Dominando o JavaScript

[1] Dominando o JavaScript

Cinquenta e dois artigos em seis módulos, do primeiro console.log ao dashboard em React — e uma ordem que não é arbitrária: closures antes dos Hooks, assíncrono antes de servidor. Junto vem a dica que abre a série: anote hoje, num papel, o que você sabe de JavaScript, e confira daqui a um ano.
Javascript

8 min de leitura

Estou estudando Javascript a um longo tempo. Não sei precisar quanto tempo. E tem centenas de artigos, tutoriais na internet. Alguns extremamente básicos, outros muito complexos e outros bem defasados (usando var ainda) em pleno ano de 2026.

Então surgiu a ideia de criar esta série de artigos. Não sou bom em falar, então vídeos-aula não seriam um boa ideia. Ao longo de cada artigo, o conteúdo evoluirá cada vez mais e a linguagem se tornará mais fácil, apesar de um tanto mais complexa. Mas para quem estudar (e não simplesmente ler e ir para o próximo), não terá problemas em dominar essa linguagem.

Uma grande dica: não acredite que existe em milagres para o aprendizado: tempo é a chave! Um ano, dois ... cinco anos voam se você estuda algo bom e que gosta. Anote num papel (sim, ele existe ainda!) o que você sabe hoje sobre Javascript. E daqui seis meses, um ano, pegue o papel da sua carteira, porta luvas do carro, fundo da gaveta e compare!

Plano Completo da Série

Visão Geral

A ideia é um artigo por semana, ou em menos dias — o ritmo é seu. A divisão foi pensada para o estudante assimilar bem um conteúdo, um conceito, e só então ir para o próximo; ler as referências e praticar é primordial. Se tiver mais tempo por dia, avance mais rápido, em dias e não em semanas; isso varia de pessoa para pessoa. O curso está subdividido em módulos progressivos, do zero absoluto até o mercado de trabalho, e ganha artigo novo sempre que um assunto se mostra necessário — o índice abaixo é a versão atual, com tudo o que já está no ar.

MÓDULO 1 — Fundamentos do JavaScript

# Título
01 O que é JavaScript e por que aprender?
02 Condicionais: if, else e switch
03 Laços de Repetição: for, while e do...while
04 Funções: declaração, expressão e arrow functions
05 Arrays: criando e manipulando listas
06 Objetos: estruturando dados do mundo real
07 Desestruturação, Spread e Rest Operator
08 Escopo, Hoisting e Closures
09 Tratamento de Erros com try, catch e finally
10 Mini Projeto: Calculadora no Console

MÓDULO 2 — JavaScript no Navegador — o DOM

# Título
11 O que é o DOM e como o JavaScript interage com o HTML
12 Eventos: click, input, submit e muito mais
13 Criando e Removendo Elementos Dinamicamente
14 Formulários: validação e coleta de dados
15 LocalStorage e SessionStorage
16 Temporizadores: setTimeout e setInterval
17 Mini Projeto: Quiz Interativo

MÓDULO 3 — Assíncrono, APIs e formatos de dados

# Título
18 O que é Programação Assíncrona? O Event Loop Explicado
19 Callbacks: o começo de tudo
20 Promises: resolvendo o Callback Hell
21 Async/Await: escrevendo código assíncrono de forma limpa
22 Fetch API: consumindo dados da internet
23 A evolução das requisições: de XMLHttpRequest ao Fetch
24 Trabalhando com JSON
25 Trabalhando com arquivos CSV
26 Trabalhando com datas e horas em JavaScript
27 Tratamento de erros em requisições HTTP
28 APIs públicas: exemplos práticos
29 Mini Projeto: App de Clima Completo

MÓDULO 4 — Node.js e Back-end

# Título
30 Introdução ao Node.js: JavaScript fora do navegador
31 NPM: gerenciando pacotes e dependências
32 Criando um servidor HTTP com Node.js puro
33 Express.js: o framework web do Node
34 MongoDB e Mongoose: banco de dados com Node
35 Projeto: API REST com autenticação JWT

MÓDULO 5 — Qualidade de Código

# Título
36 Testes automatizados com Jest
37 ESLint e Prettier: código limpo e padronizado
38 Git avançado e fluxo de trabalho em equipe
39 Introdução ao TypeScript
40 Revisão + Projeto: API tipada e testada

MÓDULO 6 — React

# Título
41 Introdução ao React
42 React Hooks em profundidade
43 Estado global com Zustand e React Query
44 React Router: navegação em SPAs
45 Revisão + Projeto Final: SPA Completa

MÓDULO 7 — Deploy, Segurança e Performance

# Título
46 Deploy: do código ao ar
47 Segurança em aplicações web
48 Performance em aplicações web
49 Revisão + Projeto Final: Produção Real

MÓDULO 8 — Arquitetura de Software

# Título
50 Padrões de Projeto em JavaScript
51 Arquitetura de Software: SOLID, Clean Architecture e DDD
52 Revisão do Módulo 8 + Projeto: Refatoração com Clean Architecture

MÓDULO 9 — Tópicos Avançados

# Título
53 WebSockets e Comunicação em Tempo Real
54 Filas de Tarefas e Processamento Assíncrono
55 Projeto Final: Revisão Completa e Aplicação de Produção

 

Fontes e Referências da Série

Todos os artigos desta série são baseados ou referenciados nas seguintes fontes de alto nível:

Documentação Oficial

Livros de Referência

Comunidade e Aprendizado

Padrões e Boas Práticas

Boa leitura e bons estudos!

Exercícios

Exercício 1

Sem voltar à tabela: em qual módulo entra o Node.js, e o que o módulo imediatamente anterior cobre? Explique por que essa ordem não é arbitrária.

Ver resposta

✓ Resposta: O Node.js abre o Módulo 4 — é o artigo 30 do plano, Introdução ao Node.js: JavaScript fora do navegador. O anterior, o Módulo 3, é o de assíncrono, APIs e formatos de dados — event loop, callbacks, Promises, async/await e fetch. A ordem é deliberada: um servidor passa o tempo todo esperando por coisas lentas (banco de dados, outra API, disco), e sem entender o modelo assíncrono você escreveria código de servidor por imitação. O Módulo 3 é o pré-requisito conceitual do Módulo 4.

Exercício 2

Conte quantos artigos tem o Módulo 1 e diga qual é o último deles. Que padrão você percebe olhando o último artigo dos outros módulos?

Ver resposta

✓ Resposta: São 10 artigos, terminando em "Revisão do Módulo 1 + Mini Projeto: Calculadora no Console". O padrão se repete em todos os módulos: cada um fecha com uma revisão somada a um projeto que usa o módulo inteiro — a To-Do List no 2, o App de Clima no 3, a API REST no 4, o Dashboard no 5. O conteúdo nunca termina em teoria; termina em algo que roda.

Exercício 3

Faça agora a tarefa que o artigo propõe: anote num papel o que você sabe hoje sobre JavaScript. Guarde-o num lugar que você reencontre daqui a seis meses.

Ver resposta

✓ Resposta: Não há gabarito — o valor está no registro datado. Escreva de verdade o que você consegue fazer hoje sem consultar nada: declarar uma variável? escrever uma função? explicar o que é uma Promise? Daqui a seis meses, a comparação mede o progresso muito melhor que a memória, que tende a apagar o ponto de partida e fazer parecer que "sempre" se soube o básico.

Exercício 4

O artigo reclama de material defasado, "usando var ainda". Localize no plano da série o artigo que dá as ferramentas para entender por que o var é problemático.

Ver resposta

✓ Resposta: É o artigo 08 do Módulo 1, Escopo, Hoisting e Closures. O problema do var não é sintático, é de escopo: ele é de função (não de bloco) e sofre hoisting, então uma variável declarada dentro de um if ou de um for vaza para fora dele e pode ser lida antes da declaração, valendo undefined. Sem escopo e hoisting explicados, "não use var" seria só uma regra decorada.

Exercício 5

Entre as fontes listadas no fim do artigo, quais são gratuitas e integralmente disponíveis online? E qual delas você abriria primeiro diante de uma dúvida pontual — o que exatamente Array.prototype.slice faz com um índice negativo?

Ver resposta

✓ Resposta: Gratuitas e completas online: MDN Web Docs, javascript.info, Eloquent JavaScript, You Don't Know JS e o freeCodeCamp, além das documentações oficiais de Node, Express e Next. Para a dúvida pontual, a resposta é a MDN: ela é material de referência, organizado por método, com a assinatura, o comportamento dos casos-limite e exemplos. Os outros são material de curso — ótimos para aprender um tema, lentos para consultar um detalhe.

Comentários

Mais em Javascript

React Router: navegação em SPAs
React Router: navegação em SPAs

Numa SPA o servidor entrega o HTML uma vez e o JavaScript decide o que exibir…

APIs públicas: exemplos práticos
APIs públicas: exemplos práticos

Seis APIs públicas, nenhuma exigindo cadastro ou chave: ViaCEP para endereço…

Criando e Removendo Elementos Dinamicamente
Criando e Removendo Elementos Dinamicamente

Boa parte de uma interface não está no HTML quando a página carrega — quem a…