Dúvida: Vocês programam com auxilio de IA? Se sim, qual e em quais situações?
É uma curiosidade minha. Eu basicamente uso o GPT pra me explicar bugs que eu não consigo entender ou para otimisar trechos de código. Geralmente "ele" me ajuda.
No momento que tenho percebido mais problema do que ajuda. Estou experimentado, o Copilot promete bons resultados, e pode ser que use mais em futuras versões. O ChatGPT eu acho bem ruim, só me atrasa, e vai demorar muito para usar, talvez nunca para esse fim.
Eu acho que o mundo, "pra variar", estará dividido em duas bolhas, uma que adora a ferramentas e as que não enxergam valor nela. Eu não consigo ver muito valor nela, hoje, e acho estranho que pessoas que têm mais dificuldades conseguirem resultado que os que têm menos dificuldades não conseguirem.
Me parece que cada vez mais acontece das pessoas acreditarem em coisas ruins e irreais. Por enquanto é só minha percepção, mas parece ser corroborada com pessoas que estão estudando o assunto. Parece que há entendimento que as pessoas têm créditos para a IA, pelo menos algumas ferramentas, que ela não tem. Estão confiando em coisas inconfiáveis, e justamente por ter necessidade dela para ajudar não possuem o senso crítico necessário para usar de forma adequada.
Eu espero chegar o momento que ela fique bem mais adequada. Mas acho que será mais para quem precisa menos.
Hoje para você fazer a pergunta certa, do jeito certo, verificar a confiabilidade, tentar de novos várias vezes, até chegar em um bom resultado custa mais caro do que eu fazer sem a ajuda. E acho que muita gente que está vendo ajuda é porque está aceitando qualquer porcaria que a IA vomita. Veja só, é minha percepção, posso estar enganado. Mas se eu não estiver, azar dessas pessoas. Minha percepção vem de ver algumas pessoas usando e é o que acontece. Dizer que usa certo é diferente de usar.
Acho que cada um faz o que achar melhor, e colhe as consequências boas ou ruins. Eu espero poder colher as boas o mais rápido possível, mas ainda não consegui a não ser com muito esforço.
Faz sentido para você?
Espero ter ajudado.
Farei algo que muitos pedem para aprender a programar corretamente, gratuitamente. Para saber quando, me segue nas suas plataformas preferidas. Quase não as uso, não terá infindas notificações (links aqui).
Você prograna com auxílio do Google? De algum outro site? É uma pergunta retórica.
Sim, utilizo ele pra tentar otimizar algo, perguntar sobre alguma outra abordagem dado um pedaço de código, muito por curiosidade. Ele ainda pode parecer inútil para muita gente, mas talvez elas estejam se esquecendo que a aplicabilidade pra avaliar seu código é só uma das milhares de coisas possíveis. Vamos imaginas alguns cenários:
1 - Uma criança, um idoso sendo alfabetizado pode muito bem colar um pedaço de texto e pedir para corrigir. Não é errado, ele faria o mesmo palavra a palavra no google.
2 - Uma pessoa com deficiencia visual pode usar ele de MUITAS formas, sem se preocupar com anúncios, elementos não acessíveis. Como pedir receita de algo, perguntar qualquer coisa sobre qualquer região ou qualquer assunto e receber uma explicação.
3 - Muitas outras coisas que ainda vamos descobrir.
O ponto é, TODA nova tecnologia que veio de algum modo facilitar, ajudar na inclusão nos estudos de alguém que tenha dificuldade, permitir que TODOS tenham acesso, parece incomodar MUITA gente. E são as mesmas pessoas que sempre reclamam das coisas novas.
Não devemos pensar somente em nós e em quanto sabemos sobre algo e supostamente não precisamos dela, mas sim em quem precisa. Em quem tem dificuldade, em quem essa ferramente pode libertar de um emprego e lhe dar outro melhor abrindo sua mente.
Eu uso bastante 2 ferramentas que são o chatGPT e o Phind onde consigo melhorar a performance dos meus selects e sub-selects de até media complexibilidade e aprender sobre o padrão SQL-92 com o ChatGPT e com o Phind consido sugestões de possibilidades de implementar a mesma coisa em determinada linguagem ou framework por exemplo "me mostre uma sidebar com efeito X em html5+CSS" e ele trás muita das vezes links e sugestões assim diminuindo bastante o tempo de pesquisa. Os dois geralmente trazem dicas de melhorias assim como exemplos de códigos.
Uso Copilot no PHPStorm, mas eventualmente uso o GPT online gratuito quando quero uma sugestão de como fazer uma lógica que eu nunca fiz antes ou tenho alguma dúvida de como um código de terceiro funciona.
Eu sou o cara que gosto de buscar a resposta por mim mesmo: stack overflow, docs da linguagem... Sou dos tempos de "abrir o Deitel" e achar a resposta.
Mas eu sei que o mundo não funciona mais assim. Estou tentando me adaptar ao Chatgpt rsrs
Não, já experimentei o copilot e já testei o chatgpt. Eles mais atrapalham do que ajudam. Outro dia eu fiz uma pergunta no próprio chatgpt sobre uma documentação da OpenAI (criadora do chatgpt), a documentação errou 3 vezes, e nas 3 quando confrontei a informação no próprio chat a IA pediu desculpas e se corrigiu (rs). Cheguei a comentar isso no meu linkedin (https://www.linkedin.com/feed/update/urn:li:activity:7064691110211653632/).
Em geral, é interessante usar para aprendizado e como informação complementar, nunca como informação / código final. Acrescento, sempre confirme as informações com documentações oficiais.
O Copilot se tornou ferramente indispensável para o meu dia a dia de trabalho, ele ajuda muito com sugestões de códigos, melhorias, ou até mesmo tarefas chatas. Por exemplo, quando ele identificada que estou seguindo um padrão, ele já vai sugerindo novas linhas de código naquele mesmo padrão, poupando muito tempo.
Claro, ele era muitas vezes também, assim como acerta. Então não tira que devemos realizar testes e também conferir tudo que ele está escrevendo.
Também uso o Chat GPT, faço perguntas para no sentido de pair programing, então peço sugestões ou para que ele identifique algum possível problema.
Vale lembrar que apesar do potencial, o Chat GPT precisa de contexto, então as vezes começo da seguinte forma:
- Adiciono todo o contexto para ele, até mesmo trechos de código se necessário, e falo para ele guardar e entender a situação.
- Depois de fato faço a pergunta que preciso, dado o contexto que inseri anteriormente.
- Procure fazer perguntas em inglês, mesmo que seu inglês não seja dos melhores, até mesmo escrito de forma errada, ele entende muito melhor do que português
Ele mais era do que acerta, mas com base nas respostas dele, já consegui pelo menos tirar uma dúvida de para onde ir, ou o que pesquisar, testar ou estudar.
Na minha opinião essas ferramentas vieram para ficar, e acredito que quem não se adaptar, vai ficar para trás, não tecnicamente. Mas talvez em fazer uma mesma atividade em menos tempo. Afinal essas ferramentas não fazem o seu trabalho e acredito estar longe disso, mas de fato poupam tempo e gasto de energia.
Tem um mês mais ou menos comecei a usar para ver diferenças menos óbvias de sintaxe entre diferentes compiladores de uma mesma linguagem (sou velho, programo em Delphi) e algumas coisas no Lazarus são diferentes. Acaba ajudando um bocado.
Por exemplo, tenho um conjunto de componentes TEdit (para entrada de texto) e quero que no evento onExit deles seja executada uma função que muda a cor de fundo do componente se ele estiver vazio. Escreveria a rotina em Delphi dessa forma:
procedure TForm1.varreEdits(Sender: TForm);
var
C: Smallint;
begin
with Sender do
begin
for C := 0 to ComponentCount - 1 do
begin
if (Components[C].ClassType = TEdit) then
begin
TEdit(Components[C]).OnExit := pintaFundo;
end
end;
end;
end;
No envento ou Show do Formulário eu exacutaria essa rotina:
procedure TForm1.FormShow(Sender: TObject);
begin
varreEdits(Self);
end;
E a rotina de "pintaFundo" ficaria:
procedure TForm1.pintaFundo(Sender: TObject);
begin
if (TEdit(Sender).Text = '') then
TEdit(Sender).Color := clRed
else
TEdit(Sender).Color := clBtnFace;
end;
No Lazarus eu teria que fazer a rotina "varreEdits" ligeiramente diferente:
procedure TForm1.varreEdits(Sender: TForm);
var
C: Smallint;
begin
with Sender do
begin
for C := 0 to ComponentCount - 1 do
begin
if (Components[C] is TEdit) then
begin
TEdit(Components[C]).OnExit := @pintaFundo;
end
end;
end;
end;
E a rotina "pintaFundo" também ficaria ligeiramente diferente:
procedure TForm1.pintaFundo(Sender: TObject);
begin
if (Sender is TEdit) and (TEdit(Sender).Text = '') then
TEdit(Sender).Color := clRed
else
TEdit(Sender).Color := clDefault;
end;
A única coisa que não mudaria seria a rotina do "onShow" do formulário, que chama a "varreEdits". Quebra um galhão quando você tenta rodar um código, no caso ObjectPascal do Lazarus para o Delphi (ObjectPascal renomeado), e está tudo como deve mas não funciona por conta dessas diferenças "arcanas" entre os dois dialetos.
Acho que sou azarado, ou tenho uma completa inaptidão com prompts.
Por mais detalhado que seja o prompt, nunca consigo uma resposta satisfatória. Acho que o ChatGPT sempre me dá uma resposta de um estagiário ruim, porém confiante (diz as maiores barbaridades com convicção). Sempre vem algo mais ou menos, que eu tenho que completar ou então corrigir/reescrever completamente (isso quando ele não trava ou interrompe a resposta no meio da geração, o que costuma acontecer com uma frequência irritante).
Depois, por curiosidade, procuro pelo mesmo problema no Google e/ou vejo a documentação oficial, e acabo percebendo que teria sido mais rápido (ou seja, da forma que já faço hoje acabo sendo mais produtivo). Sei lá, a IA pra mim não tem ajudado muito não...