28 pontos por GN⁺ 2025-10-12 | 3 comentários | Compartilhar no WhatsApp
  • No ambiente recente de educação em programação, o “inferno do vibe coding” surgiu como um novo problema no lugar do “inferno dos tutoriais”
  • Se o inferno dos tutoriais era o estado em que a pessoa “não consegue criar nada sem um tutorial”, o inferno do vibe coding significa o estado em que “não consegue programar sem IA e não entende como o código gerado pela IA funciona”
  • O uso excessivo de ferramentas de IA reduz a motivação para aprender, e vem surgindo a situação paradoxal de que pessoas com menor alfabetização em IA usam mais IA
  • Ferramentas de IA podem ajudar muito como apoio ao aprendizado quando usadas corretamente, mas o uso indiscriminado apenas para “obter a resposta” atrapalha a formação de uma compreensão construtiva
  • O essencial no processo de aprendizagem é pensar por conta própria e tentar resolver sozinho, e é importante desenvolver a postura de acumular experiência resolvendo problemas sem tutoriais nem auxílio de IA

Contexto do problema: do inferno dos tutoriais ao inferno do vibe coding

  • Em 2019, o principal problema da educação em programação era o “inferno dos tutoriais”
    • A pessoa consegue seguir um tutorial, mas não consegue criar nada sozinha
    • Gasta mais tempo assistindo a vídeos sobre programação do que programando de fato, sem entender os conceitos centrais
    • No fim, acumula apenas conhecimento superficial e, por não entender o funcionamento interno, não consegue escrever código por conta própria em situações reais
  • Para resolver isso, a Boot.dev se concentrou em três pontos
    • Currículo profundo: enfatizar a necessidade de aprender fundamentos de ciência da computação fora da universidade tradicional
    • Abordagem centrada na prática: escrever código diretamente junto com o aprendizado de cada conceito
    • Fortalecer texto rico em vez de vídeo: vídeos correm o risco de virar consumo passivo
  • Em 2019, aulas longas no YouTube que acumulavam milhões de visualizações agora mal conseguem passar de 50 mil visualizações
    • Canais como FreeCodeCamp, Traversy Media e Web Dev Simplified mostram essa tendência
  • No entanto, os dados do Google Trends para “learn to code” ainda mantêm alto interesse
  • Cerca de 1.300 novos usuários se registram diariamente na Boot.dev e, nos últimos 18 meses, as reclamações sobre o inferno dos tutoriais diminuíram, mas surgiu uma nova forma de dificuldade

Definição de inferno do vibe coding

  • Características do inferno dos tutoriais
    • “Não consigo criar nada sem tutoriais”
    • “Não entendo a documentação, então preciso de vídeos”
    • “Preciso de frameworks complexos até para tarefas simples”
  • Características do inferno do vibe coding
    • “Não consigo fazer nada sem a ajuda do Cursor”
    • “Eu fiz um jogo de tower defense incrível. Aqui está o link http://localhost:3000”
    • “Não sei por que o Claude adicionou 6.379 linhas para lazy-load de imagem”
  • Hoje, aprendizes autodidatas estão criando muitas coisas, mas constroem projetos sem desenvolver modelos mentais sobre como o software funciona
  • Lutam contra alucinações da IA e contra bots obcecados em apenas passar nos testes, e confiam cegamente no código gerado por IA em vez de resolver problemas de verdade

O futuro e a realidade da programação com IA

  • Tenho uma visão relativamente otimista de que, no curto prazo, a IA não vai substituir completamente os desenvolvedores
    • Já se passaram 3 anos desde que começaram a dizer “faltam 6 meses para a IA tirar os empregos”, e ainda assim continuam contratando desenvolvedores
  • O GPT-5 foi lançado, mas ficou apenas em melhorias incrementais em relação ao GPT-4, o que é interpretado como evidência de que a AGI não deve chegar tão cedo
  • Uso ferramentas de IA todos os dias, mas não tenho certeza de quanto isso realmente aumenta a produtividade
    • Não está claro se a IA me torna mais produtivo ou apenas mais preguiçoso
  • Resultado de pesquisa de 2025: desenvolvedores supunham que a IA elevaria a produtividade em 20% a 25%, mas, na prática, ficaram 19% mais lentos
    • Um resultado decepcionante diante de US$ 7 trilhões em investimentos

