a verificar sessão…
Parte I de III · Antes do primeiro programa

Do bit ao browser

Do bit ao browser: tudo o que se passa por baixo do capô de um computador, explicado a fundo — para depois escreveres código a saber mesmo o que estás a fazer.

Este material foi feito para quem aprende depressa e não se contenta com respostas de superfície. Cada módulo tem laboratórios interactivos — carrega, arrasta, experimenta. Não há nada aqui que só se possa "decorar": tudo se percebe se pensares com calma.

Como usar: lê, mas sobretudo mexe nos quadros com contorno tracejado. São simulações reais a correr no teu browser. Quando um botão te convida a experimentar, experimenta antes de continuar a ler.
1 Código binário, lógica e aritmética

A língua secreta que só tem duas letras

Um computador não percebe palavras, nem números como nós os escrevemos. Por dentro, tudo — a tua mensagem, uma foto, uma música, este texto — é feito de milhões de pequenos interruptores que só têm dois estados: ligado ou desligado. É só isso. A partir daqui, construímos tudo o resto.

Primeiro: os computadores funcionam com eletricidade

Aqueles "interruptores" não são uma metáfora. Por dentro de um computador corre corrente elétrica, e cada bit é guardado pela presença ou ausência dessa corrente num pequeníssimo circuito. Um circuito é um caminho fechado por onde a eletricidade passa — como uma pilha ligada a uma lâmpada por dois fios. Se o caminho está fechado, a lâmpada acende; se está aberto, apaga. Aceso e apagado: aí estão os teus dois estados, feitos de eletricidade a sério.

Mas há duas maneiras muito diferentes de usar um sinal elétrico. Podemos deixá-lo só ligar e desligar (dois valores certinhos) — a isto chamamos digital. Ou podemos deixá-lo variar suavemente entre o mínimo e o máximo, passando por infinitos valores intermédios — a isto chamamos analógico. Experimenta os dois:

Laboratório 0 · Digital vs. analógico

À esquerda, um interruptor: só liga ou desliga. À direita, um reóstato — roda o botão (arrasta com o rato) e regula a intensidade da luz de forma contínua. Repara na diferença: um dá dois valores; o outro dá uma infinidade.

pilha DIGITAL interruptor: liga / desliga (carrega) pilha 9 0 ANALÓGICO reóstato: roda para regular (arrasta o botão)
Sinal digital
Sinal analógico

Carrega em "ruído" e observa: o sinal digital continua a ser lido bem; o analógico fica impossível de ler com exatidão.

E houve mesmo computadores analógicos?

Houve, e não eram brincadeira. Durante boa parte do século XX construíram-se computadores analógicos: máquinas que faziam contas representando os números por grandezas físicas contínuas — tensões elétricas, ângulos de engrenagens, níveis de água. Os primeiros sistemas de orientação de mísseis e as calculadoras de tiro dos grandes navios de guerra eram analógicos; havia também os "analisadores diferenciais", que resolviam equações com eixos e rodas a girar. Eram rápidos e engenhosos — mas tinham um calcanhar de Aquiles.

O calcanhar de Aquiles: o ruído

Ruído é toda a pequena perturbação indesejada que se mistura com um sinal: uma variação minúscula na corrente, uma interferência de outro aparelho, o calor dos componentes. Está sempre presente, em qualquer circuito. E aqui está a diferença que decide tudo:

Como imaginar o ruído hoje? Tira uma fotografia com pouca luz: fica cheia de pontinhos granulados. Esse grão chama-se, literalmente, ruído — e nunca desaparece por completo. Outra imagem: uma fotocópia de uma fotocópia de uma fotocópia vai ficando cada vez pior (analógico, o erro acumula); mas se copiares um ficheiro de texto mil vezes, a milésima cópia é idêntica à primeira (digital, o erro é eliminado a cada passo). (Quem for mais velho lembra-se da "chuva" no ecrã das televisões antigas quando o sinal estava fraco — isso era ruído analógico a estragar a imagem.)

Porquê só dois estados?

