Executando verificação de segurança...
3

Programador hoje em dia só se garante com IA?

Recentemente, parei para refletir sobre uma questão que vejo surgindo cada vez mais: será que hoje em dia o programador só se garante com IA?

Nos últimos meses, testemunhamos um avanço impressionante das inteligências artificiais voltadas para o desenvolvimento de software. Ferramentas como Copilot, ChatGPT (e até o Cursor Pro, que é pior ainda) e outras estão facilitando a vida de muitos devs, acelerando a escrita de código (ou até mesmo fazendo ela), corrigindo bugs e até ajudando a entender conceitos mais complexos. Eu mesmo já me peguei recorrendo à IA para resolver problemas que levariam mais tempo se eu tentasse resolver sozinho, mas que me trariam muito aprendizado. Mas isso me fez pensar: será que estamos nos tornando dependentes demais dessas ferramentas?

Olhando para trás, lembro de quando aprender a programar exigia passar horas lendo StackOverflow, entendendo cada detalhe e quebrando a cabeça para encontrar soluções. Hoje, parece que muitos programadores (especialmente os mais novos) já começam dependendo de IA para escrever até os trechos mais básicos de código. Isso é preocupante? Estamos criando uma geração de devs que sabe pedir respostas, mas não entende o porquê delas?

Por outro lado, eu vejo que os que não utilizarem a IA vão ficar pra trás no mercado e serem substituidos aos poucos por aqueles que usam a IA muito bem.

O que vocês acham? A IA está tornando os programadores mais produtivos ou está criando uma bolha de devs que só se garantem com a ajuda dela?

Carregando publicação patrocinada...
4

Lembro que há 20 anos a discussão era se os programadores estavam ficando dependentes da internet. IA é uma ferramenta, da mesma forma que o Stack Overflow é.

Há programadores bons que usam IA, da mesma forma que há programadores ruins que não usam.

Qual você é? Ou quer ser?

1

Stack Oberflow esta a beira da morte, basta ver os dados de acesso. Eu duvido que a cada 10 que ler isso e que acessava diariamente, 1 ou 2 ainda acessa. É mais facil usar copilot, resolve quase tudo na hora e não tem tantos usuários hostis para te dar Donwvotes só por ter esquecido a virgula na frase. Na verdade, isso é um dos principais fatores para novatos perguntarem lá e nunca mais voltarem.

2

A IA é apenas mais uma facilidade como tantas outras que vieram antes.

O pessoal fazia contas no papel e olhando tabelas. Veio a régua de cálculo para facilitar a vida em operações complexas.

Então surgiu a calculadora. Sim, piorou pois algumas pessoas não aprendiam nem a tabuada. Quanto é 7 x 8? Vou pegar a calculadora. Antigamente a dica era perguntar: "Como?". Enquanto a pessoa refazia a pergunta, a gente ia fazendo o cálculo mentalmente e dava a resposta. Para coisas complexas, a calculadora é de grande ajuda. Não é necessário fazer cálculos e utilizar tabelas.

Hoje eu vejo nitidamente dois tipos. Por exemplo, compro algumas coisas e o total é 27,30. Na hora do pagamento, entrego 52,30. O caixa me olha com cara de espanto, faz as contas e dá um sorriso. Outros, se eu entrego 50,00, eles perguntam: "O sr. não tem 2,30?". Vejo claramente a diferença entre os dois.

Acho que com a IA vai ser a mesma coisa. Alguns foicarão espantados com algumas coisas e outros, conviverão com a IA sem maiores problemas. Usando o copilot no vscode, por exemplo, é muito interessante como ele consegue completar o código evitando que se digite mais ou tenha que usar copia e cola.

1

A IA é uma excelente ferramente tanto para produtividade como para aprendizado.

Eu sinceramente acho mais inteligente usar o ChatGPT por exemplo para pedir uma explicação sobre um determinado tópico ou função, ou para depurar um erro silencioso que foi causado porque na correria usou = no lugar de === (exemplo em JS). Também é ótimo para lembrar de uma sintaxe rapidamente.

O uso da IA se torna um problema quando o desenvolvedor não procura entender o que está acontecendo, apenas copiando e colando código e fingindo que está aprendendo tudo.

