- Mesmo que um projeto seja concluído com IA generativa, se quem pediu e quem de fato produziu forem diferentes, é difícil obter a sensação de realização de “eu fiz isso”
- Prompts exigem visão, julgamento, comunicação e técnica, mas estão mais próximos de uma habilidade de encarregar outro ser da produção do que da técnica de fazer diretamente
- Um sistema de flashcards em espanhol com 177 linhas, escrito diretamente, levou cerca de 50 vezes mais tempo que o Claude, mas trouxe mais orgulho do que qualquer código feito por IA
- Enquanto compiladores, assemblers e martelos parecem ferramentas do criador, uma IA que responde à linguagem humana parece alguém recebendo instruções, o que embaralha a fronteira entre ferramenta e agente que produz por procuração
- Gerar algo com IA também pode ser um ato criativo, mas concluir um resultado e fazer algo diretamente não são equivalentes em satisfação pessoal, e essa fronteira também é difícil de definir com clareza
A sensação de realização que o desenvolvimento com IA está mudando
- Desenvolvedores que usam IA generativa e LLMs vivenciam mudanças contraditórias ao mesmo tempo
- Podem perder o artesanato de programar à mão, a resolução de problemas de baixo nível e a diversão
- Podem ganhar mais resolução de problemas em alto nível, concluir projetos adiados e encontrar uma nova forma de diversão
- Além desses ganhos e perdas, a questão central é: é possível sentir que você mesmo fez algo que a IA concluiu no seu lugar?
- O texto parte da experiência de um desenvolvedor que programa desde a era dos microcomputadores dos anos 1980, trabalhou 20 anos no setor e hoje ensina ciência da computação
- Na escala entre utopia da IA e ruína total, ele se avalia como 65% inclinado para a ruína
- Usa Claude Code enquanto continua programando diretamente também
A “versatilidade” montada com resultados de IA
- Na introdução aparecem vários resultados que parecem ter sido feitos diretamente pelo autor
- O romance de ficção científica The Vorrkai Interval, com cenas de batalha
- A xilogravura em tons pastéis Mirrors of the Machine
- Um novo deck de entrada em cedro
- Código de um roguelike de aventura em TUI escrito em Rust
- Na realidade, o romance, a imagem e o código foram gerados por IA, e o deck foi construído por profissionais experientes pagos para isso
- Como o papel do autor foi iniciar a produção e transmitir os requisitos, ele se sente desconfortável em dizer que fez esses resultados
Por que é difícil dizer “eu fiz”
- No caso do deck construído por outras pessoas, ele considera mais correto distinguir entre “eu instalei” e “eu mandei instalar”
- Da mesma forma, sobre código gerado pelo Claude, ele prefere dizer não “eu fiz”, mas “eu fiz fazer para mim”
- Por se sentir desconfortável em colocar a licença MIT com seu próprio nome em algo gerado por IA sem relação de emprego, ele usa a Unlicense
- Mesmo quando trabalhava como gestor, dizia “nosso time fez o produto”, não “eu fiz o produto”; se tivesse gerido LLMs, diria “meus agentes fizeram”
- Concluir um projeto em si é bom, mas quando algo iniciado por ele é finalizado por outros, a satisfação é muito menor do que ao produzir diretamente
- O que se perde não é apenas habilidade de programação ou a diversão de resolver problemas, mas a própria experiência de fazer algo com as próprias mãos
O flashcard de 177 linhas feito à mão
- A esposa pediu um sistema simples para estudar espanhol, em que pudesse colocar as palavras desejadas em uma planilha e vê-las como flashcards
- Ele assumiu a implementação diretamente e instruiu o Claude a não gerar o código, perguntando apenas informações básicas, como a forma mais fácil de buscar dados do Google Sheets
- Usou o endpoint CSV do Google Sheets
- Escreveu 4 arquivos e 177 linhas no total: 112 de JavaScript, 33 de CSS e 32 de HTML
- Levou cerca de 50 vezes mais tempo do que levaria com o Claude, mas ele pode colocar seu nome nisso e dizer que fez diretamente
- Mesmo não sendo um código grande nem revolucionário, ele sente muito mais orgulho disso do que de qualquer código escrito pelo Claude
- Assim como a esposa, que iniciou a demanda, não diria que escreveu o sistema de flashcards, quem pede algo não é automaticamente quem o produz
Escrever prompts como uma habilidade separada
- Um prompt eficaz exige contribuição humana clara
- É preciso aplicar visão
- É preciso julgar o resultado
- É preciso ter capacidade de comunicação e de escrita de prompts
- Nem todos os prompts nem todos os usuários de IA têm a mesma eficiência, então prompting também envolve uma habilidade importante
- Ainda assim, isso está mais próximo da capacidade de pedir com eficácia que algo seja feito como você quer do que da capacidade de produzir diretamente
- Fazer prompting para software também parece mais delegar a produção a outro ser do que criar software diretamente
A zona cinzenta entre compilador e IA
- Ao escrever um programa em C ou Rust, ninguém escreve diretamente o código de máquina que realmente será executado, mas ainda assim a pessoa sente que foi ela quem escreveu o programa
- A conversão de código C para código de máquina se parece mais com um processo matematicamente preciso, mas ainda deixa algumas dúvidas
- Clang e GCC geram instruções diferentes, então o resultado não é determinado de forma rigorosamente única
- O código C é portável mesmo que o código de máquina varie conforme a plataforma
- Mesmo que algo tenha sido compilado só no Linux, ainda faz sentido dizer que foi você quem escreveu o programa que roda no Windows
- Ao pedir ao Claude para converter um programa C recursivo de Fibonacci em assembly x86_64 Linux, ele gerou código que podia ser compilado e executado
- A saída mostrava corretamente a sequência de Fibonacci de
0: 0até9: 34 - Também usava XOR para definir o status de saída 0
- A saída mostrava corretamente a sequência de Fibonacci de
- Como o código C original foi escrito diretamente por ele, ele sente que o programa é dele, mesmo que o assembly tenha sido gerado pelo Claude
- A conversão de assembly para código de máquina é um processo rígido e não inteligente, então isso parece uso de ferramenta que não toma para si o ato de produzir, como usar um martelo para pregar um prego
O critério que separa ferramenta e agente produtor por procuração
- Entre as coisas feitas diretamente estão escrever código C e executá-lo, martelar um prego e usar um assembler para transformar assembly em código de máquina
- Entre as coisas delegadas a outros por meio de instruções estão escrever software, construir um deck e produzir uma imagem
- Ele não sente que desenhou uma imagem gerada pelo ChatGPT, mas também não tem a sensação de estar pedindo a um martelo ou a um compilador que façam algo em seu lugar
- O caso de pedir ao Claude para compilar código C atravessa as duas categorias
- Pode ser visto como executar um código C escrito diretamente
- Também pode ser visto como pedir a uma IA que escreva software
- O mesmo resultado também poderia ser gerado apenas com uma solicitação em inglês
- Como a IA entende linguagem humana imprecisa e responde de forma parecida com a humana, ela pode parecer mais uma relação entre gestor e subordinado do que algo como um compilador ou um martelo
- Se você pedisse a um martelo com IA embutida para pregar um prego, mesmo participando do processo criativo, seria difícil dizer que você mesmo martelou
- Quanto mais se observa essa zona cinzenta, mais forte fica a ideia de que encarregar a IA da produção também pode ser um ato criativo; ainda assim, a fronteira do que pode ser chamado de “eu fiz” continua indefinida
A contribuição real colocada nos resultados
- Para a cena de ficção científica, foi usado um prompt pedindo três parágrafos e um título de romance em que um herói e dois refugiados ficam presos sob ataque de lasers inimigos e depois encontram uma saída
- Para a imagem, foi pedido que dois hackers com aparência de magos, voltados um para o outro e concentrados em computadores, fossem retratados em xilogravura com cores pastéis, usando em cada lado cores opostas, mas complementares
- Para o jogo, foi pedido um jogo de fantasia em TUI semelhante a Ultima I
- Foram solicitados 3×3 caracteres por célula do mapa, 7×7 células de mapa por tela e animação de água
- Também incluía mundo procedural com base em Perlin noise, monstros predefinidos com movimento aleatório e atributos no estilo D&D
- Foi pedido um jogador comum sem classe, implementação em Rust e Ratatui, e separação entre UI e lógica do jogo
- No trabalho de marcenaria, ele pediu “troque o deck da entrada”, mas de fato pregou pessoalmente um dos pregos de um pedaço de madeira necessário para a foto de abertura
- O em dash usado no texto foi uma escolha intencional, e o digraph do Vim é
^K-M
1 comentários
Opiniões do Hacker News
Mesmo que eu não tenha escrito uma única linha de código diretamente com um LLM, ainda posso sentir orgulho do resultado que criei
Não pretendo me gabar de ser um ótimo programador, mas programar sempre foi, antes de tudo, um meio para criar um produto acabado
É como sentir satisfação com um jardim que imaginei, mesmo sem tê-lo construído pessoalmente e tendo contratado uma empresa de paisagismo
O editor de tablatura de guitarra feito com vibe coding resolve um problema real com recursos que outros softwares não têm, e eu nunca teria conseguido criá-lo sem IA enquanto conciliava trabalho, família e hobbies
Também dizemos que fizemos algo quando montamos um sanduíche de pasta de amendoim com geleia sem muita criatividade, e o mesmo vale quando usamos ferramentas como uma serra circular no lugar de fazer tudo à mão
Mas há diferença entre baixar
Articulated dragon.stlda web e apenas apertar imprimir, e projetar algo você mesmo antes de imprimirOperar uma CNC e uma impressora 3D também exige conhecimentos e habilidades diferentes do trabalho manual, mas, conforme as ferramentas ficam mais fáceis, a fronteira vai ficando nebulosa
Mesmo sem uma linha clara, isso fica em algum ponto entre “novas ferramentas são trapaça, então faça tudo à mão” e “pedir um sanduíche e esperar”
Se você delegou o projeto a outra pessoa, talvez possa dizer que o gerenciou ou desenhou parte dele, mas é difícil levar o crédito por tê-lo executado diretamente
Mesmo sem ter feito a produção em si, ainda dá para sentir bastante orgulho de ter dado a direção e a visão para resolver o problema
makingtem um sentido mais forte de fazer algo direta e ativamente, enquantoproducingtem um sentido mais forte de supervisionar e coordenarEssa diferença ficou mais clara para mim quando comecei a trabalhar com produtores em desenvolvimento de jogos
Recentemente, side projects cujas partes principais foram escritas com Claude faziam o que eu queria, mas ainda assim eu sentia uma desconexão estranha com o resultado, e isso me fez pensar em como devo usar IA no meu tempo livre
Um compilador produz resultados determinísticos e consistentes a partir de instruções precisas, mas Claude infere instruções menos precisas do que código, gera resultados diferentes a cada vez, inclui comportamentos não solicitados e toma decisões no lugar do usuário
Dá para instruí-lo rigidamente com grandes especificações em Markdown ou testes detalhados, mas, se vou gastar tempo escrevendo tudo isso, talvez a diferença para programar eu mesmo não seja tão grande
A IA é excelente para destravar problemas ou explicar conceitos de forma personalizada, mas, no momento em que você delega decisões a ela, o resultado passa a ser priorizado acima da criação
Side projects feitos por amor ao ato de criar em si estão mais próximos da arte do que do produto, então a IA pode servir para produto, mas não para arte
No campo da tecnologia, há pessoas que gostam de detalhes e pessoas que gostam de sistemas, e quem tem uma orientação voltada a sistemas pode achar LLMs divertidos e satisfatórios, enquanto quem é voltado a detalhes pode sentir o oposto
Um conhecido que ficou famoso por visão computacional anterior às redes neurais disse que, no passado, resolveu muitas coisas pela primeira vez, mas agora a maior parte do desenvolvimento de software virou um trabalho de montar coisas que já conhecemos, o que ele considera entediante
Parece que os LLMs aceleram ainda mais essa tendência
Fazer um LLM despejar scripts parece, para mim, algo parecido com preencher um sudoku com números aleatórios até o app dizer que está certo
Não quero ver submissões geradas por LLM no Hacker News
Era divertido ver a originalidade humana sendo realmente aplicada, mesmo quando o produto não era um sucesso
Assim como eu não assisto xadrez sendo jogado entre computadores, preciso de uma forma fácil de distinguir e evitar software e arte feitos por IA
A diferença está no grau em que se pode raciocinar sobre como mudanças na entrada afetam o comportamento observável da saída
Se um executável gerado por compilador não funciona como eu queria, em 99,99% dos casos a responsabilidade é minha, e eu consigo prever o resultado a partir do código-fonte e também analisar o mau funcionamento
Entre um programa de vibe coding e o prompt gerador, não existe uma relação comparável a essa
Se um robô cortador de grama totalmente autônomo fez o trabalho corretamente, então foi o robô que cortou a grama; mas, se eu subi nele para dirigir ou o controlei com um joystick, fui eu que cortei
Quem decide onde cortar é o que determina o senso de posse
Mesmo em projetos de vibe coding, o nível de senso de posse varia de acordo com a profundidade de atenção e entendimento investida neles
Algumas pessoas só decidem quando começar o processo e se o resultado é bom ou ruim, mas não têm capacidade de julgar a execução em si e apenas confiam que o criador lidou bem com todos os elementos subordinados
Um compilador quase sempre transforma um programa no binário correto e, se falhar, avisa com clareza; como a responsabilidade pela correção do algoritmo é do usuário, a fronteira fica clara
Já a fronteira de responsabilidade do LLM é pouco clara, e ele não consegue lidar de forma confiável com todos os elementos que não foram explicitados no prompt
Isso também é diferente de uma colaboração humana, em que, se você pedisse a um pintor profissional para desenhar o Batman, não precisaria verificar até o número de dedos do pé ou de braços
Tenho usado LLM porque é mais rápido, mas deixei de ter a mesma diversão de antes
Velocidade não precisa sempre vir antes da diversão, e preciso aprender a me concentrar de novo sem tratar escrever diretamente como algo “ineficiente”
Quero recuperar a sensação de quando eu programava de madrugada aos 13 anos, e os textos do Beej sempre me impressionam
Quando texto, código ou música são feitos só com prompts, é exatamente esse processo que desaparece
Por cerca de dois meses, não tive vontade nem de ver TV, quanto mais fazer qualquer coisa além de beber, mas depois de algumas semanas sem beber parece que a vontade de criar está voltando aos poucos
Eu vinha projetando e construindo minhas próprias câmeras e pequenos robôs autônomos, e finalmente consertei a câmera que quebrou depois de ficar rolando dentro do carro
Acabei perdendo o interesse depois de fazer vídeos com cada lente vintage de montagem C, e só sobraram uma caixa de lentes e câmeras que viraram enfeite, mas foi graças a esses projetos de hardware que consegui dois empregos como engenheiro de software
Quando digo “eu fiz isso” sobre um projeto em que o Claude Code gerou o código, o respeito costuma cair na hora, mas no fim dinheiro e liberdade são o que importa, e eu também quero garantir minha liberdade para depois fazer o que gosto
Se ainda não verificou, também pode valer a pena considerar a possibilidade de ADHD ou outros fatores
Seres humanos não são máquinas, e sim seres biológicos complexos, então entender suas próprias características ajuda muito a voltar a se mover na direção certa
Nos trabalhos que deixei com a IA recentemente, tenho dificuldade até para lembrar dos detalhes gerais, enquanto uma base de código com mais de 100 mil linhas que escrevi anos atrás ainda consigo acompanhar na cabeça em grande parte
Mas um projeto feito com IA há apenas 2 semanas fica como um bloco nebuloso de “alguém escreveu prompts e saiu código”
Na época em que eu era estudante da OSU, aprendendo sozinho programação de sistemas prática, eu consultava o
Beej's Guide to Network Programmingtodos os diasEu lamentava que esse site gratuito fosse muito mais útil que uma universidade cara, e agora saber que o Beej dá aula na OSU é um ciclo incrível e uma ótima contratação
Quero focar em design em nível de sistema, uso ativo de IA, e projetos e equipes maiores
Aprender a programar continua sendo essencial, mas as competências de engenharia de software que antes eram adquiridas no trabalho agora precisam aparecer mais cedo na formação
Também fico pensando que teria sido melhor se a chegada dos LLMs tivesse atrasado uns 15 anos
Le Corbusier e Frank Lloyd Wright não construíam os edifícios com as próprias mãos, mas os projetavam, e essas obras são reconhecidas sem dúvida como deles
Steve Jobs também não projetava placas de circuito nem programava, mas criou o Mac, o iPod e o iPhone, e os pintores da Renascença também mantinham oficinas onde aprendizes trabalhavam
Criar software é mais do que escrever código: é entender o mercado e as necessidades, criar marketing e textos, decidir o que fazer e o que descartar, e imaginar a forma final
Os artesãos que construíram a casa de Wright podem se orgulhar de terem feito o telhado, as paredes e a cachoeira, mas a casa como um todo claramente é de Wright
O lamento atual está mais próximo de um legítimo medo da perda do monopólio técnico
Isso pode mudar como aconteceu quando móveis feitos à mão foram substituídos pela IKEA e marceneiros qualificados passaram a focar no mercado de luxo, mas há a diferença de que os clientes da programação são principalmente empresas, e o critério de aprovação é binário: “funciona ou não?”