Agora já percebes a fundo. Poderíamos imaginar um computador que trabalhasse com dez níveis de tensão (para representar os dígitos de 0 a 9), como o reóstato lá em cima. Mas seria frágil: bastaria uma pequena variação na eletricidade — ruído — para confundir um "6" com um "7". Com apenas dois estados — há corrente ou não há — o sinal é robusto: é fácil distinguir "aceso" de "apagado" mesmo com ruído, e o valor é sempre recuperado limpo. Foi por isto que o mundo escolheu o digital, e é por isto que os computadores são construídos sobre o sistema binário: base 2.

A cada um destes interruptores chamamos bit (de binary digit, dígito binário). Um bit vale 0 ou 1. Juntando 8 bits temos um byte — a unidade com que se medem os ficheiros.

Como é que 0 e 1 chegam a ser um número?

Usamos exactamente a mesma ideia dos números do dia-a-dia. No sistema decimal (base 10), o número 305 significa 3×100 + 0×10 + 5×1. Cada casa vale dez vezes mais do que a casa à sua direita: 1, 10, 100, 1000…

No binário é igual, mas cada casa vale o dobro da anterior: 1, 2, 4, 8, 16, 32, 64, 128… Um bit a 1 significa "conta esta casa"; a 0 significa "ignora esta casa". Soma-se e obtém-se o número.

Laboratório 1 · O contador de bits

Carrega em cada quadrado para o ligar (1) ou desligar (0). Repara em como o número muda. Consegues formar o número 42? E o 170?

binário 00000000
=
= 0 em decimal
Descoberta: com 8 bits, o maior número é 11111111 = 255. Ou seja, 8 bits representam 256 valores diferentes (de 0 a 255). Em geral, com n bits temos 2n combinações. É por isso que ouves falar de "sistemas de 32 bits" e "64 bits": diz respeito a quantos números diferentes a máquina consegue manejar de uma vez.

E as letras? E as fotos?

Se tudo são números, como é que o computador guarda a letra A? Simples: alguém decidiu uma tabela de correspondência. Na tabela ASCII, a letra A é o número 65, o B é 66, e assim por diante. Quando carregas na tecla A, o teclado envia 01000001 (65 em binário) para o computador.

Uma foto é uma grelha de pontos (píxeis); cada píxel é guardado como três números (quanto vermelho, verde e azul). Um som é uma longa lista de números que descrevem a posição do altifalante a cada instante. No fundo, é sempre a mesma história: números, feitos de bits. A "magia" está nas tabelas de correspondência e nos programas que sabem interpretá-las.

Laboratório 2 · O tradutor ASCII

Escreve uma palavra e vê como o computador a guarda: cada letra vira um número, e cada número vira 8 bits.

Portas lógicas: onde nasce o "pensamento"

Já sabemos guardar números. Mas um computador tem de decidir e calcular. Faz isso com portas lógicas: pequenos circuitos que recebem bits à entrada e produzem um bit à saída, seguindo regras fixas. São os tijolos de tudo o que um processador faz.

Pensa em cada entrada como uma pergunta de sim/não (1 = verdadeiro, 0 = falso). As portas combinam respostas:

Laboratório 3 · A mesa das portas lógicas

Liga e desliga as entradas A e B e observa a saída de cada porta acender.

A = 0 B = 0
Para pensar: só com portas AND, OR e NOT consegue-se construir qualquer operação lógica ou aritmética imaginável. Um processador moderno tem milhares de milhões destas portas, feitas de transístores — interruptores microscópicos sem partes móveis. A "inteligência" do computador é, no fundo, muita gente pequena a dizer sim ou não, muito depressa.

Somar em binário

Somar bits segue as mesmas regras de quando somamos à mão, com "vai um". Só há quatro casos:

ABSoma (bit)Transporte (vai-um)
0000
0110
1010
1101

Repara: o bit de soma é exactamente um XOR (é 1 quando as entradas diferem) e o transporte é um AND (só há vai-um quando ambas são 1). Ligando estas duas portas obtém-se um circuito chamado meio-somador — e foi assim, literalmente, que aprendemos a construir máquinas que fazem contas.

Laboratório 4 · Somador binário passo a passo

Escolhe dois números (0 a 255) e vê a soma acontecer bit a bit, da direita para a esquerda, com o transporte a "saltar" para a casa seguinte.

Subtrair, multiplicar e dividir

