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.