De Nand a Tetris (2017)
De Nand to Tetris, um curso e livro que leva os alunos de portas NAND básicas até um computador simples, um sistema operacional e uma linguagem de alto nível, é amplamente elogiado como uma das maneiras mais recompensadoras de realmente entender como os computadores funcionam a partir de primeiros princípios. Os comentaristas destacam como ele desmistifica a pilha hardware–software, muitas vezes combinando-o com recursos como os vídeos de Ben Eater, Turing Complete e projetos relacionados de hardware ou compiladores para aprofundar o entendimento. Embora alguns questionem seu valor prático direto para áreas como desenvolvimento web ou o uso de um HDL customizado em vez de Verilog, a maioria concorda que a clareza conceitual e a confiança que ele constrói mais do que justificam o investimento de tempo.
Recepção geral e impacto pessoal
- Amplamente elogiado como uma das experiências de aprendizagem mais recompensadoras em CS/CE; muitos dizem que “não dá para recomendar o suficiente”.
- Várias pessoas atribuem a ele mudanças de carreira, primeiros empregos ou finalmente “grokarem” o stack completo, de portas até código de alto nível.
- Tema comum: tentativas repetidas; alguns só terminam na segunda ou terceira vez, mas sentem muito orgulho quando conseguem.
Escopo, estrutura e dificuldade
- A Parte I (hardware: portas → ALU → CPU → assembler) é vista como mais fácil, mais visual e muito divertida.
- A Parte II (VM, compilador, SO) é significativamente mais difícil e consome muito mais tempo; as partes de compilador e SO são as mais pesadas.
- Pessoas relatam desde ~40–50 horas (com base prévia) até 100–150+ horas, dependendo da profundidade, dos desvios e de quão “polidas” tornam as soluções.
Livro vs MOOC e edições
- Muitos completam o curso usando apenas os materiais online; outros preferem combinar vídeos com o livro.
- A segunda edição do livro separa explicitamente em partes independentes de hardware e software, adiciona introduções e apêndices, e refina as explicações com base em anos de perguntas de estudantes.
- Alguns acham o formato do livro mais acessível para estudo autodirigido do que os prazos do MOOC.
Nível de abstração e camadas “faltando”
- O curso começa em portas NAND e deliberadamente evita física de estado sólido ou eletrônica real; isso é visto como uma vantagem por alguns e uma limitação por outros que querem “sand2nand”.
- A discussão menciona recursos separados para física em nível de transistores e fabricação de chips, mas isso está fora do escopo do curso.
Escolha de HDL e utilidade “do mundo real”
- Há debate sobre o HDL customizado: alguns argumentam que ele é ideal pedagogicamente e suficientemente próximo dos HDLs convencionais; outros acham que usar Verilog/VHDL tornaria as habilidades mais diretamente aplicáveis.
- Para web developers, as opiniões divergem: alguns enfatizam o ganho conceitual e a ampliação dos modelos mentais; outros veem benefício prático direto limitado em comparação com aprender ferramentas mais específicas do domínio.
Compiladores, SO e profundidade teórica
- Você implementa: um assembler, um backend de VM e um compilador simples de descida recursiva de uma linguagem parecida com Java para bytecode, sem otimização séria nem análise avançada.
- Várias pessoas observam que isso fornece um modelo intuitivo sólido de compilação e runtimes, mas não é um curso completo de compiladores.
- Uma discussão paralela gostaria de um tratamento no estilo “NAND to Turing Machines” ou “sand2tetris” para teoria da computabilidade e física de nível mais baixo.