Subtracção — o truque do "complemento a dois"

Os computadores não têm um circuito separado para subtrair. Fazem uma coisa engenhosa: para calcular A − B, transformam B no seu negativo e depois somam. Reaproveitam o somador que já têm!

Para obter o negativo de um número em binário usa-se o complemento a dois: inverte-se todos os bits (isso é o NOT que já conheces) e soma-se 1. Assim, 5 − 3 torna-se 5 + (−3), e o resultado sai certo com o mesmo hardware.

Laboratório 5 · Subtracção por complemento a dois

Multiplicação — deslocar e somar

Na escola aprendeste a multiplicar em coluna. Em binário é ainda mais fácil, porque cada dígito só pode ser 0 ou 1: multiplicar por um dígito é copiar o número ou escrever zeros. E multiplicar por 2 em binário é só acrescentar um 0 à direita (deslocar os bits uma casa para a esquerda) — tal como multiplicar por 10 em decimal é acrescentar um zero.

Laboratório 6 · Multiplicação binária (deslocar e somar)

Divisão — subtrair repetidamente

Dividir é o inverso: pergunta-se "quantas vezes cabe B dentro de A?". O computador vai subtraindo B de A e contando quantas vezes consegue, até já não caber. O que sobra é o resto. É o mesmo algoritmo da divisão longa que fazes no papel, só que em base 2.

Laboratório 7 · Divisão por subtracções sucessivas
Ideia-chave do módulo: um computador não sabe "matemática". Sabe ligar e desligar interruptores segundo regras muito simples. Somar, subtrair, multiplicar e dividir são apenas essas regras repetidas milhões de vezes por segundo. Toda a complexidade nasce da repetição de coisas simples — guarda esta ideia, vais reencontrá-la na programação.

Verifica se percebeste

Quanto vale 1010 em binário?

2 Os componentes de um computador

Quem faz o quê lá dentro

Já sabemos que tudo são bits e portas lógicas. Mas onde é que isso vive? Um computador é uma equipa de peças, cada uma com uma função. Vamos conhecê-las e, sobretudo, perceber como colaboram.

Laboratório 8 · Anatomia interactiva

Carrega em cada peça do diagrama para saberes o que faz.

CPU o cérebro RAM memória de trabalho Armazenamento disco / SSD Entrada teclado, rato… Saída ecrã, colunas… barramento
Carrega numa peça para veres a explicação aqui.

O processador (CPU) — o cérebro

A CPU (Central Processing Unit, unidade central de processamento) é onde estão as portas lógicas do Módulo 1, organizadas em milhares de milhões de transístores. Faz uma coisa, repetida a uma velocidade absurda: vai buscar uma instrução, executa-a, vai buscar a seguinte. A este ritmo chamamos frequência de relógio, medida em GHz — um computador a 3 GHz dá três mil milhões de passos por segundo.

Dentro da CPU há a ALU (unidade aritmética e lógica), que faz as somas e comparações que viste, e os registos — gavetas minúsculas e ultra-rápidas onde a CPU guarda os números com que está a trabalhar neste exacto instante.

A memória (RAM) — a bancada de trabalho

A RAM (Random Access Memory, memória de acesso aleatório) é onde ficam os programas e os dados enquanto estão a ser usados. Pensa numa bancada de carpinteiro: é rápida de alcançar, mas tem espaço limitado, e quando desligas a luz (a corrente) fica vazia. Por isso é que, se o computador se desliga de repente, perdes o que não gravaste.

"Acesso aleatório" quer dizer que a CPU consegue ir directamente a qualquer posição da memória, sem ter de percorrer tudo o que vem antes — como abrir qualquer página de um livro em vez de ler desde o início.

O armazenamento — o arquivo

O disco (mecânico) ou SSD (electrónico, mais rápido) guarda tudo de forma permanente: os teus ficheiros, os programas, o sistema operativo. É muito maior que a RAM, mas também muito mais lento. Quando abres um programa, ele é copiado do armazenamento (lento, permanente) para a RAM (rápida, temporária) para poder ser usado.

