Skip to content
Fase 8Fronteira Tecnológica

IA Aplicada a Coding

Progresso da fase0%

A carregar…

Já sabes lógica, JavaScript, dados persistentes e controlo de versões — o suficiente para construir algo real sozinho. Esta fase final ensina-te a trabalhar com ferramentas de IA modernas (agentes de coding, não só autocomplete) de forma que aceleram o teu trabalho sem te tornarem dependente delas nem te deixarem sem perceber o que o teu próprio código faz.

Prompt recomendado para esta fase

Já entendo os fundamentos de programação das fases anteriores (lógica, JavaScript, bases de dados, Git). Quero usar-te como copiloto para acelerar um projeto, mas sem perder o controlo. Antes de gerares qualquer código, faz-me perguntas para esclarecer requisitos, propõe a arquitetura e pede a minha confirmação, e explica as decisões de design importantes à medida que avançamos.

Conteúdos teóricos

5 temas

1. Agentes de coding: o que mudou

De autocomplete de uma linha a colaboradores que leem, editam e correm o teu projeto inteiro.

Há poucos anos, "IA para programar" significava sugestões de autocomplete — terminar a linha que já estavas a escrever. Ferramentas como Claude Code, Cursor ou GitHub Copilot mudaram isso: hoje um agente de coding consegue ler ficheiros inteiros do teu projeto, propor e aplicar alterações em vários ficheiros ao mesmo tempo, correr comandos no terminal, e até testar o resultado — tudo dentro de uma conversa.

A diferença entre "autocomplete" e "agente"

  • Autocomplete: sugere a continuação do que já escreveste, uma linha ou um pequeno bloco de cada vez. Tu manténs o controlo total, decisão a decisão.
  • Agente: recebe um objetivo em português ("adiciona um botão de exportar dados a este ecrã"), decide sozinho que ficheiros precisa de ler e alterar, faz as alterações, e reporta o resultado. Tu supervisionas o resultado final, não cada linha.

Nenhuma das duas formas substitui a outra — vais usar as duas consoante o problema. Um erro de sintaxe pequeno pede autocomplete; uma funcionalidade nova que toca em vários ficheiros pede um agente.

Porque isto não substitui saberes programar

Um agente de coding é tão bom quanto a supervisão que lhe dás. Se não perceberes lógica, tipos, estruturas de dados ou o que um erro significa, não vais conseguir avaliar se o que o agente produziu está correto, seguro, ou sequer a resolver o problema certo — só vais poder "esperar que funcione". Tudo o que aprendeste nas fases anteriores é exatamente o que te permite usar estas ferramentas com critério, em vez de às cegas.

2. MCP e Skills: ligar a IA a ferramentas externas

Como um agente vai além de gerar texto e passa a agir sobre sistemas reais.

Por si só, um modelo de IA só sabe gerar texto — não pode, sozinho, aceder à tua base de dados, ao teu terminal, ou a um serviço externo como o GitHub. É aí que entram os protocolos que ligam o modelo a ferramentas.

MCP (Model Context Protocol)

O MCP é um protocolo aberto que permite a um agente de IA ligar-se a serviços externos — uma base de dados, um sistema de ficheiros, uma API — de forma padronizada. Em vez de cada ferramenta ter de ser integrada à mão numa aplicação de IA específica, um servidor MCP expõe as suas capacidades de uma forma que qualquer agente compatível consegue usar. Na prática, isto significa que podes ligar o teu assistente de IA diretamente a, por exemplo, um repositório Git, uma base de dados, ou um sistema de gestão de tarefas, e pedir-lhe para agir sobre esses sistemas dentro de uma conversa.

Skills: instruções reutilizáveis para tarefas específicas

Uma skill é um pacote de instruções (e por vezes scripts ou ficheiros de referência) que ensina um agente como fazer bem uma tarefa específica e recorrente — por exemplo, como criar um relatório num formato específico, ou como seguir o estilo de código de um projeto em particular. Em vez de repetires as mesmas instruções detalhadas em cada conversa, uma skill fica disponível e é usada automaticamente quando relevante.

O que isto significa para ti agora

Não precisas de dominar como construir um servidor MCP ou uma skill nesta fase — precisas de saber que estas peças existem, e que é isso que torna um agente de coding capaz de fazer mais do que "só conversar": ligar-se a ferramentas reais é o que separa um chatbot de um verdadeiro colaborador técnico.

3. Escolher o modelo certo para cada tarefa

Nem toda a tarefa precisa do modelo mais caro e mais lento — aprender a escolher poupa tempo e dinheiro.

Os fornecedores de IA (Anthropic, OpenAI, Google, entre outros) costumam oferecer vários modelos, com diferenças reais de velocidade, custo e capacidade. Escolher bem não é só "usar sempre o mais avançado" — é escolher o que serve a tarefa.

