Sinto falta da época em que eu pensava profundamente
(jernesto.com)- Com a chegada das ferramentas de IA para programação, a experiência de pensar profundamente diminuiu drasticamente, e isso traz a sensação de estagnação no crescimento como engenheiro
- Entre as duas disposições dentro de mim, o "Builder" e o "Thinker", o Builder está satisfeito graças à IA, mas o Thinker está faminto
- Com o "vibe coding", é possível transformar ideias em realidade rapidamente, mas as oportunidades de resolver problemas de forma criativa diminuíram muito
- Quando a IA oferece uma solução em torno de 70% que é "boa o bastante", meu pragmatismo torna difícil rejeitá-la
- Tentei encontrar a satisfação do pensamento profundo fora da programação, mas não consegui, e sigo incerto sobre se essas duas necessidades podem ser atendidas ao mesmo tempo
Levantando o problema da falta de reflexão
- Antes de ler o texto, pense em "quando foi a última vez que você realmente pensou com seriedade"
- Este texto não traz solução nem conselho; é apenas um desabafo sobre a frustração que tenho sentido recentemente
Duas disposições: Builder e Thinker
- Builder: a disposição de construir, lançar e gerar resultados práticos
- Motivado por velocidade e utilidade
- Há prazer na dopamina de um deploy bem-sucedido, na satisfação de criar sistemas que resolvem problemas reais e no fato de alguém estar usando sua ferramenta
- Thinker: a disposição que exige um embate mental profundo e de longa duração
- Na época da faculdade, quando cursava física, recebíamos problemas de tarefa muito além da dificuldade média
- Mesmo entendendo os conceitos, havia questões em que era difícil até imaginar uma forma de abordagem
Três tipos de estudantes diante de problemas difíceis
- Tipo 1 (a maioria): tenta algumas vezes, desiste e pede ajuda ao professor ou ao monitor
- Tipo 2 (perfil pesquisador): vai à biblioteca, procura problemas parecidos ou pistas, e coloca a questão num estado em que pode ser resolvida; em geral, chega à solução
- Tipo 3 (perfil thinker): aborda o problema apenas pensando
- Durante dias ou semanas, usa quase todo o tempo mental sem entrada/saída (non-I/O) na possibilidade de resolver o problema
- O pensamento continua até durante o sono
- Esse método nunca falhou, e passei a reconhecer que pensar profundamente e por muito tempo era a minha força
- Não sou tão rápido nem tão talentoso por natureza quanto o 1% do topo, mas tinha convicção de que, com tempo suficiente, conseguiria resolver qualquer problema
O conflito com a IA
- O motivo de a engenharia de software ter sido tão satisfatória no início era justamente essa dupla satisfação
- Ela atendia tanto o Builder — fazer algo útil, sentir-se produtivo e prático — quanto o Thinker — resolver problemas realmente difíceis
- Os projetos em que mais cresci como engenheiro sempre incluíram muitos problemas difíceis que exigiam soluções criativas
- Mas, recentemente, os casos em que passo mais de algumas horas preso a um único problema, pensando seriamente nele, diminuíram drasticamente
- Acho que a causa de tudo isso é a IA
- Estou escrevendo software mais complexo e em maior quantidade do que nunca, mas sinto que não estou crescendo nem um pouco como engenheiro
- Ao revisitar o motivo dessa sensação de estagnação, percebi que estou deixando o Thinker passar fome
- O "vibe coding" claramente satisfaz o Builder
- Há um prazer imediato em ver uma ideia virar realidade em pouquíssimo tempo
- Em contrapartida, diminuíram bastante os momentos em que preciso imaginar, por conta própria, soluções criativas para problemas técnicos
- Para quem é puramente Builder, este ambiente é a era ideal
- Mas, para mim, claramente está faltando alguma coisa
A armadilha do pragmatismo
- Já antecipo a objeção: "se o vibe coding resolve, então esse problema não era realmente difícil"
- Mas isso erra o ponto central
- A IA não é especialmente boa em problemas difíceis, nem sempre entrega boas soluções mesmo para problemas fáceis
- Se eu reescrevesse esse mesmo módulo manualmente pela terceira vez, tenho convicção de que o resultado seria melhor do que qualquer coisa que a IA produziria
- Mas, ao mesmo tempo, eu sou pragmático
- Se posso obter uma solução "suficientemente próxima" com uma fração mínima do tempo e do esforço, parece até irracional não escolher a IA
- O verdadeiro problema é que não consigo desligar esse pragmatismo conscientemente
- No fundo, sou Builder e gosto do próprio ato de construir. Se posso fazer algo mais rápido, isso sempre parece melhor
- Mesmo que eu tente rejeitar a IA e voltar à época em que a necessidade do Thinker era naturalmente atendida pela programação, o Builder não suporta bem essa ineficiência
- A IA quase certamente não oferece uma solução 100% satisfatória, mas a solução de 70% a que ela chega normalmente atende ao critério de "boa o bastante"
O que fazer daqui para frente?
- Sinceramente, ainda não encontrei a resposta e continuo pensando nisso
- Não tenho certeza se essas duas disposições ainda podem ser satisfeitas ao mesmo tempo dentro do mesmo campo, o da programação
- Existe a opção de mirar projetos mais difíceis e procurar deliberadamente problemas nos quais a IA falha completamente
- Às vezes encontro problemas assim, mas sinto que os problemas que exigem soluções profundamente criativas estão diminuindo rapidamente
- Também venho tentando recuperar fora da programação essa sensação de crescimento mental
- Cheguei a reabrir livros antigos para me reconectar com a física
- Mas isso não levou a uma satisfação real
- Quando há coisas que eu poderia estar construindo, é difícil justificar para mim mesmo gastar tempo e energia mental com problemas de física que não têm relação direta com o presente nem são atuais
- A disposição Builder simplesmente não permite ficar sentado, refletindo sobre um problema em aberto
- A disposição Thinker continua faminta enquanto o vibe coding prossegue
- Não tenho certeza se voltará a existir um momento em que essas duas necessidades possam ser atendidas ao mesmo tempo
"Agora conquistamos o direito de chamar este ser por aquele nome familiar que sempre apontou para algo a que nenhum poder da imaginação, nenhum salto da fantasia mais audaciosa, nenhuma fé mais devota, nenhum pensamento abstrato por mais profundo que fosse, nem mesmo a mente em êxtase jamais conseguiu alcançar. Deus (God). Mas essa unidade fundamental pertence ao passado e já não existe mais. No processo de transformar a própria existência, ela se despedaçou completa e radicalmente. Deus está morto, e sua morte foi precisamente a vida do mundo."
— Philipp Mainländer
9 comentários
Os tipos 1 e 2 já estavam perdidos faz tempo,
são programadores sem qualificação,
e isso só desperta um senso de crise
naqueles que ficam apenas com a consciência profissional
como se fosse só um emprego... Desde o começo, são do tipo
que acha pensar algo trabalhoso...
Para os do tipo 3, é um presente bem-vindo.
Os do tipo 3 já sabem aproveitar bem isso, não?
Quando sai uma ferramenta nova, não ficam empolgados e usam bem?
No começo eu testei código win32.
Mas, como esperado... era nível de Automation Interface.
Com uma porcaria dessas, já achei que era impossível fazer projeto de software de alta qualidade.
Pensei em como aproveitar isso ao máximo.
Mas nesse nível já há muita coisa para usar.
Isso também é algo em que, se você pensar e refletir, ganha braços e pernas a mais... o problema, na minha opinião, é não fazer nem esse esforço de pensar.
Dos 5 dias úteis, passo um dia trabalhando sem usar LLM durante o expediente, e aos domingos simplesmente não uso LLM de jeito nenhum; dá para levar de boa.
Você está só se enganando. Se dá para testar rápido, é melhor ir tentando e acumulando dados; qual é a diferença entre isso e ficar no "ah, sei lá, eu sou do time da teoria~"? kkk
Para mim, isso só parece alguém se descabelando porque a própria teoria, que até então não podia ser concretizada e por isso não pôde ser comprovada, acabou sendo provada como totalmente inútil.
Se fosse um verdadeiro thinker, estaria "ainda" pensando em que problema resolver nesta situação, descobrindo isso por meio da IA e buscando uma solução melhor.
Não parece ser um comentário com uma postura respeitosa.
Não daria para, a fim de melhorar o código gerado por IA, executar adicionalmente o build em paralelo com o raciocínio?
No processo de selecionar um modelo de processamento adequado e definir uma abordagem de pipeline em sistemas enormes de nível empresarial, a IA ainda deixa a desejar em termos de maturidade, então talvez seja melhor voltar os olhos para a arquitetura.
Claro, mas também não sei por quanto tempo isso vai durar...
Não tem muito jeito: ou matamos essa vontade resolvendo problemas difíceis de algoritmos, e tratamos o negócio de forma prática.
Assim como ainda existe tricô mesmo na era em que máquinas tecem roupas, acho que talvez também possamos ter programação como hobby.
Na minha opinião, bem pessoal,
acho que dá para fazer o cherry-picking do prazer de ser builder e thinker.
Agora já dá para criar algo que funciona com um custo totalmente baixo (pouco tempo),
e manter o prazer que vem de as pessoas usarem isso e o prazer de ter resolvido um problema da vida real,
e, se com o tempo economizado você investir em problemas que exigem reflexão profunda (e eu de fato estou fazendo isso),
acho que isso tem seu próprio significado e também seu próprio prazer.
Comentários do Hacker News
Fiquei impressionado com este texto de Aral Balkan, de março de 2025
Programar é como moldar um bloco de argila até chegar à forma desejada. Nesse processo, você aprende os limites e características do material.
Antes de fazer algo é justamente quando você menos sabe o que quer fazer. Design não é apenas resolver problemas, mas descobrir o problema certo.
Se você pula o processo criativo, perde o elemento humano de aprendizado e descoberta. Uma obra moldada pelas próprias mãos é entendida por completo, mas um resultado saído de uma máquina automática é apenas uma imitação com aparência semelhante
Quanto mais nova a ideia, mais a ferramenta tenta “normalizá-la”, então é necessário esforço para vencer essa resistência.
Nesse processo, você acaba definindo com clareza o que sua ideia é e o que ela não é. No momento em que para de insistir, o LLM encobre a originalidade do projeto
Meu trabalho é combinar ferramentas já existentes para criar algo novo.
Pular o processo de criação não diminui necessariamente o valor da obra.
Por exemplo, não é como se Zelda deixasse de ser ótimo por usar o motor de física Havok, ou jogos feitos na Unreal fossem ruins
Tenho orgulho do que produzi nas últimas 3 semanas usando Codex, Claude e sessões de teste em paralelo.
Antes, o objetivo era realizar ideias; agora, é satisfazer clientes e cumprir prazo e orçamento
Assim, é possível construir sistemas complexos compostos por milhares de componentes.
No passado, as organizações das empresas desempenhavam esse papel — a camada de cima definia as especificações, e a de baixo fazia as peças
Antigamente, dava para reconhecer rapidamente um site feito com Ruby on Rails.
Se você delega trabalho a pessoas ou agentes sem entender as características do meio, surge a diferença entre código limpo e código impossível de manter
No fim, a responsabilidade é de quem dá a direção. Sem experiência com o meio, você não está preparado para avaliar o resultado
Para mim, só diminuiu a digitação; continuo pensando do mesmo jeito
As ferramentas ficaram melhores, mas programar continua sendo programar.
Seja atravessando o deserto num camelo ou num helicóptero, a viagem ainda é uma viagem.
O fato de a ferramenta evoluir não muda a essência
Parece que esqueceram que experiências diferentes podem coexistir.
O comentário “não quero pensar” foi especialmente marcante
É bom subir para o próximo nível de abstração, mas também é preciso reconhecer o valor que se perde nesse processo
LLM é apenas uma evolução das ferramentas, mas é triste ver desaparecer o processo de pensamento minucioso
Na verdade, está mais próximo de mandar outra pessoa fazer o trabalho e revisar depois.
Quem não gostava de programar vai adorar, mas isso não dá para chamar de ‘programação’
Quando escrevo o código diretamente, consigo visualizar as estruturas de dados na cabeça, mas quando o agente faz isso por mim, essa sensação desaparece.
Dar commit em código sem entendimento não tem valor para mim
É um falso paralelo equiparar programação com LLM às abstrações tradicionais
Compiladores e frameworks buscam abstrações sem vazamento, mas LLMs têm vazamentos por natureza
No fim, encontrar e corrigir bugs continua sendo tarefa humana.
Os LLMs reintroduziram a incerteza e o risco que tentávamos evitar
Se você não explicita todas as variáveis no prompt, o resultado tende ao mediano.
Fica a dúvida se linguagem natural é adequada para carregar esse tipo de informação
Isso não é abstração, e sim geração de código não determinística
Nesse sentido, LLMs também atuam de forma diferente sobre o modo como os humanos pensam
Eu sou do tipo "thinker", então IA para programar não me desperta tanto interesse
Gosto de criar diretamente kernel de SO ou motor gráfico.
Mais do que o resultado, o processo de resolver o problema é meu hobby e minha recompensa
Já os "builders" ficam empolgados porque conseguem construir mais rápido com IA
Todo engenheiro é alguém que pensa. O que muda é só o objetivo da ferramenta
Depois de décadas programando, ferramentas de IA me dão liberdade
Posso experimentar rapidamente ideias que antes eu nem conseguiria tentar.
Isso me permite tocar projetos pessoais aproveitando pequenos blocos de tempo
Graças à IA, agora dá para focar no pensamento de verdade.
Tenho a sensação de que a singularidade está se aproximando
Mesmo quando falha, há aprendizado; quando dá certo, posso focar na validação de qualidade
Existem várias formas de “pensar”
Há o pensamento de imersão intensa e o pensamento que amadurece devagar em segundo plano.
Ambos são formas de mergulho profundo, e são justamente coisas fáceis de perder na era da IA
Resolver problemas matemáticos, pensar filosoficamente, lidar com restrições complexas do trabalho — cada um traz um tipo diferente de tensão intelectual
No fim, o importante é a experiência de mergulhar profundamente, qualquer que seja a forma
Entre os engenheiros seniores ao meu redor, vejo dois grupos
Alguns tiveram um pequeno ganho de produtividade, mas também houve quem perdesse profundidade de pensamento
Muitas vezes apenas copiam e colam a resposta sugerida pelo LLM.
O problema real é a falta de capacidade de fazer as perguntas certas
Em sistemas maduros, isso chega a representar mais de 90%
É triste ver colegas engenheiros se empolgando com IA e entregando a essência da profissão
Nós tínhamos os meios de produção, e acabamos abrindo mão deles por conta própria
Se a IA tornar o desenvolvimento mais barato e rápido, o mercado pode até crescer
O avanço tecnológico sempre prejudica certos grupos profissionais, mas também traz progresso para a sociedade como um todo
Assim como no passado reduzimos empregos em outras indústrias com automação, agora a vez chegou para nós
O resultado é apenas vazio. Mas talvez, para eles, esse vazio já fosse o objetivo
A mentalidade de “se dá para fazer, então fazemos” acaba eliminando a humanidade
IA não elimina o pensamento. O problema está nas empresas medíocres e no pensamento medíocre
É preciso procurar empresas que realmente valorizem o pensamento
Eu também programo com LLM, mas continuo pensando profundamente
Penso em arquitetura, risco, restrições, dívida técnica e alternativas
Está mais próximo de um pensamento gerencial, de administrar vários contextos ao mesmo tempo,
e é diferente do pensamento de um cientista que mergulha num único problema por dias
Especialmente os PRs de juniores usando IA ficaram mais longos e complexos,
e agora a maior parte do meu trabalho passou a ser centrada em revisão
É útil para prototipagem rápida, funções auxiliares, autocompletar código e explorar bibliotecas
Na verdade, como o trabalho mecânico diminuiu, acabo pensando ainda mais
Antes, escrever código fazia você revisitar o pensamento de design em nível mais alto,
mas agora esse processo diminuiu, o que faz pensar ‘com menos profundidade’