A grande hierarquia da memória: registos (minúsculos, instantâneos) → RAM (grande, rápida, apaga-se) → disco/SSD (enorme, lento, permanente). Quanto mais rápido, mais caro e mais pequeno. Todo o desenho de um computador é um jogo de equilíbrio entre estas camadas.

Entrada e saída — as portas para o mundo

Os dispositivos de entrada (teclado, rato, microfone, câmara, sensores) trazem informação de fora para dentro. Os dispositivos de saída (ecrã, colunas, impressora) levam informação de dentro para fora. Muitos são as duas coisas: um ecrã tátil é entrada e saída; a rede também.

Os barramentos — as estradas

Nada disto serviria de nada se as peças não pudessem falar umas com as outras. Os barramentos (buses) são os "cabos" — na verdade, pistas de cobre na placa-mãe — por onde os bits viajam entre a CPU, a RAM e tudo o resto. A placa-mãe é o tabuleiro que liga toda a gente.

O ciclo que nunca pára (chamado fetch–decode–execute, ou buscar–descodificar–executar): a CPU (1) vai buscar a próxima instrução à RAM, (2) descodifica-a (percebe o que lhe pedem), (3) executa-a, talvez guardando o resultado num registo ou na RAM. Depois volta ao início. Milhares de milhões de vezes por segundo. Um "programa" é só uma longa lista destas instruções à espera de serem buscadas — e é aí que entra o próximo módulo.
3 O que é um programa

Uma receita que a máquina segue à letra

Um programa é uma lista de instruções, guardada na memória, que a CPU vai buscar e executa uma a uma. É uma receita — mas de um tipo especial: o computador segue-a exactamente, sem perceber o objectivo e sem improvisar. Se a receita disser uma tontice, ele faz a tontice.

A diferença entre tu e a máquina: se uma receita disser "junta os ovos" e não houver ovos, tu percebes que há um problema. O computador não. Ele faz literalmente o que está escrito. Programar é a arte de escrever instruções tão claras e completas que não deixam margem para engano. Grande parte de "aprender a programar" é aprender a pensar com este nível de precisão.

Do binário às palavras: as camadas de uma linguagem

No fundo do poço, a CPU só entende código-máquina: instruções em binário como 10110000 01100001. Ninguém quer escrever assim. Por isso construímos camadas de tradução:

CamadaExemploQuem lê
Linguagem de alto nívelpreço = 3 + 5humanos (fácil)
AssemblyADD R1, R2humanos (difícil)
Código-máquina10110000 01100001a CPU

Um programa chamado compilador (ou interpretador) traduz o que tu escreves numa linguagem simpática — Python, JavaScript, C — para o binário que a máquina executa. Quando escreveres o teu primeiro programa, vais escrever na camada de cima, e uma cadeia de tradutores trata do resto. Mas agora já sabes que "lá em baixo" está o binário do Módulo 1.

Os três ingredientes de qualquer programa

Memória (estado)

Sítios onde o programa guarda valores enquanto trabalha. Em código chamamos-lhes variáveis: nomes que apontam para uma posição de memória. idade = 13 reserva um bocado de RAM e guarda lá o 13.

Entrada

Os dados que chegam de fora: o que o utilizador escreve, um ficheiro que se abre, uma resposta que vem da internet, o clique de um rato.

Saída

O que o programa produz: texto no ecrã, um ficheiro gravado, um som, um pedido enviado pela rede.

+ Lógica

A cola entre tudo: decisões (se… então…), repetições (repete 10 vezes) e cálculos. É onde usas, sem dar por isso, as portas lógicas do Módulo 1.

Praticamente todos os programas do mundo, do jogo mais complexo ao teu primeiro "Olá, mundo", são combinações destes ingredientes: recebem entrada, guardam estado na memória, decidem com lógica, produzem saída.

Abstrações: as meias-verdades úteis

Aqui está uma das ideias mais poderosas de toda a informática. Ninguém consegue pensar em milhares de milhões de transístores ao mesmo tempo. Por isso escondemos a complexidade atrás de abstrações: uma forma simples de usar algo complicado, sem precisar de saber como funciona por dentro.

Conduzir um carro é uma abstração: rodas o volante e o carro vira, sem teres de pensar na direcção assistida, na combustão, na transmissão. O volante é a interface; o motor é o detalhe escondido. A informática está cheia destas camadas, umas em cima das outras.