Três fatores a pesar

  1. Complexidade da tarefa. Corrigir um erro de sintaxe ou renomear uma variável não precisa do modelo mais capaz disponível — um modelo mais pequeno e rápido resolve isso perfeitamente. Planear a arquitetura de um sistema com várias partes interligadas, ou depurar um bug subtil e raro, beneficia de um modelo mais capaz.
  2. Velocidade necessária. Se estás a iterar rapidamente (testar pequenas variações, várias vezes seguidas), um modelo mais rápido mantém-te no ritmo. Se a tarefa é única e importante, vale a pena esperar mais por uma resposta mais cuidada.
  3. Custo. Modelos mais capazes custam tipicamente mais por uso. Para tarefas repetitivas em grande volume, isso soma-se rapidamente — vale a pena reservar o modelo mais caro para o que realmente precisa dele.

Um hábito prático

Antes de pedires ajuda numa tarefa, pergunta-te: "isto é uma correção mecânica, ou uma decisão que exige raciocínio?" Tarefas mecânicas (formatar, renomear, traduzir um erro simples) servem-se bem de ferramentas rápidas e baratas. Decisões de arquitetura, debugging complexo ou código com implicações de segurança merecem o modelo mais cuidadoso que tiveres disponível — e, mesmo assim, a tua própria revisão final.

4. Como pedir bem: prompt engineering para código

A qualidade da resposta de uma IA depende diretamente da qualidade do que lhe pedes.

Um pedido vago produz uma resposta genérica; um pedido específico produz uma resposta útil. Isto não é diferente de pedir ajuda a um colega: "o meu código não funciona" ajuda muito menos do que "esta função devia devolver a lista ordenada por data, mas está a devolver undefined — aqui está o código e o erro exato".

Os quatro ingredientes de um bom pedido técnico

  1. Contexto. Em que fase estás, que tecnologias estás a usar, o que já tentaste.
  2. O problema exato. Cola o código relevante e a mensagem de erro completa (lembra-te da Fase 0: onde, o quê, que tipo de erro).
  3. O comportamento esperado vs o observado. "Esperava X, mas está a acontecer Y."
  4. Restrições. Se não queres que a IA reescreva tudo, ou queres manter um determinado estilo, diz isso explicitamente — sem essa informação, a IA não tem como adivinhar.

Itera em vez de pedir tudo de uma vez

Para problemas complexos, é normalmente melhor pedir em passos: primeiro pede um plano ou uma explicação da abordagem, confirma que faz sentido, e só depois pedes a implementação. Isto é exatamente o que os prompts desta plataforma (como o desta fase, no topo da página) te pedem para fazeres — e é um hábito que vais levar para qualquer ferramenta de IA que uses no futuro.

O que NÃO pedir

Evita pedir "resolve isto todo" para problemas que ainda não decompuseste tu mesmo, mesmo que informalmente. Se não consegues descrever o problema em 2-3 frases claras, provavelmente ainda não o percebeste bem o suficiente para avaliar se a resposta da IA está certa — volta primeiro ao pseudocódigo da Fase 1.

5. Construir projetos reais com IA, sem perderes o controlo

Um fluxo de trabalho para usar IA em projetos maiores sem acabares sem perceber o teu próprio código.

Quando um agente de coding pode gerar centenas de linhas em segundos, o risco real não é "a IA enganar-se" — é tu deixares de perceber o que o teu próprio projeto faz. Este tema propõe um fluxo de trabalho para evitar isso.

1. Planeia antes de gerar

Descreve a funcionalidade, discute a arquitetura (que ficheiros, que estrutura de dados, que rotas), e só depois pedes a implementação. É o mesmo princípio da Fase 1: pseudocódigo antes de código.

2. Revê tudo o que for gerado, linha a linha

Não aceites alterações que não consegues explicar por palavras tuas. Se uma função gerada por IA usa algo que não reconheces, pergunta o que faz antes de a aceitares — é exatamente a mesma disciplina de leitura de código que praticaste desde a Fase 0.

3. Testa incrementalmente

Não peças "constrói a aplicação inteira" de uma vez. Pede uma parte, testa-a, confirma que funciona, e só depois avanças para a seguinte — os mesmos hábitos de tabela de teste e verificação manual que praticaste ao longo de todo este plano continuam a aplicar-se, agora a código que não escreveste tu mesmo à mão.

4. Usa Git como rede de segurança

Faz commit do teu código antes de pedires uma alteração grande a um agente. Se o resultado não for o que esperavas, tens sempre a versão anterior a um git checkout de distância (Fase 7). Isto elimina o medo de "experimentar" e permite-te ser mais ambicioso nos pedidos.

