Um programador em início de carreira pode pedir a um assistente de IA que use uma biblioteca que não conhece, obter código funcional e passar à tarefa seguinte. A funcionalidade pode ficar pronta antes de o programador perceber por que razão funciona. Isso torna-se relevante quando o código falha, os requisitos mudam ou alguém tem de decidir se a correção sugerida pelo assistente é segura.
O engenheiro de software Alexandru Nedelcu levantou esta preocupação num ensaio de 22 de setembro. Defende que os programadores desenvolvem discernimento ao ler código, tomar decisões e lidar com os erros. A previsão de que algumas empresas anunciarão políticas contra a IA é uma opinião, não uma mudança observada no setor. Uma experiência distinta, publicada em janeiro, coloca a questão da aprendizagem numa forma mais restrita e testável: o que compreenderam os programadores logo depois de concluírem uma tarefa com ajuda de IA? A análise publicada pela Anthropic
A grande mudança
- O que mudou: A IA facilita a entrega de software concluído sem que quem o escreveu tenha trabalhado a fundo a sua lógica. Pode fornecer uma implementação antes de um principiante ter praticado as decisões necessárias para a explicar ou reparar.
- Porque é importante: Os gestores podem ganhar produtividade hoje e, ao mesmo tempo, enfraquecer o percurso que permite aos funcionários mais novos tornarem-se as pessoas capazes de diagnosticar as falhas de amanhã. O risco é maior quando a tarefa envolve conceitos desconhecidos; a ajuda em trabalho familiar pode continuar a ser valiosa.
- O que importa acompanhar: As equipas podem começar a tratar a aprendizagem como parte da entrega, reservando tempo para explicar, diagnosticar e adaptar trabalho feito com ajuda de IA. Nesse caso, os exercícios de recrutamento e os produtos de programação poderão valorizar a compreensão demonstrada, além da rapidez.
Concluir uma tarefa e aprender uma competência são resultados diferentes
Num estudo aleatorizado com 52 programadores, os participantes usaram uma biblioteca Python desconhecida, chamada Trio, para concluir duas tarefas de programação. Metade tinha acesso a um assistente de IA no ambiente de programação; a outra metade, não. Sabiam que fariam um teste a seguir. Pouco depois do trabalho, o teste avaliou conceitos, leitura de código e depuração.
O grupo com IA obteve uma média de 50%, contra 67% no grupo que trabalhou sem IA: uma diferença de 17 pontos percentuais, não uma descida relativa de 17%. A maior diferença surgiu nas perguntas de depuração. Em média, o grupo com IA terminou cerca de dois minutos mais depressa, mas essa diferença de tempo não foi estatisticamente significativa. Estes resultados dizem respeito a um contacto breve com uma única biblioteca e a um teste imediato; não medem carreiras de programadores nem a qualidade de um sistema em produção. Resultados e limites do estudo
Os investigadores também observaram como os participantes usaram o assistente. Alguns delegaram-lhe, em grande medida, o código e a depuração; outros pediram explicações ou trabalharam os conceitos por iniciativa própria. Os padrões de utilização mais participativos tenderam a obter melhores resultados, mas estes grupos pequenos foram identificados posteriormente. Os participantes foram distribuídos aleatoriamente quanto ao acesso à IA, não quanto à forma de interagir com ela. Pedir uma explicação pode ajudar quem está a aprender, mas este estudo não prova que uma instrução ou um método de trabalho específico elimine a diferença de aprendizagem. Análise das interações no estudo
Muitas vezes, é perante um erro que um principiante aprende o que uma biblioteca pressupõe. Se o assistente tratar tanto da implementação inicial como da correção, o programador poderá deparar-se com menos desses pressupostos. Esta é uma possível explicação para a diferença observada na depuração.
A rapidez também conta, e a tarefa altera a resposta
A assistência de IA também acelerou a programação noutras condições. Numa experiência controlada com o GitHub Copilot, 95 profissionais independentes foram incumbidos de criar um servidor HTTP em JavaScript. Entre quem concluiu a tarefa, o grupo com Copilot demorou, em média, cerca de 71 minutos, contra cerca de 161 minutos no grupo de controlo, uma redução de 55,8% no tempo de conclusão. Os investigadores não avaliaram o que os programadores aprenderam depois. A tarefa era uma implementação delimitada, não uma introdução a uma biblioteca desconhecida seguida de um teste de compreensão.
Ambos os resultados podem ser úteis para um gestor. Se um programador experiente recorrer à IA para despachar tarefas repetitivas, a poupança de tempo pode ser real. Quando o objetivo é aprender um sistema novo, a rapidez de execução e a compreensão têm de ser avaliadas separadamente. Uma proibição generalizada da IA desperdiçaria ganhos potenciais sem responder à questão de como as pessoas aprendem a supervisionar o trabalho.
O ensaio de Nedelcu vai além da experiência. Defende que a facilidade de manutenção só se revela ao fim de meses ou anos e que a experiência se desenvolve quando se assume a responsabilidade pelos erros. O estudo não mede a facilidade de manutenção a longo prazo nem mostra que os utilizadores de IA deixem de aprender. O desafio útil que coloca é organizacional: se uma equipa delegar cada vez mais as tarefas que permitem praticar, onde irão os futuros especialistas em resolução de problemas adquirir essa experiência? O ensaio de Nedelcu
Peça ao principiante que demonstre o que aprendeu depois de o código funcionar
Uma resposta prática é dar a um principiante uma tarefa realizada com ajuda de IA e, antes de considerar que houve aprendizagem, pedir-lhe uma breve verificação independente. Esta é uma proposta nossa, não uma intervenção testada por qualquer dos estudos:
- Explique: Sem pedir ajuda ao assistente, descreva por que razão funciona a parte desconhecida do código, que pressupostos faz e o que poderia fazê-la falhar. Um engenheiro sénior pode colocar uma pergunta complementar sobre a alteração concreta.
- Diagnostique: Introduza uma falha pequena e realista num ramo de testes seguro. Peça ao principiante que encontre a causa e explique que observação lhe permitiu descartar uma correção errada, mas tentadora. O objetivo é avaliar o raciocínio, não a memorização de um comando.
- Adapte: Altere um requisito e peça ao principiante que adapte a implementação e os testes. Pode recorrer à IA, mas deve conseguir justificar o novo comportamento e indicar o que ainda precisa de verificar.
Por exemplo, depois de um assistente escrever uma nova operação assíncrona, um revisor poderá perguntar o que acontece se ela for cancelada a meio. O programador deve conseguir seguir o percurso da execução e testar um requisito alterado. Uma revisão de código pode detetar um defeito sem preparar quem está a aprender para resolver o seguinte. A verificação proposta pergunta se o conhecimento acompanha o código entregue.
Isto não tem de transformar cada tarefa de rotina num exame. Uma equipa pode reservar o exercício para bibliotecas desconhecidas, modos de falha recorrentes ou trabalho que um colega júnior deverá vir a assumir. Exige tempo remunerado e um revisor que conheça o sistema. Se a gestão só contar tarefas integradas e tempo poupado, esses custos poderão ser os primeiros a desaparecer. Isso agravaria o problema da formação, mesmo que a produtividade imediata aumentasse.
A questão da aprendizagem prática também chega ao recrutamento e ao design de produtos
Os cargos júnior têm combinado muitas vezes a entrega de trabalho com a prática supervisionada. A IA altera esse equilíbrio quando um candidato consegue apresentar uma funcionalidade impressionante sem mostrar como raciocinou para a desenvolver. Os empregadores podem pedir aos candidatos que expliquem e modifiquem um pequeno trecho de trabalho, em vez de tratarem um repositório bem apresentado como prova de competência autónoma. É uma proposta de resposta para o recrutamento, não uma prova de uma tendência atual. A avaliação deve testar as capacidades de que a função realmente precisa, sem exigir que todos os candidatos trabalhem sem ferramentas.
Os produtos de programação enfrentam uma escolha relacionada. Um assistente pode otimizar uma resposta rápida ou facilitar a análise dos pressupostos, a colocação de perguntas conceptuais e a experimentação de uma alteração antes de revelar a solução. Os padrões de interação observados no estudo justificam experimentar a segunda abordagem, embora não provem que uma interface específica ensine melhor. Para os empregadores, a questão correspondente na compra de uma ferramenta é saber se ela ajuda os funcionários a aprender a rever e alterar o que produz, e não apenas quanto código gera.
O teste curto não nos diz quem se tornará especialista daqui a cinco anos. Mostra, contudo, por que razão uma implementação aceite é um substituto fraco para provas de compreensão numa tarefa desconhecida. As equipas que querem simultaneamente automação e uma nova geração competente têm de criar espaço para praticar e verificar o que as pessoas conseguem fazer quando a resposta muda.



