Tenho 12 anos de experiência com programação, e trabalho hoje tanto como Engenheiro de Dados quanto como professor de programação.
No trabalho como Eng. de Dados eu uso o ChatGPT com frequência para tirar duvidas de áreas que eu não tenho muita experiência, mas que faz parte do trabalho em determinados momentos (por exemplo, arquitetura de microsserviços, boas praticas do padrão REST, uma coisa ou outra de front-end, etc.).
Também uso para me ajudar a resolver alguns erros, e até para ajudar a refatorar o código.
Alguna dias atrás eu havia escrito uma função usando o apply() do Pandas, que eu sabia que poderia ser vetorizado, mas estava em dúvida de como fazer isso. O ChatGPT me economizou algumas horas sugerindo a forma correta de vetorização (a vetorização gera grande ganho de performance e de manutenabilidade).
Eu também dou aula de Introdução a Ciência de Dados com Python, para pessoas que nunca nem viram uma linha de código na vida. E recomendo aos meus alunos utilizarem o ChatGPT no aprendizado também. Recomendo para eles que tentem resolver sem ele primeiro, e só se empacarem por vários minutos sem avançar que usem ele. Também digo que usem para dúvidas pontuais, ao invés do problema inteiro (para aprenderem a dividir o problema em problemas menores). E digo pra entenderem exatamente o que ele sugere, linha a linha, ao invés de só copiar e colar o código.
Durante um exercício em aula, vi que alguns alunos copiaram uma solução que o ChatGPT recomendou, que era uma forma bem mais difícil de resolver o problema, bem menos eficiente (em termos de performance computacional e memória), e que eu não havia ensinado, sendo que havia uma alternativa bem mais fácil e performática. Mas funcionava. Mesmo assim, nessa hora eu intervi, e guiei de volta à solução mais adequada, para ajudar no aprendizado - pois eu percebi que eles não haviam entendido o que o ChatGPT havia sugerido também.
Não tem problema usar algo que veio "pronto", desde que você entenda exatamente o que está fazendo. Cada linha de código.
Lembro que na faculdade, num trabalho, eu usei um "malloc()" em C++, que o professor não havia ensinado. Ele achou que eu tinha copiado o trabalho de outra pessoa, ou pagado alguém pra fazer, e me questionou onde eu aprendi aquilo. Eu disse que aprendi pelo StackOverflow. Ele me perguntou então o que o malloc() fazia, e eu expliquei corretamente. Nesse momento ele ficou mais tranquilo e percebeu que o trabalho era meu.
O importante para o aprendizado é entender cada linha de código da solução, independente da fonte de onde veio aquela linha de código - se foi o professor que sugeriu, um colega que ensinou, o StackOverflow, o TabNews, o ChatGPT ou o Github Copilot.
Considero que não utilizar uma tecnologia que veio para nos ajudar, é um tiro no próprio pé. A questão é só saber utilizar a tecnologia a seu favor, ao invés de te atrapalhar.
Por exemplo, lembro que alguns trabalhos na escola não permitiam que fizéssemos consulta na internet - só podíamos usar a enciclopédia. O resultado é que deixávamos de treinar usar uma ferramenta que hoje é utilizada a todo instante pra tudo. Não faz muito sentido (a não ser que seja uma única vez, só pra ver como era feita pesquisa antigamente). Mas também, se a gente só copiasse da internet diretamente, sem nem ler e tentar entender o que copiamos, aí é outro problema, né. O professor fazia perguntas para vermos se entendemos o conteúdo do trabalho, e pedia pra escrevermos com nossas próprias palavras, para garantir que entendemos.
Resumindo, se você entender exatamente o que cada linha de código faz, e o porque de ser daquele jeito, então não interessa se foi só um tanto de Ctrl+C, Ctrl+V. Aliás, não interessa nem se foi você que escreveu! Afinal, dizem que o código é lido 10x mais do que é escrito.
Bom, dito isso, deve ter um ou outro maluco por aí até hoje que diz que ninguém deveria aprender a programar usando a internet/google/stackoverflow/youtube, e deveria usar só livro enquanto está aprendendo, porque essas tecnologias atrapalham o aprendizado, que a pessoa fica "dependente" da internet pra programar, e que fica usando a internet de "muleta"... Falar isso em 2023 soa como loucura, né?
Algumas pessoas abrem a cabeça e mudam de opinião com o tempo, outras não. E cada pessoa abre a cabeça em um tempo diferente. Veja o que é mais coerente para você.