O desafio final: mini-SaaS

O último exercício desta fase pede-te para planear e construir uma pequena aplicação completa — com frontend, backend e base de dados — usando IA como copiloto do início ao fim, mas seguindo exatamente este fluxo. É o teste real de tudo o que aprendeste nesta plataforma: se conseguires supervisionar esse processo com confiança, já não estás a aprender a programar — já estás a programar.

Exercícios práticos

4 exercícios
Fácil

Exercício Fácil — Escrever um Prompt Técnico Estruturado

Pega num conceito que já aprendeste e escreve um pedido de explicação seguindo os quatro ingredientes do tema 4.

FerramentasAssistente de IA à escolha

Objetivo: praticar formular um pedido técnico completo, em vez de perguntas vagas do tipo "explica-me loops".

Passos a realizar

  1. Escolhe um conceito de uma fase anterior que ainda sintas menos firme (ex: arrow functions, chaves estrangeiras, merge de branches).
  2. Escreve um prompt, num ficheiro prompt-tecnico.md dentro de fase8, que inclua explicitamente: contexto (em que fase estás e o que já sabes), o que especificamente não percebes, um exemplo concreto do teu próprio código anterior relacionado com o conceito, e uma restrição (ex: "explica com um exemplo diferente do que já vi na plataforma").
  3. Usa esse prompt de verdade num assistente de IA à tua escolha.
  4. Compara a resposta com uma que obtivesses só perguntando "o que são arrow functions?" — nota as diferenças de profundidade e relevância.
  5. Escreve, no mesmo ficheiro, duas frases sobre o que mudou na qualidade da resposta.

Dicas úteis

  • Um bom prompt técnico não precisa de ser longo — precisa de ser específico. Duas frases bem escolhidas valem mais do que um parágrafo vago.
  • Incluir um exemplo do teu próprio código (mesmo que pequeno) ajuda imenso a IA a responder no contexto certo, em vez de genericamente.

Erros comuns

  • Escrever um pedido sem incluir nenhum dos quatro ingredientes, e depois julgar a ferramenta pela resposta genérica que recebeste.
  • Pedir explicações sobre um conceito sem primeiro tentares, mesmo que mal, explicá-lo com as tuas próprias palavras — perdes a oportunidade de identificar exatamente onde está a tua dúvida real.

As minhas dúvidas

Médio

Exercício Médio — Depuração Assistida por IA

Provoca um erro real num projeto de uma fase anterior e usa IA para o diagnosticar, sem pedires logo a correção.

FerramentasAssistente de IA à escolhaVS Code

Objetivo: praticar pedir diagnóstico antes de correção — uma das competências mais valiosas ao trabalhar com IA.

Passos a realizar

  1. Volta a um exercício de uma fase anterior (ex: a calculadora da Fase 4, ou a API da Fase 6) e introduz de propósito um bug subtil — algo que não seja um erro óbvio de sintaxe, mas sim um erro de lógica (ex: uma condição com o operador errado, um índice fora de posição).
  2. Escreve um prompt que descreva o comportamento esperado vs o observado, cole o código relevante, mas peça explicitamente à IA: "não corrijas ainda — explica-me primeiro o que achas que está a acontecer, e faz-me perguntas se precisares de mais contexto".
  3. Lê a explicação da IA e tenta, tu mesmo, localizar a linha exata do problema antes de pedires a correção.
  4. Só depois pede a correção, e compara com o que tinhas identificado sozinho.
  5. Escreve num ficheiro debug-assistido.md um resumo: o bug era o que pensavas? A explicação da IA ajudou-te a perceber algo que não tinhas visto?

Fluxo de funcionamento

  1. 1Introduzir bug de propósito
  2. 2Pedir diagnóstico, não correção
  3. 3Tentar localizar sozinho
  4. 4Só depois pedir a correção

Dicas úteis

  • Pedir diagnóstico antes de correção treina-te a ler explicações de erro com mais atenção — a mesma competência que praticaste na Fase 0, agora com um colaborador de IA.
  • Se a IA pedir mais contexto (o que deve acontecer, se o prompt estiver bem escrito), responde com o máximo de detalhe possível — é o sinal de que o pedido está a funcionar como deveria.

Erros comuns

  • Pedir logo "corrige isto" sem tentares perceber o diagnóstico primeiro, perdendo o objetivo pedagógico do exercício.
  • Introduzir um bug demasiado óbvio (ex: um erro de sintaxe), que não exige raciocínio nenhum para diagnosticar.

As minhas dúvidas

Difícil

Exercício Difícil — Planear uma Arquitetura Antes de Codificar

Usa IA para planear, sem gerar código, a arquitetura completa de uma pequena aplicação.

