From Nand to Tetris (2017)
From Nand to Tetris, एक course और book जो learners को basic NAND gates से लेकर एक simple computer, operating system, और high-level language तक ले जाता है, व्यापक रूप से computers के काम करने को first principles से सच में समझने के सबसे लाभदायक तरीकों में से एक के रूप में सराहा जाता है। Commenters बताते हैं कि यह hardware–software stack को कितना demystify करता है, और अक्सर इसे Ben Eater’s videos, Turing Complete, तथा संबंधित hardware या compiler projects जैसे संसाधनों के साथ मिलाकर समझ को गहरा किया जाता है। हालांकि कुछ लोग web development जैसे क्षेत्रों के लिए इसकी direct practical value या custom HDL के बजाय Verilog का उपयोग करने पर सवाल उठाते हैं, फिर भी अधिकांश लोग सहमत हैं कि जो conceptual clarity और confidence यह बनाता है, वह समय के निवेश को पूरी तरह उचित ठहराता है।
कुल मिलाकर प्रतिक्रिया और व्यक्तिगत प्रभाव
- इसे व्यापक रूप से CS/CE सीखने के सबसे लाभदायक अनुभवों में से एक माना गया है; कई लोग कहते हैं कि “इसे पर्याप्त रूप से अनुशंसा नहीं कर सकते।”
- कई लोग इसका श्रेय करियर बदलावों, पहली नौकरियों, या गेट्स से लेकर उच्च-स्तरीय कोड तक पूरे stack को आखिरकार “grok” करने को देते हैं।
- एक आम थीम: बार-बार प्रयास; कुछ लोग केवल दूसरी या तीसरी कोशिश में इसे पूरा करते हैं, लेकिन ऐसा करने पर उन्हें बहुत गर्व महसूस होता है।
दायरा, संरचना, और कठिनाई
- भाग I (hardware: gates → ALU → CPU → assembler) को आसान, अधिक दृश्यात्मक, और बहुत मज़ेदार माना जाता है।
- भाग II (VM, compiler, OS) काफी कठिन और अधिक समय लेने वाला है; compiler और OS के हिस्से सबसे भारी हैं।
- लोग लगभग ~40–50 घंटे (पहले से पृष्ठभूमि होने पर) से लेकर 100–150+ घंटे तक की रिपोर्ट करते हैं, यह गहराई, भटकावों, और इस पर निर्भर करता है कि वे अपने समाधानों को कितना “polished” बनाते हैं।
Book बनाम MOOC और editions
- कई लोग केवल online materials का उपयोग करके course पूरा कर लेते हैं; अन्य लोग videos को book के साथ मिलाकर पसंद करते हैं।
- book का second edition स्पष्ट रूप से स्वतंत्र hardware और software भागों में बंटा है, introductions और appendices जोड़ता है, और वर्षों से learners के सवालों के आधार पर व्याख्याओं को परिष्कृत करता है।
- कुछ लोगों को self-paced काम के लिए book format, MOOC की deadlines की तुलना में अधिक सुलभ लगता है।
Abstraction level और गायब “layers”
- course NAND gates से शुरू होता है और जानबूझकर solid-state physics या real electronics से बचता है; कुछ लोग इसे एक strength मानते हैं, जबकि कुछ इसे limitation मानते हैं क्योंकि वे “sand2nand” चाहते हैं।
- चर्चा transistor-level physics और chip fabrication के लिए अलग resources का उल्लेख करती है, लेकिन वे इस course के scope से बाहर हैं।
HDL का चयन और “real-world” उपयोगिता
- custom HDL को लेकर बहस: कुछ का तर्क है कि यह pedagogically ideal है और mainstream HDLs के काफ़ी करीब है; अन्य लोगों को लगता है कि Verilog/VHDL का उपयोग कौशलों को अधिक सीधे लागू करने योग्य बना देगा।
- web developers के लिए, विचार अलग-अलग हैं: कुछ conceptual payoff और मानसिक मॉडल के विस्तार पर ज़ोर देते हैं; अन्य इसे अधिक domain-specific tools सीखने की तुलना में सीमित सीधे व्यावहारिक लाभ वाला मानते हैं।
Compilers, OS, और theoretical depth
- आप implement करते हैं: एक assembler, एक VM backend, और एक Java-like language से bytecode तक एक simple recursive-descent compiler, बिना किसी गंभीर optimization या advanced analysis के।
- कई लोग नोट करते हैं कि यह compilation और runtimes का एक ठोस, intuitive model देता है, लेकिन यह full compiler course नहीं है।
- एक side discussion computability theory और lower-level physics के लिए “NAND to Turing Machines” या “sand2tetris” शैली के treatment की इच्छा व्यक्त करती है।