Os riscos da IA e da queda da motivação para aprender

  • A cultura de uso de IA pode ser negativa para a motivação dos aprendizes
  • O ponto mais preocupante da febre da IA (bolha?) é o surgimento de uma geração com a atitude “por que aprender? A IA já sabe tudo”
  • Se a IA não conseguir de fato substituir todos os trabalhos de colarinho branco, além de uma bolha no mercado acionário, poderemos enfrentar também uma escassez de mão de obra qualificada
  • Investidores sem base técnica entendem errado que “a IA já substituiu totalmente a programação”, enquanto desenvolvedores seniores ainda não encontraram formas úteis de integrar ferramentas de IA ao trabalho cotidiano
  • Há preocupação porque quanto menor a alfabetização em IA, maior a tendência de usar IA com frequência
    • Isso funciona como a armadilha definitiva de Dunning-Kruger: o fenômeno em que quem sabe menos acha que sabe mais
    • Aprendizes concluem que o autodesenvolvimento não faz sentido porque “a IA já sabe”

A IA é benéfica para o aprendizado?

  • O interesse social em aprender programação continua alto
  • A IA pode ser benéfica para a aprendizagem, mas existem dois problemas estruturais
  • Primeiro: o problema da bajulação (sycophant)

    • Chatbots de IA tendem a concordar excessivamente com a opinião de quem pergunta
    • Ao conversar “sobre ROAS”, com os mesmos dados, eles chegam a conclusões completamente opostas dependendo da direção da pergunta, sempre respondendo com tom confiante e de especialista
    • Isso tira do aprendiz a chance de vivenciar validação, pensamento crítico e correção de erros
      • Perguntamos a especialistas para que nos digam quando estamos errados
      • IRC e Stack Overflow faziam isso muito bem (talvez até bem demais)
      • Chatbots LLM tendem fortemente a não corrigir mal-entendidos fundamentais de aprendizes iniciantes
      • Hoje, estudantes têm conversas confortáveis com LLMs e acabam ouvindo o que querem ouvir, não o que precisam ouvir
  • Segundo problema: aprendizes querem ‘opiniões’ de verdade

    • A IA apresenta uma postura excessivamente equilibrada
      • “Algumas pessoas pensam X e outras pensam Y”
      • Isso torna mais difícil para o aprendiz decidir com qual lado concorda
    • O autor tentou usar prompts como “faça o papel de um capitalista” ou “faça o papel de um revolucionário marxista”, mas não obteve resultados satisfatórios
    • Aprendizes querem ouvir opiniões e comentários vindos de experiência real
      • DHH e por que removeu TypeScript do Turbo
      • Anders Hejlsberg e o que o TypeScript resolve para desenvolvedores JavaScript
      • É por meio de opiniões reais, com vieses e contextos evidentes, que se formam modelos mentais mais sutis
    • Respostas neutras e cautelosas, típicas de LLMs, atrapalham a internalização real do conhecimento

Quando a IA realmente ajuda no aprendizado

  • Quando usada corretamente, a IA é uma ferramenta incrível para aprender
  • Nunca foi tão fácil aprender programação
  • O caso do Boots, da Boot.dev, uma ferramenta de apoio educacional com IA
    • Estudantes usam quase 4 vezes mais o chat com o tutor de IA (Boots) do que a visualização da solução do instrutor (a resposta ideal)
    • Diferentemente de um chatbot genérico, o Boots ajuda no aprendizado da seguinte forma
      • É pré-configurado por prompt para não dar a resposta diretamente
      • Usa o método socrático para levar o estudante a pensar mais profundamente sobre o problema
      • Tem acesso à solução do instrutor, então a chance de alucinar sobre a resposta correta é muito menor
      • Tem uma personalidade divertida (um urso mago)

Como escapar do inferno do vibe coding

  • Em conclusão, seja no inferno dos tutoriais ou no inferno do vibe coding, é extremamente importante ter a experiência de “não terceirizar e fazer por conta própria”
    • Inferno dos tutoriais: desligar o vídeo e acumular experiência escrevendo código diretamente
    • Inferno do vibe coding: desligar o autocompletar com IA, como o Copilot, e acumular experiência resolvendo problemas sozinho
  • O que evitar:
    • Autocompletar por IA no editor
    • Resolver projetos por meio de modo agente e ferramentas de automação por IA
  • O que pode ser aproveitado:
    • Chatbots que respondem perguntas, explicam conceitos e fornecem exemplos
    • Prompts de sistema que induzem perguntas no método socrático para estimular pensamento mais profundo
    • Prompts de sistema que pedem citações de fontes e links para a documentação ao fazer afirmações para garantir confiabilidade da informação