FerramentasAssistente de IA à escolhaVS Code

Objetivo: praticar a disciplina de planear antes de gerar — o primeiro passo do fluxo de trabalho do tema 5, isolado como exercício próprio.

Passos a realizar

  1. Escolhe uma ideia simples de aplicação com frontend, backend e base de dados (ex: uma lista de filmes para ver, um rastreador de hábitos, um livro de visitas).
  2. Usando o prompt do topo desta fase como ponto de partida, pede a um assistente de IA para planear a arquitetura — mas instrui-o explicitamente a não gerar código nenhum nesta conversa, só a estrutura.
  3. Confirma que o plano final inclui: a estrutura de pastas, o esquema das tabelas da base de dados (colunas e tipos), a lista de rotas da API (método HTTP + caminho + o que faz), e pelo menos 3 perguntas de esclarecimento que a IA te devia ter feito antes de avançar (se ela não perguntou nada, pede-lhe agora para o fazer).
  4. Responde a essas perguntas de esclarecimento tu mesmo, como se fosses o cliente do projeto.
  5. Guarda o plano final num ficheiro plano-arquitetura.md dentro de fase8 — não implementes nada ainda, este exercício termina no plano.

Dicas úteis

  • Um bom plano de arquitetura é o equivalente, à escala de um projeto inteiro, ao pseudocódigo que escreveste na Fase 1 para um único algoritmo — a mesma disciplina, maior escala.
  • Se a IA avançar direto para código apesar de teres pedido só o plano, repete o pedido reforçando a restrição — é normal precisares de insistir uma vez.

Erros comuns

  • Aceitar um plano vago ("terás uma base de dados com os dados necessários") em vez de exigir detalhe concreto (nomes de colunas, tipos, rotas exatas).
  • Saltar a parte de responder às perguntas de esclarecimento, perdendo a oportunidade de o plano refletir decisões que só tu podias tomar.

As minhas dúvidas

Difícil

Desafio Final — Constrói um Mini-SaaS do Zero

O projeto que fecha o plano inteiro: planear, construir, testar e documentar uma aplicação completa com apoio de IA.

FerramentasVS CodeTerminalNode.jsExpressbetter-sqlite3GitGitHubAssistente de IA à escolha

Este é o exercício culminante de todo o plano de estudos. Vais construir uma aplicação pequena mas completa — com frontend, backend, base de dados e controlo de versões — combinando tudo o que aprendeste desde a Fase 0, com um agente de IA como copiloto, seguindo o fluxo de trabalho do tema 5.

Passos a realizar

  1. Escolhe uma ideia simples e com âmbito bem definido (evita "uma rede social" — escolhe algo do tamanho da lista de filmes ou do rastreador de hábitos do exercício anterior).
  2. Planeia primeiro, sem gerar código, tal como praticaste no exercício anterior: estrutura de pastas, esquema da base de dados, rotas da API.
  3. Cria o repositório Git logo no início (Fase 7), com um .gitignore adequado, e faz commits pequenos e frequentes à medida que avanças — nunca um único commit gigante no fim.
  4. Constrói por partes, testando cada uma antes de avançar: primeiro a base de dados e as rotas da API (Fase 6), depois o frontend a consumi-las (Fase 5). Em cada parte, revê o código gerado pela IA linha a linha antes de o aceitares.
  5. Adiciona pelo menos uma validação de dados no backend (Fase 2 e Fase 6) e trata pelo menos um caso de erro visivelmente no frontend (ex: mensagem clara se um pedido falhar).
  6. Publica o projeto final no GitHub (Fase 7), com um README que explique o que a aplicação faz e como a correr localmente.
  7. Escreve uma reflexão final, num ficheiro reflexao-final.md: que decisões tomaste tu, que partes a IA gerou, e onde tiveste de corrigir ou rejeitar uma sugestão dela.

Fluxo de funcionamento

  1. 1Planear arquitetura (sem código)
  2. 2Git init + primeiro commit
  3. 3Construir por partes, testando cada uma
  4. 4Publicar no GitHub + reflexão final

Dicas úteis

  • Este projeto não precisa de ser original ou impressionante — precisa de ser teu, no sentido de conseguires explicar cada parte dele sem hesitar.
  • Se sentires que "a IA está a andar mais depressa do que eu consigo perceber", é o sinal para abrandares e pedires explicações antes de continuar — exatamente o comportamento que treinaste ao longo desta fase.

Erros comuns

  • Pedir a aplicação inteira de uma vez a um agente de IA, sem planeamento nem revisão por partes, e acabar com código que funciona mas que não sabes explicar.
  • Publicar no GitHub sem um .gitignore adequado, ou sem um README que explique o projeto a alguém que o veja pela primeira vez.

As minhas dúvidas