1 pontos por GN⁺ 1 시간 전 | 1 comentários | Compartilhar no WhatsApp
  • Escrever com IA é uma forte tentação na redação de artigos, código e documentação, mas aumenta a ansiedade de estar perdendo a capacidade de escrever e pensar por conta própria
  • Ao reler o que a IA produziu, fica a sensação de que “parece apenas IA”, sem realmente carregar seu jeito de escrever nem sua intenção
  • Nos últimos 1–2 anos, houve uma grande dependência de IA para programar, escrevendo quase só prompts, e cresceu a sensação de perda, como se tivesse esquecido como escrever código diretamente
  • Agora, a tentativa é aprender de novo a programar com as próprias mãos, acreditando que pessoas capazes de ler e escrever código continuarão sendo necessárias mesmo depois da IA
  • O próprio impulso de colar um texto no Claude para conferir se está tudo certo é uma forma de autodúvida, e a IA se torna algo que se apoia nessa ansiedade e que precisa ser enfrentado

Ansiedade de que o uso de IA enfraqueça as habilidades de escrita e programação

  • Escrever com IA é muito tentador na produção de artigos, código e documentação, mas dá a sensação de que a capacidade de escrever diretamente está diminuindo
  • Antes, mesmo sem se considerar excelente em escrita ou desenvolvimento de software, havia a percepção de ter alguma competência, mas quanto mais o uso de IA aumenta, maior fica a sensação de que as próprias habilidades estão piorando
  • Ao reler resultados escritos com IA, a impressão é de que “parece apenas IA”, sem combinar com sua voz ou intenção e sem transmitir direito o que queria dizer
  • Essa ansiedade alimenta a autodúvida e a síndrome do impostor, a ponto de fazer questionar se realmente seria capaz de produzir o resultado por conta própria

Por que voltar a aprender a programar manualmente

  • Nos últimos 1–2 anos, a IA foi usada de forma praticamente total na programação, escrevendo quase só prompts e sem digitar diretamente sequer uma linha de código
  • Como resultado, surge a sensação de ter esquecido quase tudo sobre como programar, e perder algo que antes era o centro da vida traz tristeza e desânimo
  • Agora, a pessoa está reaprendendo por conta própria a programar com as próprias mãos
  • Mesmo com IA, acredita-se que a capacidade de desenvolver software não desaparecerá completamente
    • Pessoas que sabem ler e escrever código continuarão sendo necessárias
    • O número de pessoas necessárias pode diminuir, mas esse tipo de profissional ainda será necessário
  • Há também o desejo de que a IA possa reverter a tendência de demanda excessiva por desenvolvedores de software que durou os últimos 20–30 anos
    • Como em aulas de Robert Martin (Uncle Bob), antes de a ciência da computação virar uma profissão, físicos, matemáticos e acadêmicos programavam
    • Com o aumento explosivo da demanda por desenvolvedores de software, acredita-se que a especialização tenha ficado mais difusa
  • Mesmo quando o texto foi escrito sem IA, surge a preocupação de que algo esteja estranho ou faltando, e aparece o impulso de colá-lo no Claude para conferir
  • Esse próprio impulso é a autodúvida da qual a IA se alimenta, e continua sendo algo contra o qual é preciso lutar