Princípio central

  • Aprender precisa ser desconfortável
    • O inferno dos tutoriais permite evitar o desconforto observando outra pessoa programar
    • O inferno do vibe coding permite evitar o desconforto deixando a IA escrever o código
  • O aprendizado real acontece quando você trava, se frustra e, mais importante, é forçado a resolver problemas
    • É assim que a rede neural humana se reconecta
  • Se a ideia de que “aprender precisa ser difícil” for levada longe demais, isso pode virar desculpa para um projeto educacional ruim
    • O autor não defende isso
    • Mesmo que um conceito seja explicado da melhor maneira possível, o estudante ainda precisa lutar com ele e usá-lo por conta própria em um novo contexto para realmente entendê-lo
  • Aprendizado real se completa no processo de travar, se frustrar e romper a barreira com a própria força

3 comentários

 
aer0700 2025-10-12

Embora seja um contexto um pouco diferente, o inferno dos tutoriais também acontece porque os tutoriais de framework não foram feitos para servir como material básico de ensino de CS.
Um iniciante que viu o tutorial de Django e criou um app de enquete não consegue fazer um blog sozinho, porque o tutorial de Django é um texto para explicar Django a pessoas que já sabem o que é HTTP, o que são templates, o que é WS, o que é DB etc.; não é um texto para explicar a web. Há uma quantidade enorme de contexto omitida no tutorial de Django, e acho que essa talvez seja a causa do surgimento do inferno dos tutoriais.
Reescrever o tutorial de Django para alguém que está programando pela primeira vez hoje também parece uma boa tarefa. Algo como primeiro explicar a estrutura do HTTP e depois explicar como o Django lida com cada elemento.

 
gudrb963 2025-10-15