Eu, que sou iniciante, vou contar uma experiência em que a IA foi boa e ruim para o meu aprendizado ao mesmo tempo. Quando eu estava aprendendo lógica da programação, "aprendi" a desenvolver um jogo da velha simples. Construi o html e css tudo sem auxilio, e como já tinha corretamente aprendido a atualização de variávies, manipulação de objetos, entre outras coisas, não tive dificuldades em nada nesse código, ou quase nada. O problema é que eu simplesmente não conseguir programar a lógica de verificar a vitória do jogador. Eu criei um array de arrays aonde estavam as possíveis combinações de vitória, mas não sabia como comparar o array de movimentos do jogador com esses arrays. Então usei o ChatGPT para me dar a solução e explicação do que estava sendo feito. Achei que entendi.

Meses mais tarde, ao tentar refazer essa função sem olhar a anterior, o problema apareceu. Eu não tinha entendido nada. Então eu percebi que estava seguindo o caminho errado. Vamos para o chatGPT de novo, mas dessa vez com outra ideia. Comecei a usar o seguinte prompt: "Quero me tornar especislista no método de arrays filter, e a partir dai perguntava tudo que era possível e me vinha na cabeça sobre isso. A cada resposta surgiam novas perguntas e eu só parava quando eu não conseguia pensar em mais nada para perguntar. Então eu partia para o próximo método. No início, nos primeiros métodos, estava tão claro que eu não tinha entendido muita coisa que eu precisava ficar meia hora fazendo perguntas e lendo respostas. No decorrer desse estudo, com 10 minutos e algumas perguntas chaves eu já conseguia entender o método por inteiro. E isso não somente para métodos, mas para entender operadores, estrutura de dados, classes, tipos de dados, declarações de funções e suas diferenças, funções síncronas e assíncronas e como é o fluxo de execução, event loop, etc.

Resultado: mesmo estudando tudo detalhadamente, ainda surgem algumas dúvidas no caminho. Mas agora eu entendo muito mais como as coisas funcionam, e quando um erro surge é fácil de entender o porque e o que pode ser feito diferente. O uso bem feito da IA foi muito benéfico para mim nesse caso.

E sobre rescrever a função de verificação de vitória no jogo da velha? Após realmente entender os métodos de arrays, escrevi em menos de 5 minutos encadeando três métodos diferentes:

const matriz = [
[0, 1, 2],
[3, 4, 5],
[6, 7, 8],
[0, 3, 6],
[1, 4, 7],
[2, 5, 8],
[0, 4, 8],
[2, 4, 6],
];

const player = [5, 1, 4, 8];

const checkVictory = (matriz, playerMoves) => {
return matriz.some((arr) => {
return arr.every((element) => {
return playerMoves.includes(element);
});
});
};

E sim, dá pra tornar esse código mais compacto e escrever em uma única linha, evitando o uso repetitivo de return, mas aqui a ideia é ficar legível e mostrar como fez diferença entre copiar e ler (mas não entender) um código gerado pela IA e realmente aprender como um código se comporta (sendo ensinado pela IA).

A IA é uma espada de dois gumes. Você pode usar essa ferramenta para aprender muito com ela e se tornar mais produtivo, como você pode usar ela para se enganar e acreditar que você realmente está programando seus códigos. Para iniciantes como eu, fica a dica: agarrem a primeira opção.

1

Onde eu vejo que a IA mais ajuda, é nas partes chatas do desenvolvimento, um bom exemplo, no frontend, é quando você vai passar a paleta de cores que o designer fez bonitinho no figma para variáveis no código (por favor, não digitem código de cor manualmente em todo seletor no css ☠), se for um grande numero de cores com bastante variações, é muito, muito entediante fazer.

No meu caso, quando o designer faz um frame bonitinho com o código das cores, eu exporto ele como um png, mando para o gpt e peço para ele ler e me retornar em variáveis sass por exemplo. É mais rápido comparar na hora e ver se ele não errou (geralmente não erra) e mudar alguns nomes.

Outro exemplo pode ser construir tipos, se você quer tipar algo que vem de uma fonte externa (uma API por exemplo), se for um JSON extenso, mandar uma amostra para a IA e pedir para ela gerar a interface pra ti é uma mão na roda, pois fazer isso na mão é demorado e chato. (também se aplica se tu quiser fazer uma tabela SQL com os dados por exemplo).

Enquanto vejo muita gente preocupado com a evolução da IA, alguns conspiracionistas dizendo que a IA poderá criar coisas sozinhas, para mim simplesmente a IA chegou para ser O COMPLEMENTO, ela cuida da parte chata enquanto você tem mais tempo para focar na parte legal do desenvolvimento, isso não só na programação 🤝.

