30 pontos por GN⁺ 2025-04-04 | 16 comentários | Compartilhar no WhatsApp
  • 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

 
supermaxi 2025-04-28

Os fundamentos básicos de um desenvolvedor competente não permanecem inalterados desde a invenção do computador?

 
space0403 2025-04-05

Eu também, enquanto me preparava para testes de programação, acabei abrindo o Cursor por puro hábito, a ponto de apertar mais Tab do que realmente digitar... hehe. Com carinho, voltei para o VSCode.

 
ahwjdekf 2025-04-05

Acho que quem cria ferramentas de IA também conhece bem esse problema. Só estão fazendo silêncio sobre isso.

 
potatium 2025-04-05

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.

 
aqqnucs 2025-04-04

Não há nada melhor do que isso para programação braçal e repetitiva, mas...

 
dbs0829 2025-04-04

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.

 
dudghks5722 2025-04-04

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.

 
reagea0 2025-04-04

Então nem use computador, pra quê?

 
plumpmath 2025-04-06

Hahaha, concordo.

 
plumpmath 2025-04-06

kkkkkkkkkk

 
ifmkl 2025-04-04

Será que é a versão de 2025 do “Sr. Kim, não use function...” rs

 
dbs0829 2025-04-04

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.

 
hhkkkk 2025-04-04

kkk, +1 para isso.

 
tujuc 2025-04-04

Cada vez mais... estão surgindo situações que exigem prática deliberada... :)

 
kandk 2025-04-04

???: "continue usando putty e vi"

 
GN⁺ 2025-04-04
Opinião no Hacker News
  • Acredita que existem dois tipos de habilidades: habilidades independentes e habilidades fundamentais

    • Historicamente, muitas habilidades independentes foram perdidas e adquiridas
    • Lógica, raciocínio, capacidade de argumentação e compreensão de princípios básicos de mecânica e engenharia teriam sido úteis na Grécia Antiga ou na França do século XVIII
    • A IA é adequada para ser usada nas habilidades independentes da programação
    • Deixar a arquitetura fundamental do projeto nas mãos da IA pode enfraquecer a capacidade de resolver problemas fundamentais e de projetar software
    • A IA é útil para habilidades independentes, mas ainda é insuficiente nas habilidades fundamentais
    • Editores de código com IA são úteis sem o risco de degradação de habilidades no longo prazo
  • 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

    • Sentia que o cérebro estava se atrofiando por depender demais da IA
    • No futuro, a diferença entre quem depende excessivamente da IA e quem não depende ficará ainda maior
  • Faz a maior parte da programação manualmente, mas usa LLM para busca semântica e enriquecer a pesquisa

    • Não deixa o LLM escrever arquivos inteiros
    • Há uma boa citação sobre o mercado de ferramentas de IA: muitas empresas usam FOMO como estratégia de venda
  • Desativou a conclusão de código; ler as sugestões gera uma carga mental grande

    • Usa o chat apenas quando necessário
  • O livro de Nicholas Carr explica a dinâmica de como as habilidades se deterioram à medida que se depende da automação

    • Desligou o Copilot e passou a usar menos o chat
    • Tomou a decisão por dois motivos: as habilidades estavam piorando e programar estava ficando menos divertido
    • Gosta de pensar por conta própria e de aprimorar as próprias habilidades
    • Voltar a programar sozinho é mais lento, mas uma experiência mais prazerosa
  • É semelhante a artigos como "Por que todo desenvolvedor deveria aprender Assembly"

    • A capacidade de programação com IA vai melhorar e entregar soluções 90% boas o suficiente para colocar no mercado
    • Talvez não sejam otimizadas nem totalmente seguras, mas isso não é tão diferente da maioria dos projetos de software do mundo real
  • Usa apenas a IA de conclusão de linha que vem com o Rider

    • É uma mistura razoável entre a conclusão de código clássica e um pouco de inteligência adicional
  • Ferramentas de IA tornam a vida mais conveniente

    • Dá para dirigir um carro manual, mas a transmissão automática é mais conveniente
    • Na programação também quer se concentrar nos problemas reais
    • A tecnologia existe para tornar a vida mais conveniente
  • A perda de habilidades funciona nos dois sentidos

    • Pode-se perder a habilidade inicial de usar LLM de forma eficaz
    • Há a possibilidade de que os LLMs mudem as linguagens de programação
  • Usa no lugar da busca no Google ao procurar problemas específicos

    • Prefere o Google porque os resultados da IA são longos e prolixos demais, mas o Google está ficando cada vez menos útil