- Quando comecei a usar ferramentas de código com IA, fiquei impressionado com a surpresa e a eficiência que elas proporcionavam
- Em especial, elas ajudavam a analisar erros de compilação em C++, o que parecia quase mágico
- Usando o GitHub Copilot e várias ferramentas de integração de editores baseadas em LLM, isso acabou virando parte do meu fluxo de trabalho de desenvolvimento
- No entanto, no fim de 2024, removi do meu editor de código todos os recursos de integração com LLM
- Ainda uso IA ocasionalmente, mas ela não faz parte do meu fluxo de trabalho principal
Uma experiência parecida com o Tesla FSD
- Entre 2019 e 2021, dirigi um Tesla e usei o FSD com frequência
- Ao usar o FSD na rodovia, meu nível de atenção ao dirigir foi diminuindo gradualmente
- Por depender do FSD, minha capacidade de dirigir por conta própria enfraqueceu
- Quando voltei a dirigir um carro comum, levei um tempo para recuperar a concentração
Minha experiência usando editores de código com IA
- Quanto mais eu usava ferramentas de IA, mais rápido eu trabalhava, mas minhas habilidades fundamentais enfraqueciam
- Em projetos paralelos, eu não podia usar essas ferramentas de IA, e isso me causava desconforto e diminuía minha confiança
- Passei a ter dificuldade em tarefas básicas como definir funções e escrever testes
- Ao depender da IA, perdi confiança para tomar sozinho decisões de implementação
- No fim, percebi na prática que minhas habilidades haviam piorado em tarefas complexas
A perda da intuição
- A palavra alemã ‘Fingerspitzengefühl’ se refere à capacidade intuitiva de julgamento que uma pessoa experiente desenvolve
- Ao escrever código, isso também é uma sensibilidade que surge à medida que você se familiariza com uma linguagem e um framework
- Essa sensibilidade é importante em escolhas técnicas detalhadas, como uso de ponteiros, seleção da biblioteca padrão e uso de
assert
- Ferramentas de IA enfraquecem essa sensibilidade
- Ao considerar a qualidade e a manutenção do código, a intuição humana é extremamente importante
Desenvolver também é possível sem ferramentas de IA
- O medo de não conseguir trabalhar sem ferramentas de IA é exagerado
- Na prática, a IA não é tão útil assim em projetos grandes ou sistemas legados
- Em projetos que usam ferramentas internas, frameworks próprios ou DSLs internas, LLMs não ajudam muito
- Código relacionado à segurança (
JWT, RBAC etc.) não deve ser delegado à IA
- Segurança é uma área que você precisa compreender e pela qual precisa se responsabilizar diretamente
- Se a IA cuidar de tudo, da escrita de código à revisão de PR e ao deploy, os problemas de segurança vão disparar
Definindo um ponto de referência para usar IA
- IA é útil, mas evito a forma de uso integrada ao editor
- Eu mesmo insiro o contexto e recebo apenas o código necessário para aplicar manualmente
- Exemplos: conversão de testes, transformação de cálculos SIMD, decodificação de dados compactados
- Esse método aumenta o senso de responsabilidade sobre o código e também reduz custos
- Usar IA para aprendizado é útil: pedir explicações sobre código assembly, shaders e código de rede é especialmente proveitoso
- No meu blog pessoal, não uso conteúdo gerado por IA e prefiro criações humanas
Continuar fazendo o que você gosta
- Além de eficiência e produtividade, também é importante continuar fazendo aquilo de que você gosta
- Assim como no xadrez, mesmo que a IA possa vencer, as pessoas continuam apreciando a atividade; com programação, também é possível continuar por prazer
- O importante não é apenas fazer melhor, mas continuar programando porque você gosta disso
Um conselho para desenvolvedores iniciantes
- Não se torne um “júnior eterno” dependente de IA
- Desenvolva sua capacidade de escrever código com as próprias mãos e entenda profundamente como os sistemas funcionam
- É importante evoluir estudando a estrutura que roda por baixo dos panos
- IA é apenas uma ferramenta, não uma solução completa por si só
- Às vezes, também é preciso praticar trabalhar sem IA
- Só com “vibe coding” você não vai se tornar um desenvolvedor realmente competente
- Se você não consegue programar sem IA, então não está programando de verdade
Conclusão
- IA é uma troca em que se sacrifica conhecimento em nome da velocidade
- Às vezes esse trade-off vale a pena, mas treinar os fundamentos é indispensável
- Desenvolvedores competentes praticam repetidamente os fundamentos
- A IA ainda está longe de substituir empregos, e muitas empresas querem principalmente atrair investimento estimulando FOMO
- IA é apenas uma ferramenta, não um substituto para o pensamento
- É importante manter sempre a curiosidade e continuar aprendendo
16 comentários
Os fundamentos básicos de um desenvolvedor competente não permanecem inalterados desde a invenção do computador?
Eu também, enquanto me preparava para testes de programação, acabei abrindo o Cursor por puro hábito, a ponto de apertar mais
Tabdo que realmente digitar... hehe. Com carinho, voltei para o VSCode.Acho que quem cria ferramentas de IA também conhece bem esse problema. Só estão fazendo silêncio sobre isso.
Se você depender de IA sem pensar, pode acabar ficando conceitualmente igual a um gerente incompetente que não entende nem a arquitetura nem consegue escrever uma linha de código, só manda os subordinados fazerem o trabalho, sem conhecer os riscos inerentes ao código e sem conseguir encontrar uma solução quando surge um problema. A única diferença é que a ferramenta usada muda da inteligência humana para a inteligência artificial.
Não há nada melhor do que isso para programação braçal e repetitiva, mas...
Em geral, eu concordo bastante. Ainda acho que, por enquanto, existem áreas em que esse tipo de sensibilidade é necessário, e acredito que a diferença entre estar consciente disso e não estar é bem grande. Acho que dá para usar como ferramenta, mas é preciso ter plena consciência do que está acontecendo.
A experiência de usar editores de código com IA, a perda da intuição e os conselhos para desenvolvedores iniciantes: esses três pontos realmente geram muita identificação.
Então nem use computador, pra quê?
Hahaha, concordo.
kkkkkkkkkk
Será que é a versão de 2025 do “Sr. Kim, não use function...” rs
Pelo texto, não parece que esteja dizendo para não usar em trabalho braçal; parece mais estar dizendo para não delegar o raciocínio à IA.
kkk, +1 para isso.
Cada vez mais... estão surgindo situações que exigem prática deliberada... :)
???: "continue usando putty e vi"
Opinião no Hacker News
Acredita que existem dois tipos de habilidades: habilidades independentes e habilidades fundamentais
Agora não usa mais ferramentas de IA no nível de editor, como o Cursor, e resolve os problemas com conclusão de texto inline e chat
Faz a maior parte da programação manualmente, mas usa LLM para busca semântica e enriquecer a pesquisa
Desativou a conclusão de código; ler as sugestões gera uma carga mental grande
O livro de Nicholas Carr explica a dinâmica de como as habilidades se deterioram à medida que se depende da automação
É semelhante a artigos como "Por que todo desenvolvedor deveria aprender Assembly"
Usa apenas a IA de conclusão de linha que vem com o Rider
Ferramentas de IA tornam a vida mais conveniente
A perda de habilidades funciona nos dois sentidos
Usa no lugar da busca no Google ao procurar problemas específicos