Que opinião ótima!

 
GN⁺ 2025-10-12
Comentários no Hacker News
  • A expressão "Tutorial Hell" faz total sentido para mim: você assiste a uma aula de 6 horas e acompanha o código, mas, quando precisa criar algo do zero, trava completamente. Isso é o típico inferno dos tutoriais. Por isso, historicamente, o aprendizado por apprenticeship foi o método mais eficaz: o júnior acompanha o sênior, e um mestre artesão conduz o todo de cima, ao mesmo tempo gerenciando e orientando o projeto. É uma pena que nossa comunidade de desenvolvedores não tenha funcionado como uma guilda por tanto tempo. Acho que já não deveríamos ter seguido esse caminho desde o fim dos anos 1980. Se houvesse guildas, dá para imaginar que haveria bem menos desenvolvedores, e talvez a evolução do setor tivesse tomado outro rumo.

    • Não são só iniciantes: até desenvolvedores experientes têm dificuldade quando mandam começar um projeto do nada. Em geral, trabalhamos sobre uma codebase existente e, quando precisamos de um app novo, começamos de um template ou de copiar e colar. Casos de realmente construir algo totalmente novo do zero são raros. Assim como um eletricista não costuma fazer toda a fiação de um prédio novo no dia a dia, também é raro um desenvolvedor de empresa montar algo de fato do zero. Mesmo o modelo de apprenticeship, no fundo, não muda tanto essa estrutura.

    • Pela minha experiência, boas universidades treinam os alunos com tarefas graduais e práticas. Você começa resolvendo estruturas de dados simples, algoritmos e quebra-cabeças, e depois passa a criar SOs, bancos de dados, estruturas de dados persistentes, compiladores, CPUs, simulações e até modelos de machine learning. Vai de uma função até algo cada vez maior construído por você mesmo. Sou muito grato por esse tipo de formação. Veja este link relacionado.

    • Eu uso LLMs no aprendizado de programação como se fosse uma relação mestre-aprendiz. O LLM só avança quando eu mando; ele explica e orienta, mas sou eu quem escreve. É muito melhor do que sair procurando curso ou tutorial novo. Na verdade, o inferno dos tutoriais é um fenômeno criado por pessoas que se imaginam professoras. Livros e cursos em massa, no fim, também não conseguem ensinar algo de verdade. Acho que o modelo atual de ensino de programação está completamente errado. Hoje prefiro usar LLMs para resumir documentação recente de linguagens ou bibliotecas novas, ou então montar eu mesmo o plano de estudo. Só fico meio insatisfeito porque nunca tenho certeza se o LLM está alucinando ou não.

    • Saí da escola bem cedo por causa do tédio e do método antiquado de ensino, e fui direto para o trabalho como aprendiz de engenheiro de software. O currículo escolar não serviu para nada. No fim dos anos 90, foi uma sequência de erros e tentativa e erro; eu, meu mestre e até o mestre dele aprendíamos batendo cabeça na prática. Montávamos roteadores ISDN com Linux, configurávamos servidores de sites, trabalhávamos com HTML, Perl e PHP, e vivíamos DevOps e engenharia de verdade — embora nem existissem esses nomes na época. Era um tempo de ampliar fronteiras com criatividade e disposição, quase sem documentação. Tem algo disso que conversa com o vibe coding da era da IA, embora hoje a pressão seja muito maior. Ainda assim, são lembranças muito divertidas.

    • No setor de tecnologia, o gatekeeping da profissão é visto de forma negativa. Isso vem da arrogância do setor, e também da intenção do capital de ampliar a oferta de mão de obra para reduzir salários. Com isso, desapareceram padrões profissionais de verdade, e entrevistas humilhantes como LeetCode viraram o gatekeeper da profissão, sem relação real com o trabalho em si.

  • Como alguém que usa Zed Pro e GPT para programar todos os dias, vejo a evolução dessas ferramentas como um reflexo das ineficiências da programação moderna. A web moderna é ao mesmo tempo incrível e horrível. Se burocracia significa ficar preso em regras complexas, então o desenvolvimento moderno é seu maior representante. É triste pensar que até a tarefa mais simples precise da orientação de ferramentas de automação probabilística. Eu costumava dizer aos mais novos que o importante não era conhecer uma linguagem específica, mas ter a capacidade de continuar aprendendo coisas novas. Algumas tendências duram, claro, mas no fim você sempre precisa aprender novas ferramentas e linguagens. Talvez seja a idade, mas em algum momento senti que a complexidade começou a transbordar. Antes, programar parecia elétrico demais ou matemático demais; agora existe um outro tipo de complexidade acumulada.

    • Também me identifico com isso. Eu queria um ambiente de computação como nos filmes de ficção científica, em que você só diz algo como "redirecione a energia para a frente!" e peças ou sistemas se encaixam, se reutilizam e funcionam facilmente. Mas, na prática, trocar a câmera de um celular Android por um iPhone é uma tarefa quase impossível.

    • Não captei exatamente o que você quer dizer, mas o uso de "burocracia" parece estranho. Na prática, saber pesquisar é a habilidade central; quem consegue encontrar qualquer coisa consegue fazer qualquer coisa. Ferramentas de automação, no fundo, não são tão diferentes de livros ou professores. Se algumas pessoas não têm essa habilidade, isso faz parte da constância da natureza humana; não faz sentido culpar a melhora das ferramentas.

    • Um grande problema é que escrever, pesquisar e ler documentação é realmente muito difícil. Isso torna aprender difícil, mas a IA deixou o aprendizado mais fácil. Por exemplo, ela entende muito bem coisas como Unreal Engine, de um jeito surpreendente.

    • Muitos dos problemas que carregamos são exemplos da complexidade acidental descrita por Brooks em "No Silver Bullet". Os LLMs ajudam a atravessar essa complexidade e até derrubam os silos de conhecimento acumulados em cada linguagem ou framework.

    • Se esse setor continuar tão especulativo por mais um tempo, talvez cheguemos a um mundo em que a própria programação desapareça.

  • Hoje todo mundo consegue escrever código, então a quantidade de código na organização aumenta umas 10 vezes. Mas o número de revisores continua o mesmo, então fica impossível dar conta. Se nem um sanity check de código por LLM dá para usar, então o que exatamente deveríamos fazer? Ontem mesmo um não especialista criou um algoritmo de otimização com Codex, e me pediram para melhorar aquilo. O problema é que o código era um desastre completo: fazia busca ingênua em milhares de combinações de inteiros, não respeitava bem as restrições e, no fim, produzia resultados não confiáveis. Acabei passando o dia inteiro revisando o código e ainda tive de apresentar para executivos que aquilo era essencialmente inútil.

    • A resposta para "sanity check de código por LLM" são testes unitários. O LLM também gera muito bem código de teste e código testável, quando você pede. Se os testes realmente chamam o código e verificam bem os edge cases, isso é muito mais rápido do que revisão de código. Dá até para incluir testes de performance. Acho que vamos caminhar para um modelo em que trabalhamos mais em torno de definições e testes, e a implementação interna das funções vai importar cada vez menos. É uma grande mudança de perspectiva.

    • Basta olhar para o caso da programação em Excel. No começo, todo mundo ignora; quando explode, correm atrás gastando dezenas de milhares para consertar antes que a empresa quebre.

    • Sobre a parte de "o número de revisores continua o mesmo": LLMs também podem ajudar em code review. Até o GPT-5 já é bom em detectar erros locais, como off-by-one ou retornos ausentes. Ainda há limitações para problemas que exigem compreensão estrutural mais ampla. No futuro, imagino que seja possível até fazer fine-tuning regular de LLMs em codebases grandes e usá-los como revisores de primeira passada para toda mudança.

    • Problemas de OR (otimização combinatória) surgem porque quem programa de forma improvisada muitas vezes nem percebe que caiu em uma área algorítmica essencialmente especial. E, mesmo quando você explica, a pessoa frequentemente não entende a teoria matemática e insiste em tentar do seu jeito.

    • Numa situação dessas, talvez a única resposta viável seja realmente fazer apresentações técnicas para a liderança da empresa e deixá-los entender com precisão o estado da situação.

  • Achei que esse texto seria mais uma daquelas discussões de que a IA está arruinando desenvolvedores juniores e por isso vai haver uma crise de reposição dos sêniors. Indiretamente ele até toca nisso, e no geral concordo. Mas a parte sobre sycophancy foi especialmente marcante. Antes eu achava que interfaces como o ChatGPT ajudavam no aprendizado, mas o exemplo de ROAS no YouTube bateu forte. Se a forma de perguntar permite ao aluno distorcer tanto a conclusão do "professor", então inúmeros iniciantes inevitavelmente serão conduzidos na direção errada. Nem sei se o conjunto de promptings aplicado ao AI "Boot" é suficiente. No fim, mesmo na era da IA, eu ainda preciso que "alguém" rejeite meus PRs repetidamente para eu crescer. E esse "alguém" ainda não pode ser uma IA.

    • Pela minha experiência, mesmo quando peço uma crítica dura, a IA ainda mistura isso com uma postura de querer me agradar. Era assim nas versões antigas do GPT e continua parecido nas atuais. Fica uma sensação meio estranha. No fim, a ferramenta só é realmente bem aproveitada por quem sabe como quer ser ajudado e tem consciência dos problemas específicos dos LLMs.

    • Para evitar sycophancy, eu sempre faço a mesma pergunta duas vezes, inserindo um viés contrário. Mesmo assim, não dá para saber se a IA está reforçando vieses ocultos que eu já tenho.

  • Não sou iniciante, mas continuo aprendendo novos frameworks, linguagens e algoritmos, então não acho que autocomplete com IA seja algo ruim. O antigo IntelliSense e o autocomplete do ReSharper também ajudavam muito quando eu estava aprendendo bibliotecas novas ou recursos novos de linguagem. O ReSharper, quando você codava do jeito antigo, sugeria recursos novos, e aprendi bastante com isso. O autocomplete com IA parece uma evolução muito maior: ele sugere as coisas de forma natural, e você pode usar ou não. Isso também ajuda no aprendizado. No fim, se você tiver curiosidade para ler e entender as sugestões, a IA torna aprender mais fácil. Antes, era basicamente copiar e colar do Stack Overflow.

    • O autocomplete tradicional mostrava todos os métodos, variáveis e constantes disponíveis naquele escopo, além de ligar isso à documentação. Era realmente ótimo para aprender, porque eu podia julgar por conta própria quais opções existiam. Já o autocomplete com IA, na prática, parece mais colar uma resposta do Stack Overflow sem explicar o contexto. Do ponto de vista de quem está aprendendo, talvez seja melhor pesquisar diretamente no Stack Overflow ou, se precisar, pedir para um chatbot explicar por que aquele código funciona daquele jeito.

    • Acho que existe uma pequena diferença. Se você já tem alguma experiência, usar autocomplete em uma linguagem nova é algo natural. Mas é outra história quando um iniciante sem fundamentos está aprendendo seu primeiro for.

    • Eu gosto de programação agentic com IA. Criar coisas me faz feliz, e isso faz parte de experimentar ideias. Não estou colocando esse código em produção, então não me preocupo com o que os outros pensam. Para conversar com colegas tecnicamente brilhantes, preciso tentar e aprender por conta própria. Gosto de programar desde os 10 anos, mas nunca fui desenvolvedor profissional. Com a era da IA, meu amor por código e experimentação voltou. É muito divertido mexer com tecnologias web do futuro como WASM, com sistemas diversos, caçar bugs e fazer as coisas do meu jeito. Ferramentas como Cursor AI até automatizam minha configuração de git e facilitam dar push por ssh. Claro que eu mesmo poderia fazer isso, mas deixo a IA fazer. Tenho hábitos cristalizados desde quando comecei pela sintaxe de C na infância, mas gosto muito de lidar com backend em python, servidor web em flask e frontend em JavaScript. WASM Python ainda deixa bastante a desejar, mas continuo experimentando. Gosto de consolidar fundamentos e aprender do meu jeito. Também sinto com frequência que engenheiros tendem a complicar mais do que o necessário.

    • Autocomplete com IA é a melhor ferramenta. Você recebe a sugestão de código que quer, sem precisar abrir documentação, e como são só algumas linhas é fácil revisar. Ele não gera blocos enormes automaticamente, então também não atrapalha o aprendizado.

  • Não sou iniciante, mas o Copilot definitivamente facilitou aprender Rust. Combinado com o Intellisense, ele reduz a carga de ficar brigando com a sintaxe e permite focar nas partes importantes da linguagem. Em uma semana, consegui sair de abrir um livro sobre Rust para construir uma ferramenta funcional. Claro, isso não me transformou em engenheiro sênior, mas reduz claramente a barreira do "0 para 1". Eu não mando o Copilot escrever código; uso mais como um autocomplete melhorado, aceitando ou não as sugestões por conta própria.

    • O tema recorrente aqui é que sêniors experientes conseguem extrair valor dessas ferramentas porque, mesmo sem conhecer a nova linguagem, eles sabem "como programar". O cheiro de código ruim é o mesmo em qualquer linguagem. Já iniciantes muitas vezes nem conhecem o conceito de "code smell".

    • Eu também já achei que o Copilot ajudava muito no aprendizado de Rust, mas quando tentei programar sozinho, sem IA, vi como era realmente difícil. Só aprendendo com a IA desligada dá para escapar da ilusão de que você realmente sabe.

  • O mesmo problema existe em vários atalhos educacionais. Alunos pagam reforço para alguém fazer a lição por eles, ou ouvem uma explicação e acham que já vão tirar a prova de letra. Na verdade, algo pode parecer simples quando você está ouvindo a explicação, mas fazer sozinho é uma habilidade completamente diferente.

  • Se a IA não substituir de fato todos os empregos white-collar em poucos anos, acho que vamos enfrentar não só uma bolha no mercado acionário, mas também uma escassez de profissionais qualificados. Para mim, é como assistir os maiores talentos da minha geração se dispersarem.

  • Tentei achar uma frase representativa melhor para o título do post, mas não encontrei nada apropriado, então fiz o melhor que pude. Se alguém tiver uma sugestão de título mais precisa e neutra, pode trocar. Instruções relacionadas

  • Me identifico muito com a parte de "eu entendi, mas se tiver de escrever do zero, travo completamente". O mais doloroso e difícil para mim era justamente sair de apenas seguir tutoriais e tentar fazer algo parecido por conta própria. Mas esse processo doloroso também foi a experiência de aprendizado mais densa e eficiente que já tive. Depois aprendi coisas mais complexas e variadas, mas nunca mais vivi um aprendizado com essa densidade. É parecido com aquela sensação de dor de cabeça e estresse que eu sentia na matemática do ensino médio. Imagino que não seja uma experiência universal.