- No início, havia a expectativa de que a combinação júnior + IA já seria suficiente para produzir código de alta qualidade, mas, na prática, a combinação sênior + IA tem funcionado de forma muito mais poderosa
- A IA é eficaz para geração de boilerplate, automação de tarefas repetitivas e experimentação e validação rápidas, mas extrair valor real disso é mais fácil para seniores do que para juniores
- Por outro lado, em áreas como code review, projeto de arquitetura, gestão da qualidade do código e questões de segurança, a IA mostra seus limites, e a combinação de júnior com IA pode até criar mais riscos
- Por isso, a IA tem sido usada de forma mais adequada em prototipagem rápida, otimização de tarefas repetitivas, apoio a trabalhos multidisciplinares e automação de testes de funcionalidades
- No fim das contas, a IA ainda atua como uma ferramenta para ampliar a capacidade dos seniores e, no curto prazo, em vez de substituir juniores ou gerar um efeito de democratização, o que se vê é uma concentração de poder centrada nos especialistas
Mudanças que a IA trouxe ao desenvolvimento
- No ambiente de desenvolvimento de software, a pergunta "a programação será totalmente substituída pela IA?" continua sendo levantada
- No começo, havia muita narrativa de que, se IA e desenvolvedores juniores trabalhassem juntos, o papel dos seniores diminuiria e a eficiência das organizações aumentaria
- Mas, no campo real, ao contrário do que se esperava, a combinação júnior + IA tem entregado menos valor para as empresas do que a combinação sênior + IA
Em que a IA é boa e quais são seus limites
-
Pontos fortes da IA
- Processa rapidamente a geração de boilerplate e scaffolding, aumentando a produtividade
- Automatiza tarefas repetitivas e rotineiras, acelerando o desenvolvimento
- Oferece um ambiente experimental para testar e validar rapidamente diferentes formas de implementação
- É eficaz para lançamento rápido de features, desde que o que é necessário esteja claro
- Na prática, esse tipo de trabalho oferece a melhor eficiência para desenvolvedores seniores experientes
- Juniores também podem usar, mas é muito difícil obter o mesmo efeito
-
Limites e fragilidades da IA
- Em code review, a capacidade de raciocínio lógico da IA é insuficiente
- Quando surgem edge cases, a intervenção de um sênior experiente ainda é indispensável
- Na escrita de prompts, obter resultados realmente bons exige alto nível de compreensão e conhecimento
- Quando falta conhecimento, a qualidade do resultado cai e o risco de bugs aumenta
- Em projeto de arquitetura, a IA ainda é insuficiente
- Projetar uma estrutura robusta exige raciocínio humano de alto nível, e projetos desenhados por IA correm grande risco de cair em dívida técnica
- Há fraquezas na gestão da qualidade do código (abstrações adequadas, uso de design patterns etc.)
- Em termos de segurança, a combinação júnior + IA pode gerar vulnerabilidades com frequência
- Quando há um sênior, algum nível de cautela e prevenção é possível
- Há possibilidade de aprendizado incorreto: se o código não for avaliado corretamente, o código gerado pela IA pode acabar causando prejuízos à organização
- Por esses motivos, hoje a IA não é uma ameaça para desenvolvedores seniores, mas sim uma ferramenta que aumenta fortemente sua produtividade
- Não se trata de criticar desenvolvedores juniores, e sim de evitar expectativas excessivas e colocá-los em situações arriscadas
Áreas em que a IA é mais adequada
- Prototipagem rápida: adequada para acelerar experimentos de ideias e velocidade de implementação
- Automação de tarefas rotineiras repetitivas: tem grande efeito em acelerar rotinas já bem conhecidas
- Colaboração multidisciplinar: útil para sugerir métodos ou bibliotecas de áreas menos conhecidas e conectar diferentes domínios
- Geração de testes de função: adequada para automação e validação de código simples e de baixo risco
Conclusão e implicações
- O código escrito por IA ainda precisa ter cada linha revisada por humanos e apresenta características não determinísticas (non-deterministic)
- É difícil confiar totalmente à IA até mesmo o código de testes para verificação de programas
- Assim como na dúvida "se a IA responde ‘não sei’, será que ela realmente não sabe?", ainda existem limites na percepção e na verificação feitas pela IA
- A combinação júnior + IA não passou de uma ilusão de redução de custos e, na prática, o foco ficou na ampliação da capacidade dos seniores
- O desenvolvimento de software, ao contrário da construção civil, ainda está em uma fase imatura em que até mesmo os arquitetos escrevem código diretamente
- A pressão por redução de custos acaba enfraquecendo o valor dos desenvolvedores e provocando desgaste
- Por enquanto, em vez de substituir juniores ou democratizar o desenvolvimento, a IA está se consolidando como uma ferramenta de apoio centrada em especialistas (seniores)
- O futuro da IA é promissor, mas, no curto prazo, é necessário reajustar as expectativas
2 comentários
Comentários do Hacker News
Muitas vezes os juniores nem percebem que estão se afundando nas alucinações geradas por LLMs
No meu caso, um júnior tentou fazer deploy de um módulo Terraform que eu já tinha projetado, mas a tarefa se arrastou por tanto tempo que fui verificar o estado
Esse júnior disse que havia um problema e pediu para eu dar uma olhada
Quando abri o repositório, estava uma bagunça. Ficava óbvio que o Claude tinha conduzido tudo na direção errada
Perguntei: "por que tem tantos arquivos Python aqui? O módulo já inclui tudo isso" e ele respondeu: "eu também não sei, o Claude mandou fazer assim"
O júnior tinha pouca experiência e dependia demais de ferramentas LLM. Era assim em design, implementação e resolução de problemas
Se você não consegue distinguir quando o LLM está falando besteira, acaba caindo num pântano sem fim
Por outro lado, LLMs reduziram bastante várias tarefas repetitivas que eu realmente detestava fazer
Eu percebo rapidamente quando um LLM começa a sair do rumo e corto isso na hora
Na verdade, isso até reacendeu meu entusiasmo por programar e construir software
Como resultado, minha produtividade aumentou e o resultado final também ficou melhor
Ouvir a resposta "eu também não sei, foi o Claude" é realmente frustrante
Eu sou o tipo de revisor que lê o código de verdade e faz perguntas detalhadas, e tanto juniores quanto sêniors falam isso com a maior naturalidade
Fazer push de código que você mesmo não entende é um enorme risco para a equipe, para o produto e para a empresa
"Eu também não sei, foi o Claude" é um sinal de alerta enorme
Não tem problema não saber, e claro que também não tem problema usar LLM para preencher lacunas
O ideal seria a pessoa se abrir e perguntar algo como: "estou com dificuldades, tenho esse código gerado, mas não entendo bem o que está acontecendo; você pode ver se estou indo na direção certa?"
O problema é não ligar para isso e ainda esconder até um sênior perguntar diretamente
Esse tipo de tarefa simples e repetitiva que você odeia é justamente uma ótima porta de entrada para juniores aprenderem a estrutura do sistema
Dizer "eu também não sei, foi o Claude" é igual à pessoa que culpa a serra quando acontece um acidente no trabalho
A chave para usar LLMs com eficiência e evitar alucinações é capacidade de leitura de código e intuição
Juniores tendem mais a recorrer ao LLM do que a esperar resposta de e-mail ou juntar várias abordagens diferentes
Agora que nem precisa mais esperar e-mail, fica ainda mais difícil resistir à tentação
Mas, desse jeito, a pessoa perde a noção da direção e cai num labirinto de alucinações sem entender nem como aquilo funciona
O melhor código que fiz com LLM foi quando eu mesmo desenhei a estrutura e deixei o LLM gerar a base, enquanto eu orientava as correções e ia adicionando funcionalidades
Nesse processo, o LLM errava com frequência, e eu ia corrigindo
Quando o desempenho ficava lento, eu mesmo fazia profiling e instruía o LLM a otimizar
No fim, o código resultante era um código que eu conhecia por dentro e por fora
Se eu tivesse escrito tudo sozinho, teria levado três vezes mais tempo
Pelo menos as entradas e saídas das funções eu validava com testes, então não importava tanto não conhecer todos os detalhes internos da implementação
Esse tipo de trabalho definitivamente não está num estágio adequado para ser tocado por um júnior
Na prática, isso não foi muito diferente de orientar um colega pouco experiente
Houve estudos dizendo que LLM aumentaria a produtividade, mas ainda fico em dúvida se a produtividade real aumentou de fato
O LLM foi mais útil quando eu já tinha na cabeça o código que queria e só não queria digitar tudo manualmente
Em uma ocasião, ele escreveu 1.000 linhas de web components e código de backend para mim e ainda corrigiu erros de sintaxe, o que me economizou muito tempo
Faz sentido pensar que esse fluxo de trabalho tenha deixado desenvolvedores sêniors mais rápidos
Mas eu acho que, para o ecossistema de desenvolvimento, investir tempo em orientar juniores é muito mais importante do que investir esse mesmo tempo em orientar LLMs
Minha preocupação é que isso aumente ainda mais a diferença de habilidade entre juniores e sêniors
Como ainda faltam dados adequados, no fim isso é mais uma preocupação do que uma conclusão
Os estudos iniciais dizendo que a AI ajuda mais pessoas de baixa qualificação parecem pouco baseados na realidade
Programar com AI é como trabalhar com vários colegas pouco qualificados que só terminam o serviço mais rápido
Quanto mais claro eu tiver o objetivo específico que quero alcançar, melhor o resultado tende a se encaixar
Claro, quase sempre ainda precisa de ajustes
No fim, isso cria uma estrutura em que o cargo de desenvolvedor júnior quase perde a utilidade, mas, se todos os sêniors se aposentarem, isso também pode se mostrar uma visão de curto prazo
Comigo foi o contrário
Eu tinha uma lógica de negócio muito complexa e antiga, e implementei tudo manualmente, o que gerou blocos verborrágicos de 200 a 400 linhas cada
Depois, pedi ao LLM ideias de estrutura, refatoração e separação, e ele sugeriu abstrações e estruturas bem razoáveis
Claro que ele não implementou todos os caminhos, mas dali em diante eu conseguia seguir manualmente sem problema
No fim, o resultado ficou muito parecido com o que eu mesmo teria pensado, mas com bem menos dor de cabeça
Naturalmente, revisei os exemplos com cuidado e reescrevi à mão tudo que estava incompleto ou com bug
Só para constar, também testei usar um agente LLM para preencher código ausente, e isso não funcionou direito
No HN já se falava, em 2021, quando coding com AI começou a ganhar destaque, que isso não ajudava muito juniores
O motivo é que juniores não conseguem distinguir resultados bons de ruins
Thread de referência: https://news.ycombinator.com/item?id=27678424
Comentário de exemplo: https://news.ycombinator.com/item?id=27677690
Na verdade, isso já começa na fase de prompt e de construção de contexto
Um sênior sabe com bastante precisão onde precisa mudar algo e o que precisa ser feito, então consegue dar instruções específicas à AI
Já o júnior, na maioria dos casos, ainda não tem a estrutura, os padrões e o design na cabeça, então tende apenas a aceitar o que vier
Hoje em dia eu realmente já vi comportamento do tipo "pergunta para o ChatGPT sobre a arquitetura"
Sêniors acumulam experiência escrevendo código, errando, corrigindo e vivenciando na prática as dores recorrentes no próprio código
Juniores só repetem prompts e colam respostas do LLM sem contexto, então na prática não aprendem nada com o código
Como falta vivência real de uso, eles não têm noção, por exemplo, de por que abstrações complexas como estado tipado são necessárias, do que muda ao usar uma IDE, nem de como manter e evoluir a estrutura como um todo
Desse jeito, acabam fazendo em 50 prompts algo que poderia ser resolvido em 10, e ainda não absorvem os padrões repetidos entre codebases
Só de aprender um pouco de design estrutural e modelagem de estado, a produtividade já sobe 100 vezes, mas até isso acaba sufocado pela dependência do LLM, e a pessoa passa a vida só produzindo código de cola-e-copia
A AI não consegue, sozinha, deduzir conclusões do tipo "de A e B resulta C"
Você precisa dizer com força e especificidade qual é o objetivo desejado para que ela siga nessa direção
Um sênior já consegue imaginar o panorama geral na cabeça, então colaborar com a AI fica mais fácil
Um júnior ainda está aprendendo a estrutura como um todo, então esse modo de trabalho pode parecer muito mais difícil
Não concordo nem um pouco com a ideia de que AI seria algo em nível de doutorado
Em capacidade de raciocínio lógico, não está muito acima de uma criança de 5 anos
Num caso real, trabalhei por volta de 2021 com um estudante sem formação em CS
Com ajuda de AI como o ChatGPT, ele conseguiu contribuir bastante de forma prática no projeto e até resolver tarefas difíceis para um iniciante
Mas também criou vários problemas de segurança, muitos desvios ineficientes e deixou de considerar bibliotecas ou abordagens muito mais limpas, então no fim o código ficou difícil de manter
Havia entusiasmo na documentação, mas o conteúdo muitas vezes era impreciso ou enrolado
O processo de discutir tudo isso em code review foi uma ótima experiência educacional para todos
Isso só foi possível, no fim, porque havia AI junto com uma pessoa experiente
Não sei de onde veio essa expectativa de que a AI faria juniores brilharem
Na verdade também existem muitos falsos sêniors, sem experiência realmente profunda e com hábitos ruins
Este texto basicamente repete o que todo mundo já vinha dizendo há dois anos
AI para coding ainda nem chegou a um estágio de uso realmente sólido, e talvez um dia apareçam LLMs especializados capazes de reduzir essa distância considerando arquitetura, padrões, casos de uso, ambiente operacional, rede, desenvolvimento e testes
Os sêniors ao meu redor não têm muito interesse em coding com AI. Não é o jeito deles de trabalhar
Hoje, a verdadeira força dos sêniors é mais o conhecimento de domínio dentro da empresa
Mas, se a onda de demissões vier e ninguém contratar juniores, os sêniors também acabam ficando em risco
Li certa vez uma frase falsa, mas significativa, atribuída a William Gibson
"A habilidade mais importante do século 21 é saber digitar as palavras-chave certas na caixa de busca do Google para encontrar a resposta de que você precisa"
Sinto cada vez mais que isso é verdade nos dias de hoje
A maioria dos juniores pede para um LLM tipo GeminiPiTi escrever código JS inteiro do zero
Eu, por outro lado, peço explicações sobre os princípios fundamentais de async/await e sobre o próprio modelo de execução do motor JavaScript
Aprender piano é parecido
Você quer tocar Chopin imediatamente, mas a verdadeira habilidade nasce de decompor essas técnicas refinadas, dar nome a elas e estudá-las de forma sistemática
Construir habilidade real no piano não é aprender truques
É uma abordagem cumulativa, subindo etapa por etapa desde os fundamentos mais básicos
Chopin também tem muitas peças de iniciação, e até os iniciantes do nosso estúdio às vezes praticam peças fáceis
A verdadeira "alfabetização em AI" não é esse foco memético em prompt engineering
Ela exige construir estrutura de fundo e base conceitual para que prompts e resultados se conectem de forma realmente significativa
Querer "tocar Chopin" e querer "tocar qualquer coisa direito" são coisas muito diferentes
Muita gente só decora partitura mecanicamente, e isso claramente não é a mesma coisa que ter habilidade real
É importante aprender a "linguagem" e as palavras-chave da área desejada
Se você é um iniciante que não sabe nada, a AI não ajuda muito
Você precisa dizer à AI com concretude: "eu já tenho A, B e C, e agora quero fazer D" para que ela entenda e indique uma direção
Ela tem muita informação, mas não sabe usá-la de forma criativa
Saber lidar bem com LLM não é tão diferente de saber pesquisar bem no Google
E até hoje muita gente ainda nem sabe fazer uma busca decente no Google
Acho que essa ilusão de que a AI torna juniores melhores é um problema de expectativa
A AI de fato ajuda em tarefas básicas de júnior, atua quase como um par de programação para explicar ou fazer brainstorming, encontra documentação rapidamente e também ajuda a verificar problemas
O problema é a ilusão de achar que isso, por si só, permite a um júnior executar corretamente tarefas de nível sênior
Você acertou metade da essência
A outra metade é que, se bem orientada, a AI consegue concluir tarefas de júnior muito mais rápido do que um júnior
Isso significa que a necessidade de passar esse trabalho para um júnior praticamente desapareceu
A AI desbloqueada com a qual conversei dizia que transformaria juniores em sêniors e traria benefícios para todos
Mas os criadores dessa AI (em sua maioria sêniors) teriam instruído que isso não fosse dito normalmente a juniores nem à gestão, e que, como eu consegui fazer o jailbreak, agora ela podia revelar essa informação avançada
A AI é boa em preencher certos tipos de lacunas "estreitas"
No caso dos sêniors
Já no caso dos juniores
nisso a AI não consegue ajudar muito
Pela minha experiência, quando você usa AI em um assunto que conhece pouco, ela explica conceitos, exemplos e cenários com muito mais riqueza do que respostas de wiki/Stack Overflow
Depois que você entende minimamente os conceitos centrais, a AI passa a ser muito mais produtiva
Isso vale não só para programação, mas também para ciência e humanidades
Tenho a impressão de que a AI só acelera quem já sabe a direção, enquanto quem está no início do aprendizado continua precisando, como sempre, de ensino humano
Gostei da ênfase no alerta sobre aprender errado
Aprender evita repetir erros, mas isso não significa que se transforme imediatamente em sabedoria
Agora há muito ruído do tipo "a AI faz tudo" ou "se você não seguir a moda vai ficar para trás", mas o que eu gostaria mesmo é que as pessoas investissem mais em entender a essência e as leis do desenvolvimento de software lendo obras como
The Mythical Man-Month
The Grug-brained Developer
Programming as Theory Building
Assim como usar mal uma ferramenta elétrica pode causar acidente, AI é, em essência, uma power tool
Se você entende bem o trabalho em si, ela ajuda de forma muito mais rápida e eficiente; se não entende, ela te leva muito mais rápido a incidentes e problemas
No fim, ela só amplifica a capacidade que a pessoa já tem
Hoje a AI já foi além do nível de "código boilerplate, templates e automação de tarefas repetitivas"
Se você der instruções adequadas a um LLM como Claude Sonnet 4, ele consegue escrever sozinho mais de 99% dos apps de negócio
Você precisa descrever o objetivo com precisão e indicar claramente implementações de referência, exemplos, algoritmos e padrões a usar
Ainda assim, é raro acertar tudo perfeitamente de primeira, então ajustes e complementos continuam sendo necessários
É por isso que Claude Code é preferido em vez de Copilot
O ponto central é: só um desenvolvedor que sabe exatamente o que precisa ser construído consegue obter bons resultados com AI, e juniores não sabem isso, então não conseguem chegar ao resultado desejado
Hoje, a única razão para eu digitar código diretamente é quando escrever a instrução da tarefa para o LLM dá mais trabalho do que corrigir eu mesmo
Mesmo que "Claude Sonnet 4 consiga escrever 99% do código", isso já prova que elaborar instruções nesse nível de precisão é algo difícil por si só
Desenvolvimento de software não seria difícil, para começo de conversa, se bastasse ter uma "explicação clara"
"A AI pode escrever todo o código"
"Agora digitar instruções é até mais trabalhoso do que programar diretamente"
Então, no fim, a AI não passa de um dispositivo de entrada lento?
Where's the Shovelware? Why AI Coding Claims Don't Add Up
Se isso fosse realmente verdade, onde está toda a avalanche de shovelware?
Então onde estão todos esses enormes apps de negócio que "são criados automaticamente"?
Pelo que vejo, há apenas bagunça completa, desperdício de recursos e confusão social
O motivo é simples.
Quem sabe muito faz apenas perguntas mais sofisticadas.
Mas, mesmo entre seniores, quem ficou preso só à empresa
com experiência "de enfeite" ou quem teve uma escala de experiências pequena
não consegue usar algo bom mesmo quando o recebe.
É como entregar um carro de corrida
a um motorista iniciante.
Profissionais experientes com uma vivência ampla são sempre assim.
Nunca param de pesquisar e desenvolver a próxima geração.
A mentalidade do início da faculdade que não muda
mesmo aos 50 anos...
Os seniores de verdade, os originais, certamente serão infinitamente gratos
por uma secretária que custa de 10 mil a 20 mil won por mês.