1 comentários

 
GN⁺ 1 시간 전
Comentários do Hacker News
  • Não concordo muito com essa afirmação. Toda vez que uso IA para escrever código, fico lutando com aquela sensação incômoda de que preciso revisar tudo o que a IA fez e complementar ou corrigir com o meu próprio código
    Existe a dopamina de conseguir um app funcional em poucos minutos com vibe coding, mas esse incômodo acaba compensando isso e não parece que vai desaparecer tão cedo
    Acho que isso acontece porque tenho experiência; se eu fosse um desenvolvedor júnior ou pleno, eu também poderia cair facilmente nisso. Se eu não tivesse as cicatrizes de início de carreira, apanhando em code reviews de mentores experientes, talvez nem tivesse essa sensibilidade

    • Pela minha experiência, o Claude só sabe despejar código. Você dá qualquer problema e ele traduz isso não como “reduzir código”, mas como “escrever mais código”
      Tudo o que o Claude produz precisa de uma revisão de código muito cuidadosa; caso contrário, a base de código vai continuar crescendo e se aproximando assintoticamente de 100% de dívida técnica
      Eu reviso tudo o que o Claude gera, e uns 90~95% acabam em “uau, funciona. Mas tem código demais. Agora vamos passar 3 horas de mãos dadas reduzindo isso até não dar mais para cortar”
    • Não se deve fazer “vibe coding em poucos minutos”. Foi uma piada improvisada por alguém, mas a indústria não entendeu como piada, e alguns acham que isso é viável como forma real de desenvolvimento, mas não é
      Precisamos encontrar formas melhores de colaborar com agentes. Se a pessoa revisar as partes importantes que precisam de olhos humanos e “terceirizar” o resto, dá para chegar mais rápido a código e design que funcionam do mesmo jeito que se você tivesse programado diretamente
      Eu também reviso algo como 90% do código escrito por agentes, mas é muito mais agradável escrever ou falar alguns prompts do que digitar dezenas de milhares de caracteres e ficar indo e voltando entre arquivos o tempo todo. Talvez eu só esteja cansado de digitar
    • Concordo totalmente. Uso IA como apoio no desenvolvimento de jogos. Se você quer fazer algo novo ou interessante, precisa escrever o código por conta própria; caso contrário, está pedindo para sofrer
      Mas, para tarefas burocráticas que consomem muito tempo e são entediantes, eu desenho uma arquitetura clara e depois deixo a IA cuidar da implementação. Mesmo assim, preciso verificar depois para ver se ela não criou alguma maluquice
      Um exemplo bom recente: em um jogo que estou fazendo com Godot, o Codex tentou reimplementar do zero um comportamento que o Area2D já oferece
      Se você manda a IA fazer algo significativo, o caminho fica cheio de minas terrestres e escolhas estranhas. Talvez fosse diferente gastando centenas de dólares em tokens, mas para quem gasta 10 dólares por mês, a dor de cabeça não vale a pena
      Além disso, meu projeto é um hobby, e programar continua sendo divertido. Só deixo a IA cuidar das partes chatas, como salvar/carregar, parsing de arquivos de dados e menus de configuração, e mantenho distância dela nas partes que exigem julgamento humano
    • No momento, experiência vale muito. Dá para conduzir agentes muito bem, mas, como você disse, eu me preocupo com os juniores
      Gosto de pensar que eu usaria agentes para me aprofundar mais e aprender mais rápido. Antigamente, era bem difícil juntar soluções costurando Stack Overflow, vários canais de IRC, Reddit e afins
      Mas eu também copiava dever de casa na faculdade e não revisava direito as respostas, então não tenho certeza. Ainda assim, eu não estava só atrás do diploma; eu programava por interesse, então talvez tivesse sido diferente
      De qualquer forma, sou grato por já ter acumulado muita experiência e fracassos antes de entrar na era dos LLMs
    • O código que LLM gera é, para mim, simplesmente mediano. Não vou dizer que sou autoridade em clean code, mas consigo perceber quando o código está bem estruturado
      Toda vez, o código que eu mesmo escrevo fica melhor do que o do Claude ou do GPT
      Uma vez eu extraí a especificação de um projeto que já tinha escrito, pedi a um LLM para reimplementar tudo só com base nessa especificação e comparei os códigos; a versão do LLM parecia vômito
  • Como desenvolvedor, tudo isso me passa uma certa sensação de segurança no emprego
    Usei LLM por um tempo e ele é bem bom; também gosto de usar. Fiz vibe coding de alguns apps, e a dopamina de ver uma ideia ganhar vida imediatamente é grande
    Mas, pela minha experiência, se você confiar cegamente, vai acabar mordido. Mesmo em projetos feitos com vibe coding, ele continua adicionando “funcionalidades” que eu não pedi
    Como são projetos pessoais, não me importo tanto se o resultado final for o que eu esperava, mas empresas não vão ser tão flexíveis assim. Os clientes provavelmente também não vão gostar de ver funcionalidades mudando ou surgindo a cada correção ou atualização
    Resumindo a situação atual: muitas empresas estão indo nessa direção e, sem engenharia de verdade, a IA pode escrever mais código e mudar o app sem querer
    Por medo da IA e pela queda nas contratações, vai haver menos engenheiros juniores entrando no mercado
    Quando o uso de IA atingir um ponto crítico, vai haver mudanças massivas, e as pessoas que fazem o “prompting” podem começar a ficar sobrecarregadas
    Vai haver mais funcionalidades para manter na cabeça. Como não dá para confiar 100% em LLM, o desenvolvedor ainda precisa saber exatamente o que a aplicação faz
    No fim, vão surgir muitos bugs, e os desenvolvedores vão reclamar que precisam de mais gente. Aí a contratação volta
    Hoje, a pior posição parece ser a de quem está começando, e a melhor é a de quem já está dentro do mercado

    • Isso lembra bastante o boom da terceirização de 10~20 anos atrás. Empresas pequenas e baratas viram que podiam contratar uma equipe inteira de outro país por menos do que custava um único desenvolvedor nos EUA, então entraram nisso com grandes expectativas e pouco processo
      Quase não se prepararam para fazer dar certo; contratavam cegamente a opção mais barata, jogavam requisitos vagos e praticamente não faziam revisão técnica contínua nem supervisão
      O rumo foi parecido com o que você descreveu. No começo, parecia sucesso, com protótipos subindo rápido no código mais sujo imaginável, mas, com o tempo, a dívida técnica e as más decisões viraram uma resistência cada vez maior, o progresso desacelerou e, no fim, o projeto parou ou morreu
      Dessa vez pode ser diferente, mas uma parte considerável do meu trabalho no início da carreira foi limpar projetos que seguiam esse padrão. Tomara que os novos desenvolvedores também tenham a chance de pegar esse tipo de oportunidade
    • Espero conseguir aguentar até o momento em que apareçam muitos bugs e os desenvolvedores comecem a reclamar que precisam de mais gente
    • Cheguei praticamente à mesma conclusão. Estou me esforçando muito para ensinar aos estagiários o caminho tradicional
    • Concordo com a sensação geral de que vai haver uma explosão de soluções customizadas e distribuídas exigindo manutenção, o que pode aumentar as contratações. Mas ainda vi coisa demais para aceitar plenamente essa ideia como a mais provável
      Primeiro, o ganho de eficiência é enorme. Maior do que qualquer ferramenta em qualquer faixa de preço. O principal produto da nossa empresa é um web app, e nos últimos anos estivemos reescrevendo esse produto
      Em uma tarde, consegui criar um novo projeto com a stack desejada e, em poucas horas, fazer vibe coding de um MVP do produto em que estamos trabalhando
      Não ficou perfeito, mas fui pedindo recursos um por um, com prompts pequenos, e cada um levou de 5 a 10 minutos. Parecia bem profissional e, por qualquer critério, estava “bom o suficiente”
      Com um pouco mais de tempo, acho que eu poderia ter lançado e mantido sozinho algo que uma pequena equipe levou anos para construir. Infelizmente, isso parece menos uma ferramenta de aumento de eficiência e mais um “substituto barato para um time inteiro”
      Também existe o hype de IA entre CEOs não técnicos. Nosso CEO e a liderança compraram completamente o conjunto de ferramentas de agente do Claude e estão criando mockups, apps e cadeias de ferramentas todos os dias
      Dá para ver que estão viciados e sentindo o ganho na prática. Ainda não aconteceu, mas eu não ficaria surpreso se o CEO demitisse a maior parte do time de desenvolvimento e fizesse vibe coding do app inteiro com alguns poucos desenvolvedores experientes
      Hoje eles dizem “IA não substitui, ela multiplica!”, mas na mesma frase dizem “se isso permitir não contratar ninguém nos próximos anos, é vitória!”
      Já me perguntaram de frente por que não seria possível fazer vibe coding do app inteiro, e eu não tinha uma resposta muito boa. Tenho palpites plausíveis como “não vão saber manter o app”, mas o Claude consegue fazer bastante coisa mesmo nas mãos de um único desenvolvedor
      Também existe o argumento de que “a IA pode mudar o app sem querer e introduzir bugs”, mas, com observabilidade adequada, testes e prompts adicionais, isso pode ser corrigido em minutos ou horas
      Sinceramente, parece que já não faz mais sentido para a empresa manter um time de desenvolvimento inteiro. Não importa quantos projetos a gente inicie ou quantas iniciativas toque, o backlog encolhe rápido e a vazão de cada desenvolvedor fica absurda
      CEOs não técnicos não ligam para dívida técnica, dívida cognitiva, más práticas de design de software, aprender a programar, manter desenvolvedores afiados, a alegria de resolver problemas ou a beleza de bons algoritmos ou arquiteturas
      O que eles querem é um produto que funcione mais ou menos bem, entregue valor, mereça pagamento e vá ao ar com o menor investimento possível. Infelizmente, a IA atende a esses critérios em quase tudo
      Espero que o volume enorme de software novo aumente a demanda, mas temo que isso não baste para compensar o gigantesco aumento de capacidade produtiva que a IA traz
  • Reservei tempo no mês que vem para aprender TypeScript. Não pretendo excluir totalmente a IA desse processo
    O plano é ler um livro do começo ao fim e depois escrever código. Acho que ouvi esse método do Mitchell Hashimoto em algum podcast
    Como tenho passado muito tempo fazendo prompt coding, como no texto original, estou animado e com medo ao mesmo tempo

  • É impossível ficar menos inteligente só porque você não está escrevendo código à mão. Se isso fosse possível, você teria que ficar mais burro toda vez que saísse de férias
    Conversar com chatbot não mata as conexões neurais do cérebro
    O que realmente aconteceu é que você deu um descanso temporário a uma habilidade altamente técnica. Qualquer pessoa na Terra “esquece” parte de uma habilidade se passar um tempo sem usá-la
    Mas a informação não sumiu; ela só perdeu prioridade porque foi empurrada por informações mais relevantes. Com uma revisão rápida, ela volta
    Mesmo antes da IA, às vezes eu passava meses sem escrever um programa completo em alguma das várias linguagens. Esquecia até coisa simples, como como começar a definição de uma função
    Mas eu não tinha realmente esquecido; bastava olhar rapidamente uma função existente e eu lembrava de toda a outra sintaxe possível em definições de função. Não precisa entrar em pânico, seu cérebro está funcionando normalmente

  • Na escola se fala muito dos riscos da IA, mas os mesmos riscos se aplicam a qualquer ambiente de aprendizagem
    Comecei um novo emprego recentemente, e a IA está tornando meu onboarding muito mais difícil. Estou me adaptando ao cargo muito mais devagar do que colegas que usam menos IA
    Estou programando em uma linguagem com a qual não tenho familiaridade, então a tentação do vibe coding é ainda maior. Mesmo assim, tenho habilidade suficiente para perceber quando o Claude dá uma resposta sem sentido ou desnecessariamente prolixa
    Mas, quanto mais tempo eu passo pedindo ao Claude para escrever código, menos sinto que estou desenvolvendo as capacidades que esse cargo exige. Quando abro um PR, também não me sinto bem, porque não tenho a confiança necessária no meu próprio trabalho
    Honestamente, outra parte disso é que estou pedindo ao Claude para procurar no Slack e na documentação perguntas que eu deveria estar fazendo para pessoas
    A IA alimenta minha ansiedade social e me tenta a evitar o contato humano, que é importante tanto para compreensão quanto para interações sociais básicas
    Isso pode soar como fuga de responsabilidade, mas vale apontar que certa tecnologia pode ser especialmente viciante para certos tipos de pessoa e aprisioná-las em ciclos de comportamento negativos
    Se eu adiar essa dependência de IA agora, mais tarde talvez eu desenvolva habilidade suficiente para delegar à IA trabalhos repetitivos cujo resultado eu consiga validar com facilidade. É difícil, mas necessário

    • Recomendo pedir ao Claude para ensinar o que você precisa. Como transformo esta string em maiúsculas? Qual é uma boa forma de abordar este problema? Existe um jeito padrão de fazer esta tarefa? Perguntas assim funcionam bem
      Aí você consegue aprender durante o processo. Não precisa usar como motor de busca; basta perguntar o que precisa saber naquele momento, e sacudir a corrente de tokens produz algo útil, especialmente para iniciantes na linguagem
      Assim você consegue colocar em prática esse plano de desenvolver habilidade primeiro e só depois começar a delegar
      É assim que eu tenho feito, e para mim é um bom equilíbrio. Fazer o Claude escrever código que você não sabe avaliar me parece loucura, mas essa opinião parece ser minoritária
    • Agora é o pior momento para aprendizado por apprentissage, isto é, para estágios. Todo mundo espera que as coisas sejam lançadas rápido e bem com IA, mas nesse ritmo acelerado de iteração quase não sobra tempo para desenvolver habilidade
    • LLM foi bastante útil para resumir uma base de código e entendê-la rapidamente
      Na prática, é um dos poucos casos de uso realmente legítimos que encontrei além de vibe coding
  • Eu uso IA não para remover pensamento, mas para escapar da escrita de código repetitiva e entediante. Depois que o protótipo é implementado, a IA é competente o bastante para escrever código
    Eu mesmo faço os protótipos iniciais, toscos, de prova de conceito. Sem comentários, com variáveis hardcoded e coisas assim. Depois a IA refina isso até um nível de produto
    Isso me permite comandar um time de agentes em vez de gerenciar pessoas com ética de trabalho, habilidade e capacidade de manter alta qualidade de código muito variadas
    A IA também costuma ser bastante boa em manter os padrões existentes da base de código ou se alinhar a boas práticas da indústria
    Com IA, você deixa de escrever tanto em linguagem de programação. Inglês, ou a língua em que você conversa com o LLM, vai virar sua linguagem principal

    • “Depois que o protótipo é implementado, a IA é perfeitamente competente para escrever código”? Perfeitamente? Está bem longe de perfeita
      Hoje em dia, gasto a maior parte do meu dia corrigindo as imperfeições criadas por robôs geradores de código
      Claro, eu não estou refinando protótipos; estou mantendo, evoluindo e modernizando um produto crítico com mais de 8 anos
    • O que exatamente é código repetitivo e entediante?
      Em um projeto qualquer, sinceramente, quanto desse código repetitivo e entediante existe?
    • A maior parte do tempo vai para fazer o LLM montar o plano de trabalho e o contorno do protótipo. Senão, tudo vira uma bagunça horrível
      É preciso prompts bem elaborados, então você precisa entender direito o framework e a linguagem de base. Caso contrário, tudo vira uma bagunça horrível
      Também não sei como lidar com vários agentes. Eles normalmente terminam rápido demais. Não dá nem para fazer outra coisa entre uma execução e outra. Fica sempre naquele estado de “mais 1 minuto e termina”
      Quando termina, você precisa avaliar a saída. Então, durante o “trabalho”, você também não consegue fazer pensamento profundo. O padrão se parece com rede social: atenção contínua, recompensa quase imediata
      No fim, sua capacidade de concentração vai sendo destruída aos poucos, e destruída de verdade
      O problema é que esses planos desaparecem em poucas horas, e depois você precisa analisar a saída, iterar e filtrar as partes idiotas
      Lidar com a saída de vários agentes é uma sequência interminável de troca de contexto. Boa sorte tentando ir bem assim no longo prazo
      Se você deixa os agentes correrem soltos e construírem qualquer coisa, a saída quase certamente vira uma bagunça horrível. Ponto final
  • No projeto atual, programo todos os dias em Java, Ruby e JavaScript. Estou desperdiçando muitos tokens só para checar diferenças entre linguagens que antes bastavam uma pesquisa simples no Google
    Vivo confundindo diferenças como o operador null-safe de Ruby e JavaScript, ou continue/break em Ruby e Java
    O trabalho mais complexo que peço ao Claude hoje em dia é refatorar loops antigos em Java para streams mais modernas, então ele provavelmente ficaria decepcionado. Esse tipo de código pode ser praticamente impossível para uma pessoa escrever de improviso

    • É uma pena ouvir “praticamente impossível para uma pessoa escrever”. Refatorações assim têm escopo limitado, a verificação de correção é fácil e parecem pequenos quebra-cabeças; são justamente minhas tarefas favoritas
      Se você criar o collector na mão ou usar partes mais obscuras da biblioteca padrão, ganha pontos extras
    • Também não ajuda o fato de o Google ter piorado. O que antes era uma busca simples no Google virou agora uma experiência embutida degradada em que a IA se enfia de qualquer jeito
  • Também existe o caso contrário. No modo /plan, trocar ideias com a IA, pegar as suposições erradas dela e vê-la explicar claramente lacunas de conhecimento quando necessário é algo intelectualmente bem estimulante e que parece me tornar um engenheiro melhor
    A chave é abordar a IA de forma socrática, pensar com cuidado sobre tudo o que ela sugere e não se deixar hipnotizar pelo tom confiante e pela lógica perfeitamente estruturada

  • Estou tendo a experiência oposta. Provavelmente porque, na área em que estou, código/software não é o produto, e sim uma ferramenta
    Estou aprendendo muito mais e muito mais rápido. Por exemplo, agora estou lidando com hardware de espectroscopia como Raman e NMR, e fiz o Claude escrever código que interage com o equipamento em nível de dispositivo e hardware
    Em vez de eu ficar vasculhando datasheets e escrevendo um monte de wrappers, o Claude fez isso por mim
    Discutindo técnicas com o Claude, implementando e testando, consigo avançar muito mais rápido. Antes, esse ciclo teria levado de 5 a 10 vezes mais tempo
    Como não preciso gastar esforço mental escrevendo código sem importância só para ver resultados, estou aprendendo muito mais sobre esse equipamento, essas técnicas e esses dados
    Trabalho como desenvolvedor há mais de 10 anos. Fico feliz de finalmente estar entrando em um mundo em que posso usar código como ferramenta, e não ficar o tempo todo pensando em transformá-lo em produto

    • Isso de código não ser produto, mas ferramenta, talvez seja só o seu caso. Código como ferramenta sempre existiu
  • Acho que não vai haver muita gente com o privilégio de ter tempo para escrever código à mão
    Se olharmos para o código que realmente escrevemos, no meu caso a maior parte não é nova nem legal, mas sim o de sempre: “criar um backend para X”, corrigir bugs simples, tarefas triviais para programadores plenos e seniores
    As tarefas mais difíceis geralmente são decisões de arquitetura acima do código, e também estou pensando em como criar sistemas que impeçam LLMs de se desviarem na implementação das funcionalidades
    O que quero dizer é que talvez hoje tudo bem escrever código à mão, mas, no futuro, acionistas e chefes vão querer que recursos sejam lançados e bugs corrigidos mais rápido com ajuda de LLM
    Se você não acompanhar essa velocidade, seu desempenho vai parecer fraco. No fim, o que importa não é o que nós queremos, e sim o que os acionistas querem
    Claro, se você não estiver exausto, pode escrever código à mão no tempo livre. Não quero soar como pessimista, mas acho que isso vai virar uma realidade bem concreta em breve

    • Para começo de conversa, nunca foi uma questão de velocidade. Progresso rápido não vem principalmente de escrever os mesmos elementos primitivos mais depressa, mas de desenhar sistemas melhores e criar abstrações sólidas
    • Todo mundo tem tempo para escrever código à mão. Porque IA não produz ganho real de produtividade