É o momento perfeito para ser um desenvolvedor sênior
Houve muito barulho no último ano sobre IA, agentes de IA, IA tomando conta de empregos de software, IA destruindo o mundo, AGI, etc. Pessoalmente, experimentei uma suave montanha-russa de emoções e toda vez que Fireship lança um vídeo, meus níveis de ansiedade aumentam.
No entanto, nos últimos meses, tem me ocorrido que, se você é um desenvolvedor experiente ou sênior (como você quiser se chamar), você está em uma bela posição para utilizar esta incrível nova ferramenta que se impôs em nossas vidas cotidianas. Quero argumentar que a IA não é uma ameaça para nossos empregos, mas um grande impulso. Porém, (e é um grande PORÉM) tudo depende de como você a usa.
Desenvolvedores Sêniores Têm uma Visão Ampla
Eu estava assistindo a este vídeo no Youtube do talentoso TJ DeVries e ele fala sobre como usar a IA para aprender. Ele e (o) Primeagen estavam construindo um aplicativo com Laravel, que ambos não conheciam, e acharam o preditor LLM muito útil. Ele estava fornecendo padrões para eles em uma linguagem com a qual não estavam familiarizados e eles consideraram isso como um sinal de que estavam no caminho certo.
Esta é a grande vantagem que os desenvolvedores experientes têm agora. Eles conhecem o suficiente de teoria, padrões e fundamentos de programação para rapidamente determinar se a saída do LLM escolhido é um acerto ou um erro. Eles também sabem as perguntas certas a fazer ou as solicitações corretas a dar, o que eu descobri ser muito importante e pouco discutido.
Exemplo Meu Usando Laravel
Sou um desenvolvedor front-end durante o dia e gasto a maior parte do meu tempo em React e TypeScript. No entanto, tenho experimentado o Laravel recentemente, pois estava recebendo muito elogio (além de ser um grande fã da abordagem de Taylor Otwell por muitos anos) e o tenho usado para construir alguns endpoints de API no meu tempo livre.
Eu sei como funcionam os endpoints de API, sei sobre CRUD, já trabalhei nesse tipo de coisa antes com NestJS e sua abordagem de injeção de dependência e estou bastante familiarizado com bancos de dados e migrações de banco de dados.
Isso significou que, ao começar, eu sabia mais ou menos o que queria fazer, apenas não sabia a abordagem ‘Laravel’, e é aqui que encontrei os LLMs (Claude 3.5 sonnet no Cursor, para ser preciso) muito úteis.
Eu sabia que queria algum tipo de controlador, então pedi ao Cursor alguns exemplos de como implementar um controlador em Laravel. Eu sabia que queria captar erros e retornar erros diferentes dependendo do que o erro era, mas novamente, eu não estava familiarizado com as melhores abordagens do Laravel para implementação. Através disso, descobri os Traits. O Cursor não deu imediatamente a sugestão sobre Traits, mas eu pedi uma maneira melhor de implementar o que originalmente sugeriu e algo que eu pudesse usar em controladores de API e controladores web.
É aqui que minha experiência entrou. Eu sabia sobre os princípios DRY na codificação e sabia que a lógica que estava implementando seria necessária em dois lugares e os potenciais bugs e problemas que isso poderia causar no futuro quando eu inevitavelmente fosse refatorá-la. Porque você SEMPRE precisa refatorar em qualquer projeto significativo e você aprende isso com a experiência! Eu sabia as perguntas certas a fazer.
A Experiência Importa
Saber as perguntas certas a fazer é um fator sutil, mas muito importante ao trabalhar com LLMs. Se você não tiver alguma ideia do domínio em que está, os LLMs podem muito rapidamente te levar por um caminho precário e perigoso. E eles fazem isso muito rapidamente, então você deve ser extremamente cauteloso.
Por exemplo, se eu pedisse a um LLM para me ajudar a criar um contrato legal para a contratação de um novo funcionário. Eu sei que o LLM proporcionaria alguma saída que, à primeira vista, pareceria muito credível. No entanto, se eu mostrasse esse contrato a um advogado, estou certo de que ele encontraria falhas no contrato que poderiam potencialmente deixar eu ou o novo funcionário legalmente expostos no futuro.
No entanto, se o advogado pedisse ao LLM para criar um contrato legal, ele saberia exatamente o que pedir, o que estar atento em termos de anomalias e, em última análise, criaria um contrato muito mais sólido. Ele poderia fazer isso com base em sua experiência.
O Diabo Está nos Detalhes
Eu estava assistindo este vídeo de Melkey recentemente, onde ele dá uma visão geral de alguém que inicialmente alegou ter construído um aplicativo SaaS no mundo real e que estava fazendo dinheiro real. Eles também alegaram que não tinham experiência como desenvolvedores. Tudo parecia muito impressionante se fosse verdade.
No entanto, alguns dias depois, a mesma pessoa estava em um estado de pânico e frustração, enquanto seu projeto começava a desmoronar ao seu redor.
Os detalhes que revelam são bastante assustadores. Eles deixaram chaves de API expostas, não se preocuparam com CORS e tinham algumas “coisas estranhas” em seu banco de dados, implicando que não aplicaram muita segurança. Tudo isso são coisas básicas se você tem alguma experiência como desenvolvedor, mas se não, você simplesmente não saberia sobre essas coisas.
E esta é a questão. Sim, a IA é certamente impressionante na perspectiva do que pode produzir através de nada mais que solicitações de voz. Mas pensar que qualquer um pode simplesmente pegar essa ferramenta e, com pouco esforço, replicar o que levaria a um profissional treinado meses para construir é simplesmente ingênuo.
Existem tantos detalhes no desenvolvimento de software que você não pode aprender sobre eles rapidamente. Você aprende sobre eles devagar, ao longo do tempo e geralmente com dor, porque a dor é a melhor professora.
Conclusão
Se você tem experiência como desenvolvedor de software agora, então você deve realmente estar aproveitando este novo e maravilhoso conjunto de ferramentas que temos à disposição. Certamente não é tudo fácil, mas é impressionante as coisas que podem ser feitas no momento. É como ter um escriba de código ao seu chamado, permitindo que você pense mais e implemente mais rapidamente, o que por sua vez permite mais tentativas e erros e experimentar mais ideias.
Se você não tem experiência e está procurando entrar no desenvolvimento de software, então eu imagino que pode parecer bastante assustador agora, pois a IA “pode fazer tanto”. Mas eu sou da forte crença de que, se você realmente ama construir e criar coisas junto com resolver problemas, sempre encontrará um lugar nesse mundo.
Compartilhe
Publicar comentário