Claro que a IA também pode auxiliar no aprendizado, exemplo, você pode pedir uma lista de comparações entre ferramentas para ter um panorama geral (ex: Redis Pub/Sub vs RabbitMQ vs NATS), ai os detalhes você consegue pesquisar com mais facilidade, pois já viu o panorama geral e sabe por onde começar a buscar.

1
1

Pois é, no seu caso você voltaria pro Stack Overflow tranquilo… já eu, confesso que me vejo bem mais dependente da IA hoje em dia. 😂

E é exatamente por isso que fiz esse post! Comecei a perceber o quanto eu já recorro à IA pra resolver problemas (ou literamente fazer o código por mim), que antes eu quebraria a cabeça pra entender sozinho. Cara, isso me torna mais produtivo, mas ao mesmo tempo me fez pensar: será que não estou deixando de desenvolver aquela habilidade de raciocínio crítico e resolução de problemas (experiência) que todo dev precisa ter?

Se um dia a IA sumisse do mapa, será que eu conseguiria manter o mesmo ritmo ou sentiria um baque? Será que todos os devs sentiriam esse baque, e eu continuaria produtivo? (já que todo mundo se ferrou). Essas dúvidas foram o que me fez levantar essa discussão. No fim, acho que o equilíbrio é o que importa, aproveitar as vantagens da IA sem deixar de exercitar o cérebro como antes.

1

É só mais outra ferramenta, entre tantas. Tem programador que ainda usa o Notepad++ ou Vim "peladão", então vai continuar o mesmo modus operandi, com ou sem IA.

Pode usar de diversas formas, mas eu percebi que pedindo constantemente pra explicar é uma boa fonte de aprendizado. Tem momentos que a explicação é quase um artigo, e leva segundos pra "pensar" e gerar a resposta.

Se os lagos próximos aos datacenters secarem, eu tenho parcela de culpa...

2

Uma boa visão! No fim das contas, a IA é só mais uma ferramenta no arsenal do programador, assim como IDEs, frameworks e até o próprio StackOverflow foram em suas épocas. Quem sabe usar bem, ganha produtividade; quem depende cegamente, fica vulnerável.

E concordo contigo, usar a IA para pedir explicações pode ser um excelente jeito de aprender. Quando bem utilizada, ela vira quase um mentor instantâneo, gerando insights e até desmistificando conceitos de forma mais clara do que muita documentação por aí.

Agora, sobre os lagos secando… bom, se um dia rolar um apagão das nuvens, pelo menos ainda teremos os devs raiz do Vim e Notepad++ para segurar as pontas. 😆

1

Pra certos "scripts" a ia é foda, mas api novas, ou programas atualizados, o bicho pega, mas mesmo assim é uma otima ferramenta! No geral, a ia é a melhor ferramenta no dev, não acredito que tem gente que não usa por achar que isso vai atralhar! Quem faz melhor uso chega mais longe e mais rapido! Muita coisa ta evoluindo. Duvido que uma pessoa que não ha use possa ter um desempenho melhor do que quem usa, falo de algo novo! a curva de aprendizado tende a ser muito melhor quando estudamos apenas o que da certo do que viver errando e achando que esta certo..

4

Concordo demais com você! Eu mesmo já passei por situações em que a IA me salvou um tempo absurdo. Teve uma vez que eu precisava integrar uma API nova com uma documentação meio confusa, e em vez de perder horas testando erro por erro, joguei a dúvida na IA e ela me deu um caminho que funcionou de primeira. Claro, ainda precisei ajustar algumas coisas, mas sem dúvida acelerou muito o processo.

E essa ideia de que a IA "atrapalha" ou deixa o dev preguiçoso não faz mais tanto sentido pra mim. Quem usa bem, aprende mais rápido e ganha tempo para focar no que realmente importa. Quem ignora por medo de "atrapalhar", na verdade, tá só dificultando a própria vida.

No fim das contas, após toda essa discussão aqui, entendo que a IA é só uma ferramenta — e como qualquer ferramenta, quem domina tem uma vantagem enorme.

1

Antigamente tinhamos que buscar referências fora do Brasil, buscar em fóruns esperando alguem dar uma resposta que não seja te humilhando... então a IA como uma ferramente eu vejo muito potencial, não ligo para o termo dependente, afinal de contas isso é uma ferramenta para ser usada, não é porque alguém sabe fazer bloco de tijolos manualmente seja melhor do cara que compra os blocos feitos, ambos tem a mesma finalidade e se você puder investir em algo que economize tempo, estará no caminho certo.

1

