voltar

Se a IA escreve código melhor do que você, onde está o seu valor?

IA como ferramenta

Gerar código não é algo necessariamente novo; por anos utilizamos ferramentas dentro das nossas IDEs que nos ajudaram com isso, e aposto que em nenhum momento um programador se sentiu ameaçado por um language server. Quando os primeiros modelos de IA se popularizaram, especialmente com o ChatGPT 3, o código gerado era visto como ajuda, mas ainda havia pouca confiança e muita alucinação. A integração com as bases de código também era limitada por diversas restrições técnicas.

Coloco como um marco das ferramentas de IA para programação o lançamento do GitHub Copilot em 2021/2022. Apesar da adoção gradual pela comunidade, os resultados já impressionavam. Era, de fato, um copiloto dentro do seu código, com um auto-complete muito inteligente e útil para tarefas repetitivas e boilerplate. Ainda assim, era apenas um copiloto, limitado pela capacidade dos modelos. O ser humano permanecia no controle.

Avançando para os dias atuais, cerca de cinco anos depois, tornou-se praticamente impossível — e correndo o risco de este post ficar obsoleto em semanas — listar a quantidade de ferramentas de IA que escrevem código e geram aplicações completas. O salto de qualidade foi exponencial. Modelos especializados em programação surgiram, e ferramentas dedicadas integraram essas capacidades ao fluxo de trabalho, alterando profundamente a forma como entregamos software.

Choque de realidade

Agora vamos aos fatos: é uma verdade difícil de encarar — e, pessoalmente, me dói como programador — mas hoje qualquer IA de uma big tech escreve código melhor do que eu e do que você, leitor. Digo isso com tranquilidade. Se a disputa fosse apenas sobre quem escreve o melhor código, seria uma batalha desigual. Nós mesmos “armamos o inimigo” com nossas melhores armas: os modelos foram treinados com décadas de conhecimento acumulado, livros, artigos e o feedback constante de desenvolvedores.

Ainda assim, essa não é a batalha que lutamos, tão pouco a IA é inimiga dos programadores.

Desde que os modelos se especializaram em programação, a ideia de substituição aparece com frequência na mídia. Curiosamente, essas afirmações costumam vir de representantes das próprias big techs. O efeito disso recai, principalmente, sobre programadores em início de carreira, que passam a acreditar nesse discurso.

A boa notícia é simples: quem se mantém atualizado e desenvolve habilidades relevantes continua valioso. Por outro lado, quem limita sua atuação à escrita de código, sem curiosidade pelo negócio ou pelo impacto do que constrói, inevitavelmente será pressionado, com ou sem IA.

Não é interessante para as próprias empresas de IA que seus modelos substituam os programadores, afinal somos um dos maiores mercados consumidores. A IA deve ser encarada como ferramenta: mais um degrau de abstração na construção de software.

Você não é um digitador de código

Se a IA escreve código melhor e mais rápido, qual é então o papel do programador? O mesmo de sempre: resolver problemas.

A IA ajuda — e em alguns casos ajuda muito — na parte de transformar ideias em código funcional que resolve um problema específico. Mas essa é apenas uma parte do trabalho. Um bom modelo consegue analisar uma base de código, compreender regras e gerar implementações coerentes em poucos minutos. Isso reduz drasticamente o tempo entre idealização e resultado.

E esse é o ponto interessante: ao resolvermos o problema do tempo versus produção, ganhamos espaço para atuar em outras camadas do trabalho.

A definição do problema

Talvez o mais óbvio, e ainda assim frequentemente negligenciado, seja a definição do problema. Antes de qualquer linha de código, é preciso clareza. Delimitar se o problema é técnico ou organizacional, entender suas restrições, definir métricas e critérios de sucesso.

Uma especificação bem estruturada passa a ser não apenas útil, mas essencial. Ela serve de guia e também de limite para a IA trabalhar. Pensando assim, podemos escrever uma especificação estruturada, com sessões claras do que precisa ser feito. Sem essa definição, o risco deixa de ser a baixa produtividade e passa a ser a geração acelerada de soluções mal direcionadas.

Arquitetura, trade-offs e modelagem

A IA vai gerar o código, mas não vai lidar com as consequências arquiteturais ao longo dos próximos anos. Escrever funções é relativamente trivial, modelar o domínio é a parte complexa. É importante que o programador tenha um entendimento profundo do negócio para definir como representar suas regras, preservar invariantes, evitar acoplamentos desnecessários e garantir evolução sustentável exige entendimento profundo do contexto.

Decisões como monólito ou microsserviços, SQL ou NoSQL, priorizar performance ou custo não são resolvidas apenas com capacidade de geração de código. Elas exigem julgamento, experiência e compreensão do ambiente em que o sistema está inserido.

Integração entre áreas

Vejo cada vez mais o programador próximo de produto e negócio. Um profissional valioso não é aquele que apenas entrega features, mas aquele que entende o impacto do que está sendo construído.

Perguntas como:

  • Essa funcionalidade pode aumentar receita?
  • Reduz churn?
  • Melhora a experiência do usuário?
  • Diminui custo operacional?

passam a ser tão importantes quanto decisões técnicas.

Traduzir negócio para tecnologia, negociar escopo, defender decisões e priorizar corretamente tornam-se competências centrais.

Construindo sistemas e automatizando processos

Se a IA cuida da implementação, cabe ao programador estruturar o sistema como um todo. Isso envolve documentação clara, alinhamento entre times e registro das decisões tomadas. Também abre espaço para automatizar processos internos: criar ferramentas para reduzir tarefas repetitivas, melhorar observabilidade, acelerar onboarding e aumentar produtividade. Nesse cenário, o diferencial deixa de ser apenas escrever código e passa a ser construir sistemas que funcionem bem ao longo do tempo.

Mais tempo para outras coisas

O tempo ganho pode — e talvez deva — ser direcionado para crescimento. Estudar arquitetura com mais profundidade, construir produtos próprios, liderar iniciativas, mentorar desenvolvedores ou criar conteúdo técnico. A alavancagem deixa de estar apenas na velocidade de digitação e passa a estar na capacidade de enxergar o todo.

Segurança e refatoração

O conhecimento técnico de fundamentos, padrões e boas práticas não perde valor, ele apenas muda de aplicação. A IA ainda produz código com vulnerabilidades, decisões questionáveis e pontos cegos.

Eu conto que a qualidade do código gerado tende a melhorar, e esse será um problema superado nos próximos anos com uma boa engenharia de prompt. Mas, de qualquer forma, revisar, analisar impactos, avaliar segurança, observabilidade, resiliência e custos continua sendo responsabilidade humana. E quando identificar esses pontos, entender seus impactos e saber o que, como e quando refatorar.


Se a IA escreve código mais rápido, o valor do programador deixa de estar na sintaxe e passa a estar na decisão: o que deve existir, por que deve existir e quais consequências isso traz. O programador que só escreve código será pressionado; o programador que entende sistema, produto e negócio terá muito espaço para crescer.

Essa não é a primeira vez que a profissão passa por um deslocamento desse tipo. Compiladores substituíram código de máquina, frameworks abstraíram complexidades repetitivas, a computação em nuvem eliminou a necessidade de gerenciar infraestrutura física. Em cada uma dessas transições, parte do trabalho deixou de ser diferencial. O que permaneceu relevante foi a capacidade de compreender problemas e tomar decisões responsáveis.

Nesse cenário, escrever código já deixou de ser o centro da profissão. O centro volta a ser aquilo que sempre foi essencial: pensar sistemas, resolver problemas e compreender o impacto. Quem compreender essa mudança não apenas se adapta, mas evolui junto com ela.