Inteligência artificial e a destruição dos programadores

O título parece apocalíptico, mas é só pra chamar a atenção para um assunto interessante que vivencio e já vi outras pessoas dando opiniões por aí.

Já se viu construindo um projeto onde tudo que você faz nele é um copia e cola intenso oriundo de respostas de um GPT da vida? Você vai escrever uma função, classe ou arquivo de configuração, mas antes de escrever a primeira linha de código, está lá você no prompt descrevendo o que precisa para que a IA te dê a resposta que você vai copiar e colar no código do seu projeto.

Isso pode parecer incrível diante da velocidade que se ganha ao avançar no projeto, porém em troca disso, de vez em quando bate aquela crise existencial de que você é uma merda que não sabe criar nada sem a ajuda de um modelo de IA.

Então! É assim que me sinto às vezes, e assim também já vi relatos de outros desenvolvedores que falaram algo parecido com isso.

Então o que eu devo fazer? Largar tudo relacionado à IA e escrever código como um PROGRAMADOR RAIZ? kkkk Será que a solução disso é simplesmente criar os projetos como eram feitos antes da era GPT? Com aquela pesquisa linda no Stack Overflow da vida ou diversos sites com tutoriais e dicas?

Bem… Uma coisa você precisa aceitar, o jogo mudou, a realidade é outra meu amigo! E é sobre isso que vamos conversar hoje.

Benefícios da IA e seus prejuízos

É óbvio que programar usando a IA é o caminho, mas é um caminho cauteloso. Pois é fácil se perder nos infinitos prompts da vida e terceirizar sua prática, pensamento crítico sobre o problema para um modelo de IA. Pior que isso é construir um projeto onde você sozinho não consegue fazer nada sem depender da IA. Se você está neste ponto, você está na merda meu amigo kkk.

Os benefícios

A IA veio para ficar, não tem como mais escrever código como antigamente, se você defende esta ideia, você será ultrapassado rápido, pois não há como competir com um desenvolvedor que constrói algo usando agentes de IA.

O uso da IA na programação é exatamente essa frase aqui:

“Uma mente que se abre a uma nova ideia jamais voltará ao seu tamanho original”

Que foi dita por Albert Einstein

Porém a grande vantagem disso está apenas relacionada quando você sabe muito bem o que está fazendo. Você precisa realmente ser capaz de fazer tudo ou quase tudo sozinho sobre o que pediu para a IA fazer por você. Programar dentro deste contexto te dá o controle de que você precisa para não se tornar refém da IA. Além disso, tal conhecimento vai além de código-fonte puro. Entender o contexto geral do problema de um ponto de vista macro te ajuda a se situar sobre o que você está fazendo e te permite ter o controle do projeto. Você deve ser capaz de saber cada parte do seu código, seus módulos, arquitetura, componentes e etc. Ter esta visão é importante!

Então assumindo que você desenvolve um sistema dentro destas condições, eu diria que você está sendo um desenvolvedor que está fazendo um excelente proveito das ferramentas de IA. E com certeza, alguém que demonize a IA dizendo que programação de verdade é fazer tudo sozinho do zero “modo antigamente”. Esta pessoa com certeza perderia espaço para você pela simples questão de velocidade de desenvolvimento.

Os prejuízos

O prejuízo é o inverso do benefício e fim!

Brincadeira! kkk

Se você programa terceirizando toda a ideia do projeto diretamente para a IA e começa a desenvolver em cima disso sem nem ao menos pensar por conta própria o que deve ser feito. Eu diria que você está se alimentando dos prejuízos da IA no seu desenvolvimento. Além disso, sair pedindo que a IA construa grandes partes do código do seu projeto também é uma má ideia. Se você pede para ela gerar um arquivo inteiro de classe, ou funções e seja lá o que for (um grande arquivo considerável com muita lógica do negócio e etc). Isso vai te trazer mais prejuízo ainda. Pois a soma de tudo isso vai te levar a um labirinto mental muito louco. Você vai se perder e vai ficar totalmente dependente da IA, tendo uma experiência ruim.

Outra coisa que é muito tentadora e sinceramente eu não acredito que dê para escapar disso, é quando se trata de prazos para a entrega de projetos. O que vale mais? Terceirizar tudo que falta pra IA fazer mesmo que você não entenda nada, mas no final vai cumprir os prazos. Ou perder o prazo de entrega por conta de que você não conseguiu resolver o projeto a tempo? É inegável que se você não utilizou da IA, vai acabar sendo taxado de burro.