Essa analogia dos blocos de tijolos é perfeita! No final das contas, o que importa é construir algo sólido, não como você fez cada tijolo. Se existe uma ferramenta que economiza tempo e te ajuda a focar no que realmente importa, por que não usar?

Antigamente, era uma saga mesmo… passar horas em fóruns gringos, torcendo para alguém responder sem te humilhar no processo. Hoje, com a IA, temos uma espécie de "mentor instantâneo" que pode nos dar um direcionamento imediato, e isso é um avanço gigante.

Mas daí surge outra dúvida... Se eu posso só comprar os tijolos, em que ponto a programação convencional deixa de ser útil e perde espaço para projetos No-Code/Low-Code que são extremamente simples de desenvolver?

1

IA é uma ferramenta quando bem utilizada tende a trazer bons resultados, no entando é necessário conhecer bem os conceitos onde está aplicando para que a IA não faça besteira e o programador manter o controle.

Até pouquinho tempo atrás, a moda eram os Low/No Code da vida, a galera do marketing desses produtos diziam que não era necessário saber programar e blábláblá... o resultado é que pessoas como eu ganharam bastante dinheiro refazendo projetos que começaram com Low/No Code mas chegaram em um ponto impraticável. O mesmo vai acontecer com esses projetos tocados com IA por pessoas que não sabem o que estão fazendo.

1

Essa é a visão realista da coisa. IA, Low/No Code… no fim, tudo são ferramentas que prometem facilitar o desenvolvimento, mas sem um bom conhecimento técnico, acabam gerando mais dor de cabeça do que solução.

Eu vejo a IA como um turbo para quem já sabe o que está fazendo, mas para quem usa sem entender, o resultado pode ser exatamente o que aconteceu com o hype do No Code: projetos bonitos por fora, mas que desmoronam quando precisam escalar ou lidar com cenários mais complexos.

E, como você disse, isso cria uma nova oportunidade para quem realmente entende do assunto.

1

Como antigamente tinha o dev "Orientado a Stack Overflow" hoje tem os "Orientados a IA" vide o rapaz que fez o SAAS sem saber programar depois ficou desesperado que o site começou a "fazer coisas sem sentido".

IA é uma ferramenta, você ainda precisa sempre buscar ser um bom programador para não virar refém do que a IA cospe pra você, sempre há necessidade de ser crítico com o que ele envia, vou mais longe eu estudo alemão e a professora vê de longe quando alguém usa IA pra fazer um texto pois usa palavras que não são comuns. Ou seja IA é uma ferramenta se você quer que ela resolva o problema pra você e você não entende o que ela está fazendo tem grandes chances de passar algo que vai te dar dor de cabeça!

1

Eu lembro de quando aprender a programar era ler muitos livros e manuais, conversar com os outros poucos programadores que existiam. Eu peguei até o tempo que até os livros eram difíceis de encontrar. Você comprava um software e vinha uma caixa enorme, se quisesse piratear pagava alguns disketes e achava alguém entrosado com alguém que tinha um original.

Pela minha experiência no Stack Overflow e outros lugares a nova geração não sabe pedir respostas, estou generalizando, claro, elas só sabem espernear e acham que o mundo gira à sua volta, então ela não precisa se mexer, ou outros é que tem que se adaptar a elas.

A IA não está fazendo nada demais, mas as pessoas estão usando de forma equivocada e tem gente que está ficando para trás por não usar o que ela pode realmente ajudar, não são coisas excludentes. Se bobear tem gente que consegue estar nas duas situações.

S2


Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente (não vendo nada, é retribuição na minha aposentadoria) (links aqui no perfil também).

2

Pela minha experiência no Stack Overflow e outros lugares a nova geração não sabe pedir respostas, estou generalizando, claro, elas só sabem espernear e acham que o mundo gira à sua volta, então ela não precisa se mexer, ou outros é que tem que se adaptar a elas.

Parece que hoje o pessoal tem muito tempo para responder. Antigamente, por exemplo em NNTP, não era incomum respostas como RTFM, UTSL ou STFW.

Por outro lado, parece que o pessoal não tem muita paciência para ler. Surge uma dúvida e alguém responde. depois, mais 20 pessoas que sabem a resposta respondem a mesma coisa com outras palavras. Acho que o OP deveria editar o título e colocar respondido.

O aspecto de leitura tanto é verdade que muitos artigos começam com TL;DR;. Pessoalmente acho legal quando o TL;DR; está no final do artigo. Mesmo que tenha um índice. Pelo menos obriga a ler o índice.