Você estudou idempotência. Sabe explicar numa entrevista, leu um artigo bom sobre o assunto semana passada.
Chega um PR feito por agente pra revisar: um endpoint novo que cria uma cobrança. Você olha com cuidado. Nomes claros, testes cobrindo os casos, tratamento de erro no lugar.
Aprova.
Duas semanas depois, um cliente aparece cobrado duas vezes. O retry disparou, o endpoint aceitou a chamada de novo e gerou a segunda cobrança.
Você sabia o conceito. Ele só não estava lá na hora em que você olhou pro código.
Onde isso se encaixa
A edição #007 terminou com uma frase que quero desdobrar nesta edição: quando um conceito se consolida e vira automático, ele para de ocupar espaço na sua memória de trabalho.
Esta é a abertura do quarto e último pilar de aprendizagem do Dehaene: a consolidação. Depois de atenção, envolvimento ativo e feedback de erros, é a peça que decide se o que você aprendeu realmente fica disponível quando você precisa.
Saber a definição e ver o padrão
Já vivi essa história do lado de quem não viu.
Dois de nós lendo o mesmo design doc de um fluxo de pagamento. Ambos com anos de sistema distribuído no currículo.
No terceiro parágrafo, ele comentou: "e se essa chamada chegar duas vezes?"
Eu tinha lido o mesmo parágrafo. Achei o desenho coerente e segui em frente.
Se alguém pedisse a definição de idempotência, os dois dariam a resposta certa. A diferença apareceu em outro lugar. Pra mim, aquilo era um item que precisava ser lembrado. Pra ele, tinha virado uma coisa que se vê automaticamente.
Existe um estudo antigo (que não tem nada a ver com desenvolvimento de software) que descreve bem essa diferença.
Em 1973, William Chase e Herbert Simon mostraram tabuleiros de xadrez a jogadores de níveis diferentes por cinco segundos e pediram que reconstruíssem a posição de memória. Os mestres reconstruíam quase tudo. Os iniciantes, quase nada.
Aí veio a parte interessante. Quando as peças eram espalhadas no tabuleiro de forma aleatória, sem corresponder a nenhuma partida possível, a vantagem dos mestres encolhia até quase o nível dos iniciantes.
A memória de trabalho dos mestres tem o mesmo tamanho que a sua. O que mudou foi o tamanho do bloco.
Onde o iniciante via peças soltas, o mestre via quatro ou cinco blocos conhecidos. A pesquisa chama esses blocos de chunks. Anos de partidas transformaram configurações em padrões únicos, reconhecidos de relance.
Um ponto interessante: trabalhos posteriores, do próprio Simon com Fernand Gobet nos anos 1990, mostraram que em tabuleiros aleatórios a vantagem do mestre encolhe bastante, mas não desaparece. O miolo continua de pé: expertise muda o tamanho da unidade que você percebe.
O colega viu a falha no design doc porque estava lendo em blocos maiores que os meus.
De interpretado para compilado
Consolidação, no Dehaene, é o processo que transforma um desempenho lento, consciente e caro em algo rápido, automático e barato.
Repare que nada de novo é aprendido nessa fase. O que muda é o preço do que você já sabia.
E nosso cérebro mostra isso. No começo do aprendizado, o córtex pré-frontal trabalha muito: é a região do controle consciente, do passo a passo, do esforço deliberado. Com a prática, circuitos mais especializados assumem a tarefa e essas áreas vão se desligando.
O processamento deixa de ser serial e passa a acontecer em paralelo. É o cérebro compilando o que antes ele interpretava linha por linha.
Dehaene é direto sobre por que isso importa: a automatização libera os recursos do córtex. Enquanto a central executiva está ocupada com uma tarefa, as outras decisões conscientes ficam esperando na fila.
Liberando a memória RAM
O exemplo que Dehaene usa é a criança aprendendo a ler uma frase. No começo ela decodifica letra por letra, e o esforço da decodificação consome tudo que ela tinha de banda cognitiva. Ela chega no fim sem ter compreendido a frase.
Ela sabe interpretar texto. Só não sobrou espaço na memória de trabalho pra fazer isso.
A versão adulta disso acontece toda semana. Quando reconhecer um padrão ainda exige que você recupere a definição e aplique ela conscientemente, você gasta na identificação o que precisaria pro julgamento.
Você consegue dizer que o código funciona. Não consegue dizer se está certo.
E um detalhe que piora com o conceito não consolidado: ele não aparece sozinho. Você só usa aquilo quando alguma coisa te lembra de usar. Conhecimento que depende de alguém perguntar o nome dele fica fora das decisões que você toma no automático, que são a maioria.
Esse limite ficou mais visível no último ano com a escalada de desenvolvimento com IA.
Revisão de código costumava caber numa lista mental que você rodava conscientemente, item por item. Dava pra seguir assim porque o volume era humano.
Com agente no fluxo, a quantidade de código plausível chegando pra revisar cresceu bastante. E mesmo com agentes revisando o código de outros agentes, a decisão sobre o que é aceitável continua parando em você.
Lista consciente não acompanha esse ritmo. O que acompanha é o que já virou percepção.
Como isso se constrói
Em 2021, quando eu estava saindo de dev pra assumir a coordenação de um time, tinha um ritual quinzenal: sentar com o time e passar pelas métricas de fluxo.
Eu sabia ler aqueles gráficos. Só que ler ainda me custava caro, principalmente CFD e Cycle Time.
Então criei uma rotina. Trinta minutos antes da reunião, sozinho, eu abria as métricas e ia atrás de cada uma. O que ela mede, por que subiu, que pergunta ela responde. Montava um mapa mental com aquilo e entrava na sala com tudo fresco.
Funcionava. E era caro.
Repare no que aconteceu ali: eu passava por aquelas mesmas métricas a cada quinze dias, há meses, e elas continuavam custando o mesmo. Exposição repetida não consolidou nada.
O que mudou o preço foi outra coisa: tempo dedicado intencionalmente pra estudar métricas de fluxo, fora da hora da pressão. Não durante a reunião, não na véspera.
É a distinção que atravessa o pilar inteiro no Dehaene: consolidar é repetir com sentido até virar automático. Repetir sem sentido é só passar pelo mesmo lugar de novo.
Esse "com sentido" é parente direto do que a edição #003 trouxe do Ausubel. Lá, o conteúdo novo só grudava quando encontrava uma âncora no que você já sabia.
Aqui a exigência é a mesma, em outro pilar. A repetição só fica mais barata quando ela mobiliza o conceito. Passar perto dele não conta.
E a prova de que consolidou não foi um teste. Foi eu ter largado os trinta minutos sem perceber que larguei.
Em algum momento eu entrei na reunião sem a preparação, e o gráfico já disse a coisa na hora. Hoje eu só antecipo quando a análise é fora do comum.
Os trinta minutos não foram desperdício, aliás. Eles eram o andaime que sustentava a coisa enquanto a estrutura não estava de pé.
Dois pontos pra ficar no radar
O primeiro: automatizar funciona igualmente bem pro padrão errado. O mesmo mecanismo que te deixa rápido no que é bom te deixa rápido no que é ruim, e desaprender custa mais do que aprender custou. Esse é assunto pra uma edição inteira num futuro breve.
O segundo é sobre expectativa de ritmo. O ganho é grande nas primeiras repetições e vai ficando menor a cada rodada, o que faz a sensação de progresso despencar bem antes do progresso real acabar.
Estudiosos do tema ainda discutem a forma exata dessa curva. Por décadas se falou numa lei de potência da prática, até que Heathcote, Brown e Mewhort (2000) reanalisaram vinte e quatro experimentos com dados individuais e mostraram que a curva de cada pessoa se ajusta melhor a uma exponencial. A lei de potência aparecia por causa da média entre pessoas.
O que fica de prático: a fase chata, aquela em que você já entendeu tudo e ainda assim custa, é onde a consolidação está acontecendo. Ela parece estagnação, mas não é.
O que fazer com o próximo conceito
Como sugestão, tem uma virada de desenho que vale mais que ferramenta nova e cabe numa regra.
Ao usar a recuperação espaçada, vale ter isto em mente: pergunta que pede o nome de um conceito treina vocabulário. Pergunta que mostra uma situação e pede um julgamento treina percepção.
A cena do começo é exatamente isso. Vocabulário treinado a vida inteira, percepção quase nunca.
Camada 1, sem ferramenta nenhuma:
Escolha um conceito que você sabe explicar e não tem certeza se aplica sozinho. Idempotência, acoplamento, race condition, o que for seu.
Escreva três perguntas que esse conceito faria diante de qualquer artefato. Pegando a idempotência como exemplo: e se essa chamada chegar duas vezes, e se falhar no meio, o que acontece no retry.
Por uma semana, rode essas três perguntas em tudo que já passa na sua frente. PR, design doc, post-mortem, brainstorming. Sem material novo, sem hora reservada.
No começo você vai lembrar da lista. Em algum momento a pergunta chega antes da lista e é esse o dia que interessa.
No fim da semana, compare com um conceito que você não exercitou. Repare em qual dos dois te aborda sozinho quando aparece.
Camada 2, se quiser sistematizar:
Criar flashcards com cenários em vez de perguntas de "vocabulário". Na frente, um trecho de código ou um desenho de fluxo com a pergunta "o que está faltando aqui". No verso, a resposta e o porquê.
Isso é diferente do cartão que a maioria monta, que pede a definição. E é um passo além do que combinamos na #007: lá a ferramenta cuidava do calendário, de quando revisitar. Aqui ela cuida do tipo de esforço que o cartão exige.
O Anki serve bem pra isso e é gratuito no computador. As outras opções estão na #007.
Camada 3, se quiser usar IA:
Peça pra IA gerar cinco casos curtos sobre o conceito que você escolheu, alguns com a falha e outros sem, sem dizer quais são quais. Você classifica e confere depois.
Outra abordagem que ajuda bastante: explique seu raciocínio sobre um caso e peça pra ela achar os buracos da sua explicação.
A régua pra não se enganar: a IA na aprendizagem serve pra te fazer pensar mais, com menos atrito. Se ela está pensando no seu lugar, o aprendizado é dela.
Se o conceito ainda estourar sua cabeça:
Tem casos em que o tema é difícil demais pra você tentar sozinho de cara, e aí a camada 1 vira frustração pura.
As pesquisas de carga cognitiva sugerem um caminho pra endereçar isso: alterne um exemplo resolvido com uma tentativa sua. Você estuda um caso já analisado, tenta o próximo sozinho e volta pra outro resolvido. Essa abordagem segura a carga e mantém o esforço de recuperação. A técnica tem nome na pesquisa: worked examples.
Saber explicar um conceito e ter esse conceito disponível são estados diferentes do mesmo conhecimento.
O primeiro te ajuda numa conversa. O segundo aparece sem ser chamado, no meio de um design doc, quando ninguém perguntou nada.
A distância entre os dois é este quarto pilar da aprendizagem. E ela se atravessa do jeito menos glamouroso possível: voltando no conceito de propósito, em situações diferentes, até ele parar de exigir que você o procure.
Cada conceito que vira automático devolve espaço na memória de trabalho, aquela RAM mental que a gente viu se esgotar num dia de trocas de contexto lá nas edições #001 e #002.
O que você não precisa mais buscar com esforço é exatamente o que te sobra pra pensar no que é difícil de verdade.
Um contexto por vez.
Fontes desta edição:
Stanislas Dehaene, É assim que aprendemos (2022) | David Ausubel, Educational Psychology: A Cognitive View (1968) | William G. Chase e Herbert A. Simon, Perception in Chess (Cognitive Psychology, 1973) | Fernand Gobet e Herbert A. Simon, Recall of Random and Distorted Chess Positions (Memory & Cognition, 1996) | John Sweller, Cognitive Load During Problem Solving: Effects on Learning (Cognitive Science, 1988) | John Sweller e Graham Cooper, The Use of Worked Examples as a Substitute for Problem Solving (Cognition and Instruction, 1985) | Andrew Heathcote, Scott Brown e D. J. K. Mewhort, The Power Law Repealed: The Case for an Exponential Law of Practice (Psychonomic Bulletin & Review, 2000)
Se esse texto fez sentido pra você, me conta: responde esse e-mail ou comenta aqui com o que achou, ou encaminha pra alguém que pode se identificar. Essa troca me ajuda a calibrar o que escrevo aqui.
Esta é a Um Contexto Por Vez. Uma newsletter sobre princípios de engenharia, neurociência e psicologia da aprendizagem aplicadas a como a gente que é de tech aprende e reaprende numa área que não para de mudar.