Ficheiros — a abstração mais famosa

No disco não há "ficheiros". Há milhares de milhões de bits espalhados por zonas físicas do SSD, muitas vezes partidos aos bocados e guardados em sítios diferentes. Um ficheiro é uma ilusão útil que o sistema operativo cria: dá a esses bits um nome (trabalho.pdf), finge que estão todos juntos e por ordem, e deixa-te copiá-los, apagá-los, movê-los. Tu pensas "um documento"; por baixo, é uma confusão organizada. Sem esta abstração, terias de saber em que zona física do disco começam os teus dados. Impensável.

Handles — o talão do bengaleiro

Quando um programa quer usar um ficheiro (ou uma ligação de rede, ou uma janela), não recebe o ficheiro inteiro. Recebe um handle: um pequeno número ou etiqueta que representa "aquele recurso que abriste". É como o talão que te dão no bengaleiro do teatro: o papelinho não é o teu casaco, mas com ele consegues pedir o casaco de volta. O programa diz ao sistema operativo "abre este ficheiro" e recebe um handle; depois diz "lê mais dados do handle 4" e o sistema sabe a que se refere.

Porque é que as abstrações são necessárias? Três razões. (1) Simplicidade: podes usar um ficheiro sem saberes nada de SSDs. (2) Portabilidade: o mesmo programa funciona num disco mecânico, num SSD ou na nuvem, porque a abstração "ficheiro" esconde as diferenças. (3) Segurança: se um programa só tem um handle, não pode andar a mexer em zonas do disco que não lhe pertencem. As abstrações não são só uma comodidade — são o que torna possível construir coisas gigantes sem enlouquecer.

O sistema operativo — o gestor do edifício

Quem cria os ficheiros, distribui os handles, decide que programa usa a CPU a cada instante e impede que uma aplicação estrague a memória de outra? O sistema operativo (Windows, macOS, Linux, Android). É um programa especial, sempre a correr, que faz de intermediário entre as tuas aplicações e o hardware.

Quando o teu primeiro programa "escrever no ecrã" ou "gravar um ficheiro", ele não faz isso sozinho — pede ao sistema operativo, através de uma chamada ao sistema (system call). É como tocar a campainha do gestor do prédio a pedir um serviço.

Um pouco de história — porque é que ficou assim

Nada disto foi inventado de uma vez. Vale a pena saber de onde vêm as ideias:

A grande lição da história é esta: cada geração escondeu a complexidade da anterior atrás de uma abstracção. Programas empilhados sobre o sistema operativo, sobre o código-máquina, sobre as portas lógicas, sobre os transístores, sobre os bits. Tu vais escrever no cimo desta torre — mas agora sabes que ela existe toda por baixo dos teus pés.

4 Como os computadores comunicam

Redes, a internet e o HTTP

Um computador sozinho já é espantoso. Mas o mundo de hoje faz-se de computadores a falar uns com os outros. Como é que uma mensagem sai do teu telemóvel e chega, em milissegundos, a um servidor do outro lado do planeta? Com regras. Muitas regras combinadas — a que chamamos protocolos.

Uma rede é só computadores ligados

Dois ou mais computadores ligados de forma a poderem trocar bits formam uma rede. Em tua casa, o router liga os teus aparelhos numa pequena rede local. Essa rede liga-se à do teu fornecedor de internet, que se liga a outras, que se ligam a outras… A internet é exactamente isto: uma rede de redes à escala do planeta. Não há um "computador central" — há milhões de redes que concordaram em falar a mesma língua.

Endereços IP — o número de porta de cada máquina

Para uma mensagem chegar ao destino certo, cada aparelho na rede precisa de um endereço, tal como as casas precisam de morada. Esse endereço é o IP (Internet Protocol). Parece-se com 142.250.184.14 — quatro números de 0 a 255 (repara: 0 a 255, os tais 8 bits do Módulo 1!). Há também o formato mais recente, IPv6, com muitos mais endereços, porque os antigos estão a esgotar-se.

