Como Programar com AI Sem Ficar Dependente Dela
Ouvir o artigo (experimental) · 08:13

Tornou-se, sem alarido, uma das perguntas mais comuns que um programador faz em voz alta: como é que programo sem ficar completamente dependente da AI? Quem pergunta é, muitas vezes, quem menos se esperaria. Um estudante de informática que passa nos exames de teoria mas construiu todos os projetos a sério com um modelo ao lado, e que agora não consegue escrever uma função sem recorrer a ele. Um engenheiro no ativo que repara, numa tarde qualquer, que há semanas não escreve uma linha sem ajuda. A resposta do costume chega depressa e quase unânime, e está certa para exatamente um tipo de pessoa e errada para quase toda a gente que pergunta.
A resposta é: tirar a muleta.
Cancela a subscrição. Desinstala-a. Programa offline, como se fosse 2010. As metáforas não se fazem esperar, e algumas são boas. Rodinhas de apoio aparafusadas à única bicicleta que tens. Copiar num exame. Uma calculadora. A versão mais afiada disto: a AI era uma cadeira de rodas de que nunca precisaste, os teus músculos de programação atrofiaram, e a única forma de os voltar a fortalecer é carregar o peso tu mesmo.
Se és um estudante a aprender fundamentos, esse conselho está correto e não o vou suavizar. Não se constrói um modelo mental de um problema se for uma máquina a construir a solução de cada vez. A versão mais cuidadosa do aviso nomeia o verdadeiro perigo com precisão: o problema não é usar AI, é deixar a AI saltar a parte em que o teu cérebro constrói o modelo do problema. Para essa pessoa, a muleta tem de sair, porque o objetivo do exercício nunca foi o programa a funcionar. Foram as ligações que crias enquanto o produzes.
Mas a maioria das pessoas que faz esta pergunta não vai tornar-se gente que nunca toca em AI. Vão tornar-se profissionais cujo trabalho é, cada vez mais, dirigi-la. E para eles, usar menos AI não é uma resposta. É uma tática dilatória que adia a verdadeira pergunta por um ano.
A verdadeira causa
Aqui está o que as metáforas da muleta não veem.
A dependência não é causada pela AI escrever o teu código. É causada pela AI escrever código que nunca transformaste em compreensão.
Convém dizer de que lado estou, porque não é o da abstinência. Passei os últimos meses a construir ferramentas de AI: uma pipeline que transforma uma frase num plano e abre os seus próprios pull requests, um plano de controlo que gere frotas de agentes. Uso estas ferramentas todos os dias e não vou dar lições de pureza a ninguém. Mas todas elas assentam numa única regra que nada tem a ver com a quantidade de AI que usas: ninguém faz merge daquilo que não consegue explicar.
Essa regra é toda a diferença entre usar uma ferramenta e depender dela. Por baixo das metáforas, vai sempre surgindo um ponto mais difícil. Imagina o programador que só usa AI a pôr código gerado num sistema de produção real, a vê-lo rebentar, e a ter de arranjar código que nunca percebeu. E a gabarolice popular de que se pode pôr a AI a construir a aplicação inteira sem eu contribuir com nada desfaz-se ao primeiro toque: continuas a fornecer as restrições e a rever o resultado, portanto estás a contribuir, e se de facto não o estás a rever, és tu mesmo a lançar as falhas de segurança. O custo da dependência não é teres usado AI. É não conseguires arranjar, às duas da manhã, aquilo que tem o teu nome no commit.
Porque a analogia da calculadora falha
A comparação a que as pessoas recorrem é a calculadora. As calculadoras não impediram ninguém de aprender aritmética, então porque haveria a AI de impedir alguém de aprender a programar?
Porque uma calculadora devolve uma resposta em que podes confiar. Sete vezes oito é cinquenta e seis, quer percebas isso quer não. Um LLM devolve uma resposta que tens de verificar. É toda a diferença, e corre no sentido oposto ao do consolo: significa que a compreensão importa mais na era da AI, não menos. A calculadora deixou-te parar de perceber aritmética porque nunca estava errada. O modelo de linguagem não te pode deixar parar de perceber código, porque és o revisor dele, e um revisor que não percebe aquilo que está a ler não está a rever coisa nenhuma.
A disciplina que funciona mesmo
Portanto o objetivo não é menos AI. É manteres a posse daquilo que a dependência te tira. Na prática é uma lista curta, e grande parte dela ecoa os melhores conselhos que qualquer pessoa dá.
Escreve a primeira versão à mão. Constrói tu mesmo a versão feia e lenta, e depois deixa a AI comparar, criticar ou refatorá-la. A luta não é um atrito no caminho da aprendizagem. É o lugar onde o modelo do problema se forma.
Usa-a como o sénior sentado ao teu lado, não como as tuas mãos. A forma mais útil de o dizer é: um mentor, não um programador estagiário. Questiona o que ela te dá, exige os links, e depois vai ler tu mesmo a documentação. No momento em que se torna as tuas mãos em vez do teu conselheiro, deixaste de ser dono da competência e começaste a alugar o resultado.
Nunca faças merge daquilo que não consegues explicar. É esta a regra toda, e é aplicável. Se não consegues explicar a um colega porque é que o código gerado funciona, ainda não é teu. É uma responsabilidade que assinaste.
Torna a revisão real. Escrevi noutro artigo que, ao fim de aprovações suficientes, deixas de ler, e um portão que não lês não é um portão. O mesmo é verdade para uma só pessoa a um teclado: o diff que aceitas sem perceber é exatamente a linha onde a dependência começa.
O compromisso mais lúcido que já ouvi alguém descrever é um barbell: escrever e depurar tudo à mão, exceto sob prazo apertado ou em scripts descartáveis, onde recorres à AI com plena consciência de que isso acumula dívida técnica e te torna um pouco mais burro. Gosto mais dessa postura do que de qualquer pureza. O objetivo nunca foi fingir que a AI não existe. É saber com precisão o que trocaste, e ser capaz de o comprar de volta.
O que é, de facto, o músculo
As pessoas que te dizem para cancelares a subscrição estão a proteger algo real: a força que só consegues construir fazendo tu mesmo a parte difícil. Têm razão quando dizem que a constróis à mão, e razão quando dizem que atrofia quando é uma máquina a carregar o peso por ti.
Mas o músculo que impede um programador em atividade de ficar dependente não é a capacidade de produzir código sem ajuda. É o discernimento para saber quando a ajuda está errada. Isso ganha-se da mesma forma que se ganha qualquer discernimento: percebendo o que a máquina escreveu, todas as vezes, antes de passar a ser teu.
Portanto usa toda a AI que quiseres. Só nunca lances uma linha que não fosses capaz de apanhar.
Perguntas a que este artigo responde
Como programar com AI sem ficar dependente dela?
Não é usando menos. É manteres a posse da compreensão: escreve à mão a primeira versão feia, porque é aí que o modelo do problema se forma, usa a ferramenta como o sénior sentado ao teu lado e não como as tuas mãos, e nunca faças merge daquilo que não consegues explicar. A dependência começa no diff que aceitas sem perceber, não no momento em que abres o chat.
Como sei se estou mesmo dependente da AI ou só a usar bem a ferramenta?
O teste é conseguires arranjar aquilo às duas da manhã, quando rebenta o que tem o teu nome no commit. Se não consegues explicar a um colega porque é que o código gerado funciona, ainda não é teu, é uma responsabilidade que assinaste. A medida não é produzires código sem ajuda. É apanhares o erro quando ele lá está.
A AI não é só a calculadora dos nossos dias?
Não, e a diferença corre no sentido oposto ao do consolo. Uma calculadora devolve uma resposta em que podes confiar, porque sete vezes oito é cinquenta e seis quer percebas isso quer não, enquanto um modelo de linguagem devolve uma resposta que tens de verificar. Isso faz de ti o revisor dele, e um revisor que não percebe aquilo que está a ler não está a rever coisa nenhuma.
Posso simplesmente deixar o modelo escrever tudo e lançar assim?
Sob prazo apertado ou em scripts descartáveis, sim, numa postura de barbell: tudo o resto escreves e depuras à mão, e recorres à ferramenta com plena consciência de que isso acumula dívida técnica. A gabarolice de que a AI constrói a aplicação inteira sem contribuíres com nada desfaz-se ao primeiro toque, porque continuas a fornecer as restrições e a rever o resultado, e se de facto não o estás a rever, és tu mesmo a lançar as falhas de segurança.
Ler a seguir
AIAndas a Correr Atrás de Ferramentas. A Competência Está Por Baixo.
A ferramenta sobre a qual discutes é a parte que trocas num dia. Ninguém pergunta pela parte que levou anos.
AIQuando a IA tem de filmar a sua própria revisão
Quando é aberto um pull request, meu ou um que tenho de rever, passei a pedir ao agente que o corra na minha máquina, que tente parti-lo e que se filme a fazê-lo. Um parágrafo pode afirmar que houve um teste. Uma gravação tem de o mostrar, e decidir o que isso significa continua a ser trabalho meu.