Tópicos populares
#
Bonk Eco continues to show strength amid $USELESS rally
#
Pump.fun to raise $1B token sale, traders speculating on airdrop
#
Boop.Fun leading the way with a new launchpad on Solana.

Jeffrey Scholz
Você já teve a experiência de ler 100 vezes como um algoritmo funciona — cada passo faz sentido — mas você nunca sai sentindo que realmente o entende?
Talvez você traduza cuidadosamente o algoritmo para código — isso ilumina algumas coisas — mas o algoritmo ainda não se conecta?
O problema subjacente é o que eu vou chamar de "limite de complexidade."
Alguns algoritmos são tão simples que é melhor apenas memorizá-los em vez de "aprender como funcionam."
Vamos começar com um dos algoritmos mais simples que existem: o Teorema de Pitágoras.
A maioria das pessoas tem o Teorema de Pitágoras memorizado, mas quase ninguém sabe como derivá-lo. Isso não é um problema porque o Teorema de Pitágoras é pequeno o suficiente para que você possa simplesmente recuperá-lo da memória em vez de re-derivá-lo na hora. O mesmo vale para algo como o merge sort.
Uma vez que você o praticou, é pequeno o suficiente para fixar.
No entanto, algoritmos mais complexos têm muitas partes móveis e dependências para serem simplesmente memorizados.
Algoritmos que passam pelo "limite de complexidade" não podem ser simplesmente memorizados.
Assim, para realmente ensinar um algoritmo não trivial, meramente mostrar como ele funciona com animações sofisticadas e exemplos resolvidos está longe de ser suficiente — você também deve mostrar ao aluno como descobri-lo.
E isso é excepcionalmente desafiador porque você tem que reviver o processo criativo! Algoritmos não são como teoremas que você pode simplesmente derivar de axiomas. Eles requerem criatividade para serem "descobertos." No entanto, a "descoberta" vem de uma compreensão profunda dos componentes necessários, e então fazer a si mesmo uma pergunta-chave que leva a fazer a conexão certa.
Você não pode apenas mostrar os passos do algoritmo — você tem que criar um ambiente onde os passos possam ser redescobertos. E isso aumenta o material de ensino em pelo menos uma ordem de magnitude.
Então, ao ensinar algo não trivial como ZK ou Uniswap V3, não apenas descrevemos como funcionam — isso na verdade não é útil. Tentamos criar uma estrutura onde o aluno tenha o conhecimento de base para redescobrir as ideias centrais por conta própria, se receber o estímulo certo.
Leva muito mais trabalho ensinar dessa maneira.
Mas então o aluno sai realmente lembrando e entendendo, em vez de bater a cabeça em tutorial após tutorial que (tenta) ensinar a mesma coisa.
Uma nota importante: muitas coisas fundamentais devem simplesmente ser memorizadas. A memorização é altamente subestimada. O que estou descrevendo são assuntos que não se prestam à memorização direta.
3,5K
Declarações vagas na escrita técnica muitas vezes surgem porque o autor não entende completamente sobre o que está falando, mas não quer dizer nada incorreto.
Alguns exemplos:
- "este parâmetro determina a segurança do algoritmo"
- "o processo é semelhante à transformada rápida de Fourier"
- "usamos esta configuração porque queremos que a serialização seja determinística"
Determina — como?
Semelhante — então de que forma é diferente?
É possível que a serialização seja não determinística então?
Declarações vagas levantam mais perguntas na cabeça dos leitores do que ensinam, e essa confusão torna o artigo um desperdício de tempo para ler.
Esse tipo de escrita pode surgir de uma das duas maneiras:
1. O autor está ciente de que não sabe do que está falando, mas não quer se esforçar (ou não tem tempo) para chegar ao fundo de sua falta de entendimento.
2. O autor pensa que entende o que está falando, mas não questionou seu conhecimento sobre o assunto.
Só porque você conhece bem um assunto não significa que pode explicá-lo. Mas explicar bem requer ter um entendimento profundo e preciso primeiro.
3,38K
Top
Classificação
Favoritos