Mas ninguém decora 142.250.184.14. Decoramos google.com. A tradução de nomes para IPs é feita por um serviço chamado DNS (Domain Name System) — a "lista telefónica" da internet. Quando escreves um endereço, o teu computador pergunta primeiro ao DNS "qual é o IP disto?" e só depois envia a mensagem.

E dentro da mesma máquina? Um IP chega ao computador certo, mas um computador corre muitos programas. Para saber a que programa entregar, usa-se também um número de porto (port). O IP é o prédio; o porto é o número do apartamento. Sites em HTTP usam tipicamente o porto 80, e em HTTPS (seguro) o porto 443.

Pacotes — a mensagem viaja aos bocados

Uma mensagem grande não viaja inteira. É partida em pacotes pequenos, cada um com o endereço de destino e um número de ordem. Os pacotes podem seguir caminhos diferentes pela rede e chegar desordenados — no fim, o computador de destino volta a juntá-los pela ordem certa. Se um se perde, é reenviado. Esta ideia (dividir, etiquetar, reenviar o que falha) é o que torna a internet tão robusta: não há um caminho único que, se falhar, deite tudo abaixo.

De organizar tudo isto tratam dois protocolos que trabalham em conjunto: IP (trata dos endereços e de encaminhar os pacotes) e TCP (Transmission Control Protocol, garante que chegam todos, por ordem e sem erros). Ouvirás falar deles juntos como TCP/IP.

Protocolos empilhados — cada um trata de uma coisa

Tal como as abstracções do Módulo 3, os protocolos organizam-se em camadas, cada uma a confiar na de baixo:

CamadaTrata de…Exemplo
Aplicaçãoa conversa que interessa ao programaHTTP
Transporteentregar tudo, por ordem, sem errosTCP
Redeencaminhar pacotes entre endereçosIP
Física / ligaçãoos bits no cabo ou no Wi-FiWi-Fi, Ethernet

Quando o teu programa envia um pedido HTTP, ele não pensa em cabos nem em pacotes. Confia que as camadas de baixo tratam disso — mais uma vez, abstracção. É a mesma ideia, agora aplicada à comunicação.

HTTP — a linguagem da Web

Chegámos ao protocolo que faz a Web funcionar: o HTTP (HyperText Transfer Protocol). É uma conversa muito simples entre duas partes:

Cada pedido tem um método que diz a intenção: GET (dá-me algo), POST (recebe estes dados meus), entre outros. E cada resposta traz um código de estado: o famoso 404 (não encontrado), 200 (tudo bem, aqui está), 500 (o servidor enganou-se).

Laboratório 9 · Simulador de pedido HTTP

Escolhe uma página e carrega em "Enviar pedido". Vê a conversa que acontece — de verdade — cada vez que abres um site.

GET
Junta tudo o que aprendeste. Quando escreves google.com e carregas Enter: o DNS traduz o nome num IP (Módulo 4); a mensagem é partida em pacotes e enviada por TCP/IP; chega a um servidor — um computador com CPU, RAM e disco (Módulo 2) — a correr um programa (Módulo 3) que percebe HTTP; esse programa lê um ficheiro (uma abstracção!) e devolve-o; o teu browser recebe os bits (Módulo 1) e desenha a página. Toda a torre a funcionar de uma vez, em menos de um segundo.

Verifica se percebeste

O que significa o código HTTP 404?

Estás pronto

E agora, o teu primeiro programa

Já não és alguém que "vai usar" um computador às cegas. Sabes o que se passa por baixo: bits, portas lógicas, uma CPU a buscar instruções, memória, abstracções, um sistema operativo a arbitrar, redes a transportar pacotes. Vais programar a saber o que estás a fazer.

Um primeiro programa costuma ser o mais simples de todos: mostrar uma mensagem no ecrã. Repara em como ele usa, sem alarde, tudo o que estudaste — tem saída, corre sobre um sistema operativo, e por baixo tornou-se binário antes de a CPU o executar:

# O clássico "Olá, mundo" — em Python
print("Olá, mundo!")

Uma linha só. Mas agora sabes a verdade: a palavra "Olá, mundo!" é guardada como bytes (Módulo 1); print é uma ordem que, lá no fundo, faz uma chamada ao sistema a pedir ao sistema operativo para escrever no ecrã (Módulo 3); e tudo isto corre na CPU e na RAM da máquina (Módulo 2).