Outro ponto que vejo como algo bem crítico e negativo é a falsa sensação para os iniciantes de hoje em programação. Se um estudante afobado quer aprender rápido a construir algo, você acha que ele vai perder meses a anos de estudo para desenvolver algo do zero? Provavelmente vai estar entregando soluções que podem dar a ilusão de aprendizado, e tais soluções serão feitas diretamente com IAs. Eu posso estar errado, mas acredito que exista uma forte tendência do estudante novato ficar muito dependente e atrelado à IA na construção de seus projetos (atrelado no sentido de criar as coisas como dependente, e não com uma mentalidade crítica sobre o que está fazendo). Muitas das vezes pode se perder num loop de tentativa e erro de prompt até sair o resultado esperado. Eu vejo a IA dando a falsa ilusão do caminho fácil para o desenvolvimento de projetos.

Alternativas

Eu vejo como alternativa a mesclagem das duas coisas sendo o comportamento comum entre os desenvolvedores. Que reflete o meu caso em projetos com tecnologias que domino. O desenvolvimento acaba sendo guiado por prompts que mais se parecem a instruções a um dev júnior sobre o que fazer entre as etapas do projeto. O desenvolvedor tem total noção como um todo do seu projeto. Sabe muito bem para que serve cada arquivo, suas classes, configurações e etc. Uma hora ou outra ele cai na tentação de mandar a IA escrever um código cabuloso que ele não seria capaz de escrever sozinho (simplesmente por não saber fazer), mas entende o propósito daquele trecho de código dentro do seu projeto geral. Como eu disse é uma mescla de trechos de código que ele talvez não entenda profundamente, com trechos de código que ele sabe muito bem o que é e com certeza poderia ter criado sozinho.

Neste modelo alternativo, o desenvolvedor não se perdeu no seu código com as soluções escritas pela IA. E também ele logo se desconfortaria se começasse a copiar e colar um monte de código que ele não entende. Em sua essência, esse tipo de desenvolvimento não cabe a ele, ele tem a noção de que deve ter total controle sobre seu projeto e que depender totalmente da IA seria puro amadorismo.

Este, na minha opinião, é o cenário atual do desenvolvimento de software. A fusão entre modelos de IA e o pensamento humano na solução de problemas. Não a terceirização de suas ideias ou pensamento crítico a um modelo de IA.

Como evitar a sua autodestruição

Primeiro tenha em mente que você jamais deve sair criando projetos na qual não tenha a menor noção do que esteja fazendo. Pelo menos não a todo momento e muito menos em projetos sérios. Se for um projeto pessoal simples, algo de curiosidade ou qualquer motivo mais “banal”, está tudo bem criar uma solução neste estilo.

Mas tenha em mente que sua cabeça deve começar a coçar de desconforto se você estiver muito dependente da IA quando estiver desenvolvendo um projeto sério.

Uma outra dica importante e bem óbvia é: Não custa nada pedir pro modelo te explicar sobre aquele trecho de código que você não entendeu. Ao invés de ficar apenas pedindo soluções, também peça por explicações sobre elas, peça por entendimento num contexto mais amplo do projeto. Coloque em sua cabeça que você deve estar bem familiarizado com o projeto como um todo. Encare o projeto como se fosse um bairro de onde você mora, onde você conhece bem as ruas, praças, lugares e etc. Você não precisa conhecer cada casa internamente especificamente (seria bom saber), mas só em já ter uma noção geral, já seria um bom caminho.

Outra coisa que acredito profundamente que seja a principal fonte do verdadeiro conhecimento é: ESTUDE OS FUNDAMENTOS! Você tem que saber (pelo menos uma base ou uma ideia de como funciona) hardware: processadores, registradores, RAM, barramento, arquiteturas e etc, parte de redes, protocolos, comunicação, cabeçalhos e etc, entender sobre sistemas operacionais, padrões de projetos, arquiteturas de sistemas web e etc. Não que você vá saber tudo de cabo a rabo (isso é impossível!). Mas o mínimo de conhecimento que você tiver nestas áreas vai te ajudar a ser um desenvolvedor melhor.

Então para finalizar…

A IA veio para ficar! Você deve aproveitar o máximo desta tecnologia para te ajudar, mas deve sempre manter o pé no chão para não se tornar um escravo dela.

Loading