1. O que é um algoritmo
Um algoritmo é uma sequência finita de passos bem definidos que resolve um problema ou realiza uma tarefa. Não tem nada de místico nisso — você segue algoritmos todos os dias sem chamar de algoritmo:
- Uma receita de bolo: separe os ingredientes, misture na ordem X, leve ao forno por Y minutos, espere esfriar.
- Trocar um pneu furado: pare o carro em local seguro, afrouxe as porcas, levante o carro com o macaco, retire as porcas, troque a roda, aperte as porcas, abaixe o carro.
- Fazer login em um site: digite o e-mail, digite a senha, clique em entrar, se der erro leia a mensagem e tente de novo.
Repare que todos esses exemplos compartilham três características: são finitos (têm começo e fim, não rodam para sempre), são precisos (cada passo é claro, sem ambiguidade sobre o que fazer) e produzem um resultado (o bolo assado, o pneu trocado, o login feito ou recusado).
Um algoritmo pode existir inteiramente fora de um computador. A ideia de "algoritmo" é mais antiga que a computação — o próprio nome vem do matemático persa Al-Khwarizmi, do século IX, que descrevia procedimentos passo a passo para resolver problemas de matemática. Programar é só uma forma específica e muito poderosa de aplicar essa ideia.
2. Programar é traduzir um algoritmo
Quando você programa, está fazendo duas coisas em momentos diferentes:
- Pensar o algoritmo — decidir, em passos lógicos, como resolver o problema.
- Traduzir esse algoritmo para uma sintaxe que um computador específico consegue interpretar e executar.
A maior parte dos erros de quem está começando não está na etapa 2 (a sintaxe), está na etapa 1 — o algoritmo nunca ficou claro na cabeça de quem escreveu antes de virar código. É por isso que este módulo inteiro vai treinar a etapa 1 sem te prender à sintaxe de nenhuma linguagem específica.
Se você já escreve JavaScript, provavelmente já pula direto para a etapa 2 sem perceber, porque a sintaxe virou automática. O objetivo aqui é te fazer voltar consciente para a etapa 1 — porque é essa etapa que se transfere para qualquer linguagem que você for aprender depois, JS, C#, Python, Go, Rust, o que for.
3. Toda linguagem é uma "casca" para os mesmos conceitos
Aqui está a ideia central deste capítulo: JavaScript, C#, Python, Java, Go, Rust — todas essas linguagens são, no fundo, formas diferentes de escrever a mesma coisa. Elas mudam a sintaxe (as palavras-chave, a pontuação, as regras de formatação), mas por baixo todas resolvem problemas combinando um punhado pequeno de ideias universais:
- Sequência — fazer um passo depois do outro, na ordem em que foram escritos.
- Decisão — escolher um caminho ou outro dependendo de uma condição ("se isso, então aquilo").
- Repetição — repetir um bloco de passos várias vezes, enquanto uma condição for válida.
- Armazenamento de dados — guardar valores em variáveis para usar depois.
- Abstração — agrupar passos em blocos reutilizáveis (funções, procedimentos).
É só isso. Todo programa complexo que você já usou — um app de banco, um jogo, uma rede social — é construído combinando essas cinco ideias em camadas, milhares e milhares de vezes. O restante é detalhe de sintaxe.
| Conceito universal | Em JS | Em outras linguagens |
|---|---|---|
| Decisão | if / else | if/else em C#, Python, Java... quase sempre com o mesmo nome |
| Repetição | for, while | mesmos nomes na imensa maioria das linguagens |
| Armazenar dado | let, const | var, int x =, x = 5... |
| Bloco reutilizável | function | def, func, void... |
A tabela acima devia deixar uma coisa óbvia: se você entende o que uma decisão ou uma repetição fazem — não como se escreve a palavra-chave — trocar de linguagem vira uma questão de aprender vocabulário novo, não de aprender a pensar de novo.
4. Por que separar lógica de sintaxe
Um programador que só aprendeu a sintaxe de uma linguagem, sem nunca isolar a lógica por trás dela, trava toda vez que muda de linguagem ou de projeto — porque, sem perceber, aprendeu decorando "a forma como o JavaScript faz" em vez de aprender "o que precisa ser feito". Um programador que aprendeu a lógica primeiro consegue olhar para uma linguagem nova, nunca vista antes, e em poucos dias já está produtivo, porque só precisa mapear sintaxe nova para conceitos que já domina.
INÍCIO
ESCREVA "Qual é a sua idade?"
LEIA idade
SE idade >= 18 ENTÃO
ESCREVA "Você pode votar."
SENÃO
ESCREVA "Você ainda não pode votar."
FIM SE
FIM
Esse algoritmo não pertence a nenhuma linguagem. É puro raciocínio: leia um dado, tome uma decisão com base nele, mostre um resultado. Nos próximos capítulos você vai aprender a escrever exatamente esse tipo de pseudocódigo com precisão — e vai ver que, quando chegar a hora de aprender C# (ou qualquer outra linguagem), a tradução desse algoritmo para código real será o passo mais fácil de todos.
5. O que vem a seguir
Os próximos seis capítulos deste módulo constroem, peça por peça, um "dialeto" de pseudocódigo consistente que vamos usar durante todo o curso: como representar dados, como tomar decisões, como repetir passos, e como organizar tudo isso em blocos reutilizáveis. No final do módulo, você vai conseguir ler um problema em português e traduzi-lo direto para um algoritmo estruturado — sem precisar pensar em nenhuma linguagem específica ainda.