Nand से Tetris तक (2017)
(nand2tetris.org)- Nand2Tetris उन शिक्षार्थियों के लिए सामग्री प्रदान करता है जो कंप्यूटर सिस्टम को बुनियाद से समझना चाहते हैं, और इसके लिए general-purpose computer system तथा आधुनिक software layers को खुद बनवाता है
- lectures, project materials और tools एक ही जगह उपलब्ध हैं, और non-profit environment में इन्हें मुफ्त open source के रूप में इस्तेमाल किया जा सकता है
- यह कोर्स 400 से अधिक universities, high schools, और bootcamps में इस्तेमाल होता है, और हाई-स्कूल छात्रों से लेकर PhD छात्रों और senior engineers तक इसे करते हैं
- self-learners वेबसाइट के lecture notes और Projects section का अनुसरण कर सकते हैं, और Coursera पर paid enrollment तथा official certificate उपलब्ध है
- इसकी संरचना व्यक्तिगत learning और शैक्षणिक संस्थानों की classes दोनों को ध्यान में रखकर बनाई गई है, और instructors अलग से संपर्क कर अतिरिक्त सामग्री प्राप्त कर सकते हैं
बुनियाद से कंप्यूटर बनाने की सीखने की सामग्री
- Nand to Tetris courses आधिकारिक वेबसाइट general-purpose computer system और आधुनिक software layers को शुरू से बनाने के लिए आवश्यक सामग्री एकत्रित कर उपलब्ध कराती है
- सामग्री lectures, project materials, और tools से बनी है, और students, instructors, और self-learners के लिए है
- संबंधित पुस्तक Noam Nisan और Shimon Schocken की The Elements of Computing Systems है
- कोर्स से संबंधित CACM सामग्री text और video के रूप में उपलब्ध है
सीखने के रास्ते और शिक्षा क्षेत्र में उपयोग
- Nand to Tetris कोर्स 400 से अधिक universities, high schools, और bootcamps में पढ़ाया जाता है
- इसमें हाई-स्कूल छात्र, PhD छात्र, और senior engineers तक शामिल हैं
- सामान्य academic version कोर्स की विस्तृत syllabus देखी जा सकती है
- स्वतंत्र रूप से पढ़ने वाले लोग वेबसाइट के lecture notes और Projects section का अनुसरण करके सीख सकते हैं
- Coursera course paid है और official certificate प्रदान करता है
- instructors के लिए अतिरिक्त सामग्री nand2tetris@gmail.com पर संपर्क करके प्राप्त की जा सकती है
1 टिप्पणियां
Hacker News की राय
7 साल पहले कॉलेज से ग्रेजुएट होने के बाद जब पहली बार कोशिश की थी, तो केवल चैप्टर 2 तक ही पहुंचा था; बहुत संतोषजनक था, लेकिन दूसरे side projects की वजह से छोड़ दिया
3 महीने पहले फिर से शुरू किया और अब चैप्टर 8 तक पहुंच गया हूं: logic gates, ALU, CPU, assembler और virtual machine का आधा हिस्सा पूरा कर लिया है। हर चैप्टर में पहले लगता है, “यह आखिर कैसे होगा?”, और जब सच में चलने लगता है तो जबरदस्त संतोष मिलता है
शुद्ध learning-focused side project के तौर पर यह अब तक किए गए प्रोजेक्ट्स में सबसे संतोषजनक रहा, और इसे अंत तक जारी रखने पर खुद पर काफी गर्व है; जोरदार सिफारिश करता हूं
पिछली autumn/winter में मैंने Ben Eater की breadboard पर 8-bit computer बनाने वाली शानदार series के साथ-साथ इसे किया, और कई महीनों तक चीन से parts खरीदकर, सर्दियों भर जैसे-जैसे वे आते गए, subsystems बनाता रहा
अगली बार यह करना अच्छा रहेगा; यह भी बहुत rewarding है, लेकिन टिमटिमाती LEDs देखते हुए अंदर क्या हो रहा है यह समझना वाकई शानदार लगता है
जैसे integrated circuit inputs को useful outputs में बदलता है, उसका वास्तविक mechanism; TI SN7400 जैसे सबसे सरल real-world integrated circuit तक असल में कैसे काम करते हैं, इसे ठीक से समझाने वाला material मुझे नहीं मिला
मुझे यह course बहुत पसंद आया, और जो लोग low-level computer science class लिए बिना computers के साथ काम करते हैं, उन्हें मैं इसकी मजबूत सिफारिश करता हूं
यह intuitively समझाता है कि computer कैसे काम करता है, खासकर वे core हिस्से जो high-level programs और programming languages को प्रभावित करते हैं। मेरे लिए सबसे बड़ा aha moment stack और heap के फर्क को ठीक से समझना था
यह भी जादुई लगता है कि simple circuits को लगातार जोड़ते-जोड़ते हम वे complex machines बनाते हैं जिन्हें हम इस्तेमाल करते हैं। Teachers कई semesters जितना material बिना जरूरत से ज्यादा simplify किए assembly language जैसे topics का सार जल्दी पकड़वा देते हैं
अगर समय हो तो सचमुच recommend करूंगा। Part 1, NAND gate से CPU बनाने तक, मजेदार और काफी आसान है, लेकिन Part 2 में computer से complete operating system तक जाने की प्रक्रिया में काफी ज्यादा काम है
यह तय करने की कोशिश कर रहा हूं कि दोनों चाहिए या केवल एक काफी है
इस course/book की जोरदार सिफारिश करता हूं
अंत तक करने पर बहुत संतोष मिलता है
Ben Eater की बेहतरीन 8-bit computer series(https://eater.net/8bit/) खत्म करने के बाद nand2tetris पर जाना बहुत natural लगा
यह computer design के उन basic concepts को सच में समझाता है जिन्हें अक्सर सतही तौर पर छोड़ दिया जाता है, और holidays में शुरू करने के लिए बिल्कुल सही project है
मुझे उनके videos पसंद हैं, खासकर loops introduce करने वाला और interrupts introduce करने वाला episode
यह देखना बहुत satisfying था कि उनका लिखा code इन concepts के साथ कितनी ज्यादा elegant तरह से फिर लिखा गया
अब NAND to Tetris भी देखना होगा
दोनों अच्छी तरह साथ चलते थे
इस course से inspired एक मजेदार NAND game है: https://nandgame.com/
दोनों में assembly जैसी language में लिखना होता है और सीखने में बहुत मजा आता है
अगर आप computers को और lower level पर समझना चाहते हैं, तो ETH Zürich का Digital Design and Computer Architecture course भी recommend करूंगा
https://www.youtube.com/playlist?list=PL5Q2soXY2Zi-EImKxYYY1...
मैंने computer architecture की introductory class ली थी, लेकिन दुर्भाग्य से वह बहुत आगे नहीं गई, और modern CPU के out-of-order execution जैसे magic को बिल्कुल cover नहीं किया
लगता है इस holiday का topic यही playlist होगी
इस किताब और उस समय की अच्छी यादें हैं जब मैंने इसे उठाया था
girlfriend के साथ coffee पीते हुए मैंने बताया कि मैंने पढ़ा है कि सिर्फ NAND से सभी logic gates बनाए जा सकते हैं। curiosity हुई, तो कई napkins पर NAND लिखते हुए सोचा कि क्या सच में सब बना सकते हैं
आखिरकार कर लिया और बहुत मजा आया
हर gate को NAND से बनाते समय हमने नए gate का नाम napkin पर लिखा, और वे napkins और वह excitement घर ले आए। कुछ दिनों बाद उन्हीं gates को जोड़कर आखिरकार पूरी ALU तक figure out करने की कोशिश की
इसी दौरान multiplexers और कई दिलचस्प चीजें निकलीं, और अंत में अटक गया, लेकिन इस किताब के बारे में सुना था इसलिए order करने का फैसला किया
बाद के chapters ने, केवल software experience रखने वाले मेरे लिए, उस low level को समझने में सचमुच मदद की जो हमेशा रहस्यमय लगता था
हालांकि मैंने असल में इसे अंत तक बनाकर पूरा नहीं किया
जैसे ही low-level software वाले हिस्से में पहुंचा, लगा कि मैं पहले ही पर्याप्त समझ चुका हूं, इसलिए actual work उतना आकर्षक नहीं रहा, लेकिन केवल पढ़ना भी बेहतरीन था
george hotz का यह repository भी है और काफी interesting है
https://github.com/geohot/fromthetransistor
material नहीं है, बस एक hypothetical course की rough outline है, लेकिन initial commits देखने पर बात थोड़ी साफ होती है
“इसे कुछ साल पहले लिखा था और online डालना चाहता था। hiring मुश्किल है, modern computer science education का बड़ा हिस्सा सच में काफी खराब है, और modern computer stack को first principles से समझने वाले लोगों को ढूंढना बहुत कठिन है। कभी फिर से 12 हफ्ते खाली मिले तो शायद इसे घर से follow किए जा सकने वाले course के रूप में दूंगा। मैं भी साथ खेलना चाहता हूं।”
undergrad में मैंने CS नहीं बल्कि computer engineering किया था, और उस list के करीब 80% topics cover हुए थे
Verilog और operating systems के कई courses लिए, और microcontrollers/FPGAs भी काफी किए
Verilog में CPU बनाना और फिर assembler/compiler लिखना साफ तौर पर highlight था
course कठिन था, लेकिन graduation के समय लगा कि पूरे stack को काफी अच्छी तरह समझता हूं
शायद उन्हें computer engineering side की ज्यादा जानकारी नहीं है
सोच रहा हूं कि इसका prequel जैसा “sand2nand” भी DIY project के तौर पर संभव होगा या नहीं
जब मैं data analyst के रूप में काम कर रहा था, तब हल्के-फुल्के मन से यह course लिया था, और यही मेरे career transition की वजह बना
सचमुच शानदार course है; अगर समय हो तो जरूर करने की सलाह दूंगा
उत्सुक हूं कि क्या आप ज्यादा low-level programming वाले path पर गए