Discordo fortemente que código virou commodity. Isso só vale para quem fazia código ruim, repetitivo, e que já era desnecessário. Isso é mais uma das coisas que vêm sendo repetidas sem ter dados que comprovem, sendo apenas percepções em cima de observações equivocadas, muitas vezes feitas por pessoas com pouca experiência qualitativa. Ou pior ainda, a pessoa só está repetindo o que estão dizendo por aí.
Código está ficando abundante, mas não está barato de produzir. E essa abundância não é algo boa. Não é que está abundante com excelente qualidade, está abundante em podridão. Isso é problema, não benefício. Não tem nada de economia nisso. Estamos voltando ao problema que já era conhecido há muitas décadas, medir evolução do projeto pela quantidade de linhas de código. Está mais uma vez ignorando que o melhor código é o que não existe.
Essa ideia de que a IA está criando código rapidamente sem enormes desperdícios e sem adicionar muita podridão eu só começo mudar de ideia o dia que alguém apresentar pelo menos um projeto decente que não seja assim. EU não vi um sequer até hoje. Vi pequenos projetos com necessidades muito limitadas, vi código duas, três ou mesmo dez vezes maior do que deveria ter. Isso não é economia.
Falei um pouco sobre essa questão das pessoas não saberem fazer abstrações, eliminar repetições, organizar o código, em https://www.tabnews.com.br/maniero/ce6fbf87-5bf0-49aa-80ef-dcf6cbe6f76a.
Sempre vejo muito as pessoas falarem sobre criar boilerplate de CRUD. Mas porque as pessoas fazem tanto isso. Provavelmente porque aprenderam errado e continuam fazendo errado, e ensinam errado fazendo algo que não deveria ser necessário. A IA gerar isso apenas está consolidando o erro.
Eu entendo que a maioria das pessoas não conseguem compreender o que estou dizendo, se ela não aprendeu abstrair bem desde o começo, é complicado ver isso. Então o jeito de ensinar precisa mudar para resolver um problema anterior, não o problema da IA.
Se a pessoa souber usar a IA pode escrever código melhor que a pessoa faria, não porque ela fará algo sensacional, mas porque a pessoa escreve algo muito ruim. Claro que a pessoa que escreve algo muito ruim, não sabe pedir para a IA produzir algo bom. E ela não sabe avaliar depois se a IA escreveu algo bom. Quem aprendeu falar "trabaio" em vez de "trabalho" ou escrever "á 10 anos atrás" em vezes de "há dez ano atrás s" não vai magicamente fazer o certo, não basta ela ver que a boa parte das pessoas fazem o certo, alguns lugares que são referência, como novelas, falam certo, ela precisa se comprometer a fazer o certo, o que implica primeiro admitir que está fazendo errado.
Até é verdade que se ensinou a linguagem em vez de aprender programar, mas isso se deve a professores ruins e uma atitude por parte do aluno (ou pais) que não consegue acompanhar o aprendizado de programação, que é matemática, mesmo que algumas pessoas neguem isso, então para o professor não parecer ser ruim, porque é assim que ele será visto, ele finge que ensina a programar. Ensinar corretamente afasta alunos. Isso deveria ser comemorado, mas como geralmente o professor tem conflito de interesses, ele faz o que o aluno quer, não o que ele precisa.
Seguir boas práticas é exatamente essa decoreba que o aluno não deve fazer. A pessoa tem que entender o que está fazendo, reproduzir o que alguém disse é o mesmo que aprender sintaxe. Se não mudar essa forma de ensinar, continua fazendo o que a IA sabe fazer melhor. Peça para ela seguir boas práticas. Ela faz razoavelmente bem. Até piorando a solução porque ela aplica cegamente. E o programador que é cego nisso vai adorar.
Ou seja, tem que ensinar do jeito que sempre deveria ter sido feito. Quem aprende programarquestiona tudo, não aceita nenhuma verdade dita sem passar pelo crivo de estudo real baseando-se em todos os fundamentos. Dà muito trabalho, é cansativo, exige muito comprometimento e capacidade de raciocínio. Admito, é muito difícil. É mais fácil a decoreba.
Excel tem tudo a ver com programação. Pelo menos em cenários que vão além do que nem precisava de uma planilha.
Até por estar trabalhando em um projeto que exige bastante de alunos, tenho me debatido com a ideia de ensino baseado em projetos porque vejo até bons resultados, mas também resultados bem ruins, em muitos casos a pessoa cai na ação de entregar algo, custe o que custar, mesmo que não tenha ajudado a aprender algo. A pessoa pesquisa na web, no SO ou pergunta para a IA, faz algo e aprende pouco ou nada. Ela aprende a se virar, mas pode ter aprendido errado, mesmo que entregue o resultado esperado. Isso é um problema difícil de resolver. A solução de obrigar o aluno estudar certos pontos e não poder pesquisar fora também não funciona bem.
Eu ainda tenho a impressão que aprendizado inicial não deveria usar IA. Se a IA é apenas uma ferramenta de produtividade e não algo revolucionário, então ela deveria ser usada quando vai ensinar a ser produtivo. O início não é para se rprodutivo. Mas ainda preciso estudar mais, criar um pensamento, testar e debater mais.
Como professor desde a década de 90 até há alguns anos e imerso no Stack Overflow descobri que cada ano claramente as pessoas, no geral, sempre tem exceções chegam com mais limitações queantes. A escola está falahando muito com essas pessoas, provalmente por causa do fingimento. Não sei o que fazer, hoje a única solução que eu tenho, para não fingir, é deixar quem não tem condições para trás. Não é legal, mas não sei o que fazer em casos assim.
Um amigo meu, professor na Unicamp e era na Unesp, desistiu da última porque, segundo ele, os alunos ali já estavam chegando em um estado que ele tinha que explicar "o que é uma mesa" e ele não era capaz de fazer isso. Eu também não sei, metaforicamente, claro, eu preciso que o aluno entenda bem isso para usarmos a mesa para criar uma solução.
S2
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui).