From Nand to Tetris (2017)

From Nand to Tetris, un curso y libro que lleva a los estudiantes desde compuertas NAND básicas hasta una computadora sencilla, un sistema operativo y un lenguaje de alto nivel, es ampliamente elogiado como una de las formas más gratificantes de entender de verdad cómo funcionan las computadoras desde primeros principios. Los comentaristas destacan cómo desmitifica la pila hardware–software, a menudo combinándolo con recursos como los videos de Ben Eater, Turing Complete y proyectos relacionados de hardware o compilers para profundizar la comprensión. Aunque algunos cuestionan su valor práctico directo para campos como el desarrollo web o el uso de un HDL personalizado en lugar de Verilog, la mayoría coincide en que la claridad conceptual y la confianza que aporta justifican con creces la inversión de tiempo.

Recepción general e impacto personal

  • Ampliamente elogiado como una de las experiencias de aprendizaje más gratificantes en CS/CE; muchos dicen que es “cannot recommend enough”.
  • Varias personas le atribuyen cambios de carrera, primeros trabajos o haber por fin “grokking” toda la pila, desde las puertas hasta el código de alto nivel.
  • Tema común: intentos repetidos; algunos solo lo terminan en el segundo o tercer intento, pero sienten un gran orgullo cuando lo logran.

Alcance, estructura y dificultad

  • La Parte I (hardware: gates → ALU → CPU → assembler) se considera más fácil, más visual y muy divertida.
  • La Parte II (VM, compiler, OS) es significativamente más difícil y requiere mucho más tiempo; las partes del compiler y del OS son las más pesadas.
  • La gente reporta desde ~40–50 horas (con experiencia previa) hasta 100–150+ horas, según la profundidad, los desvíos y lo “pulidas” que hagan sus soluciones.

Libro vs MOOC y ediciones

  • Muchos completan el curso usando solo los materiales en línea; otros prefieren combinar los videos con el libro.
  • La segunda edición del libro separa explícitamente en partes independientes de hardware y software, añade introducciones y apéndices, y refina las explicaciones basándose en años de preguntas de estudiantes.
  • Algunos encuentran que el formato del libro es más accesible para trabajar a su propio ritmo que los plazos del MOOC.

Nivel de abstracción y “capas” faltantes

  • El curso empieza en compuertas NAND y deliberadamente evita la física de estado sólido o la electrónica real; algunos ven esto como una fortaleza y otros como una limitación si quieren “sand2nand”.
  • La discusión menciona recursos separados para la física a nivel de transistor y la fabricación de chips, pero eso queda fuera del alcance de este curso.

Elección de HDL y utilidad “del mundo real”

  • Debate sobre el HDL personalizado: algunos sostienen que es ideal pedagógicamente y lo bastante cercano a los HDL convencionales; otros creen que usar Verilog/VHDL haría que las habilidades fueran más directamente aplicables.
  • Para desarrolladores web, las opiniones difieren: algunos resaltan la ganancia conceptual y la ampliación de los modelos mentales; otros ven un beneficio práctico directo limitado en comparación con aprender herramientas más específicas del dominio.

Compilers, OS y profundidad teórica

  • Se implementa: un assembler, un backend de VM y un compiler sencillo de descenso recursivo desde un lenguaje similar a Java hacia bytecode, sin optimización seria ni análisis avanzado.
  • Varias personas señalan que ofrece un modelo intuitivo sólido de compilación y runtimes, pero no es un curso completo de compilers.
  • Una discusión aparte desearía un tratamiento estilo “NAND to Turing Machines” o “sand2tetris” para la teoría de la computabilidad y la física de nivel inferior.