Acabei de abrir o ChatGPT e perguntei o seguinte:
“Escreva-me um código Javascript com duas funções, uma que aceitará uma lista de pares chave-valor consistindo em uma abreviação de país e uma população, e outra que retornará a população de um país solicitado em tempo constante.”
E foi isso que me deu em resposta:
Este código é realmente muito bom. Acho que os comentários são redundantes, mas acho que não tenho muito a dizer para melhorar.
Então meu emprego está em risco? Não. E por três razões:
1- Sou um engenheiro de software competente o suficiente para saber exatamente como escrever essa pergunta para obter o resultado de que preciso.
2- Sou um engenheiro de software competente o suficiente para ler o código resultante e determinar se funciona e se pode ser melhorado.
3- Este é um problema muito simples. Quanto mais complexo o problema, menos dados o ChatGPT terá para obter soluções semelhantes para gerar seu resultado e mais oportunidades haverá para o código dar errado.
Suponha que eu não saiba programar e não saiba formular essa pergunta. Se eu apenas dissesse “Escreva uma função javascript que me dê a população de um país”, o ChatGPT me daria isso:
Mais uma vez, sua resposta é decente com base nos parâmetros que dei, mas se eu não for um programador com o mínimo de conhecimento, posso simplesmente copiar e colar? E se eu tiver um país que não esteja na lista?
Espero ser inteligente o suficiente para perceber que posso expandir a lista, mas agora estou atualizando manualmente esta lista sempre que precisamos adicionar um novo país ou mudanças na população de um país, em vez de apenas alimentar minha lista de dados em uma função para atualizar a tabela de hash.
Então talvez eu seja inteligente e tente expressar melhor as coisas:
“Escreva-me um código Javascript que aceite uma lista de países com população e me dê a população de um país que eu quero.”
Eu poderia esperar que isso me desse um resultado com complexidade de tempo O(n), mas não é tão bom assim. O resultado é quase idêntico ao código que acabei de mostrar. Não aceita sequer uma lista de países e populações como parâmetro.
Então, essencialmente, ao usar o ChatGPT para me ajudar a programar, preciso descobrir como redigir minha solicitação com a maior precisão possível para que o computador produza um código que se comporte da maneira que desejo.
Você sabe como é chamado quando você aprende a se comunicar efetivamente com um computador para que ele se comporte da maneira que você deseja?
Programação. Chama-se Programação.
O ChatGPT tornará a programação mais rápida e fácil, mas você ainda precisa ser capaz de articular suas necessidades de uma maneira que o computador entenda, ler a saída, avaliá-la e aprimorá-la.
Talvez você o melhore modificando diretamente a saída. Talvez você melhore esclarecendo sua solicitação ao ChatGPT. De qualquer forma, você precisa ser competente para compreender o que o ChatGPT está tentando fazer, e isso significa ser um engenheiro de software com conhecimento da linguagem de programação e da própria engenharia de software.
Não tenho dúvidas de que haverá esforços para substituir os engenheiros de software pelo ChatGPT. E esses esforços falharão, pois inevitavelmente produzirão softwares com erros, ineficientes e insustentáveis, mal adaptados às necessidades do cliente.
As empresas que cometerem esse erro inevitavelmente precisarão contratar engenheiros de software para consertar a bagunça, e isso será mais caro do que se elas os contratassem desde o início.
Extraído e traduzido do original no Quora de autoria de Howie Reith: Can ChatGPT replace software Developers?
Finalmente uma análise sensata sobre o ChatGPT. Como de costume, superestimam a tecnologia e subestimam a capacidade dos seres humanos que a criam.
David Matos
Outras Referências:
Mais 7 Alternativas (Gratuitas e Pagas) ao ChatGPT
Fundamentos de Linguagem Python Para Análise de Dados e Data Science (Com ChatGPT)