Um passo em frente: um programa que recebe entrada, guarda estado, decide com lógica e produz saída — os quatro ingredientes do Módulo 3, todos numa mão-cheia de linhas:

# Pergunta a idade e responde de forma diferente conforme a resposta
idade = int(input("Quantos anos tens? "))   # entrada + memória

if idade >= 13:                              # lógica (uma decisão!)
    print("És oficialmente adolescente.")     # saída
else:
    print("Ainda faltam " + str(13 - idade) + " anos.")

Aquele if é uma decisão — e, lá no fundo, uma comparação feita pela ALU com as portas lógicas do Módulo 1. Nada aqui é magia. É tudo aquilo que já percebeste, vestido com palavras simpáticas.

O salto seguinte: instalar uma linguagem (Python é um óptimo início), escrever estas linhas num ficheiro .py, e mandá-lo correr. A partir daí, é experimentar: mudar valores, partir o programa de propósito para ver o que acontece, e voltar a arranjá-lo. Programar aprende-se a programar — mas tu vais fazê-lo com a vantagem enorme de saberes o que está por baixo.

Para escreveres e correres estes programas sem complicações, a forma mais simples é instalar o Jupyter — uma espécie de caderno digital onde escreves Python numa célula, carregas em Shift+Enter, e vês o resultado a aparecer logo por baixo. É ideal para experimentar: mudas uma linha, voltas a correr, e vês na hora o que acontece.

A maneira mais fácil de o teres é instalar a distribuição Anaconda — um pacote "tudo-em-um" que já traz lá dentro o Python, o Jupyter e centenas de ferramentas. O melhor: instala-se só para o teu utilizador, sem precisares de palavra-passe de administrador. Não te esqueças de falar com um adulto para obter permissão para instalar o Anaconda.

Instalar o Jupyter com o Anaconda (sem conta de administrador)

No Windows:

  1. Vai a anaconda.com/download e descarrega o instalador do Windows.
  2. Abre o ficheiro descarregado (.exe).
  3. Quando o instalador perguntar "Install for:", escolhe "Just Me (recommended)" — é esta opção que dispensa a conta de administrador.
  4. Carrega em Next até ao fim e depois em Finish.
  5. Abre o Anaconda Navigator (procura-o no menu Iniciar) e carrega em Launch por baixo do Jupyter Notebook.

No Mac:

  1. Vai a anaconda.com/download e descarrega o instalador gráfico do macOS (versão Apple Silicon se o teu Mac for recente, ou Intel se for mais antigo).
  2. Abre o ficheiro descarregado (.pkg).
  3. Carrega em Continue e, no passo "Destination Select", escolhe "Install for me only" — assim não te é pedida a palavra-passe de administrador.
  4. Segue até Install e, no fim, Close.
  5. Abre o Anaconda Navigator (na pasta Aplicações) e carrega em Launch por baixo do Jupyter Notebook.

É um download grande, por isso tem paciência enquanto instala. Quando abrires o Jupyter, ele aparece numa página do teu navegador: cria um caderno novo (New → Python 3), escreve print("Olá, mundo!") na primeira célula, carrega em Shift+Enter — e acabaste de correr o teu primeiro programa.

Glossário rápido (para consultar quando precisares)

Bit — o mais pequeno pedaço de informação: 0 ou 1.
Byte — 8 bits; representa 256 valores.
Porta lógica — circuito que combina bits segundo uma regra (AND, OR, NOT, XOR).
CPU — o processador; executa as instruções.
RAM — memória rápida e temporária de trabalho.
Programa — lista de instruções guardada na memória.
Variável — um nome que aponta para um valor guardado na memória.
Abstracção — uma forma simples de usar algo complicado sem ver o seu interior.
Ficheiro — abstracção que dá nome e ordem a bits guardados no disco.
Handle — etiqueta que representa um recurso aberto (como um talão).
Sistema operativo — o programa que gere o hardware e oferece abstracções.
IP — endereço de um aparelho na rede.
DNS — traduz nomes (google.com) em endereços IP.
Protocolo — conjunto de regras para dois computadores comunicarem.
HTTP — protocolo de pedidos e respostas da Web.