कंप्यूटर के बारे में हम पहली चीज सीखते हैं कि वे केवल 0 और 1, या बिट्स समझते हैं।
दूसरी ओर, हम मनुष्य दशमलव प्रणाली के माध्यम से संख्याओं को संप्रेषित करते हैं। यह प्रणाली 0 से 9 तक के अंकों के साथ-साथ धन और ऋण चिह्न (+ और -) का उपयोग सकारात्मक या नकारात्मक संख्याओं को दर्शाने के लिए करती है।
चूंकि कंप्यूटर केवल दो अंकों का उपयोग कर सकते हैं – 0 और 1 – इंजीनियरों और गणितज्ञों ने उस समय नकारात्मक संख्याओं को दर्शाने और उनके साथ अंकगणित करने के लिए चतुर तकनीकें डिजाइन कीं। आइए उन तकनीकों की सुंदरता का पता लगाएं।
पहले, कंप्यूटर कैसे काम करते हैं इस पर कुछ पृष्ठभूमि
सॉफ्टवेयर, चित्र, टेक्स्ट, वीडियो, संख्याएं और बीच में सब कुछ हमारे कंप्यूटर में सबसे निचले स्तर पर 0 और 1 हैं।
चित्र, टेक्स्ट, वीडियो और संख्याओं के लिए, हमारे पास एन्कोडिंग योजनाएं हैं जो तय करती हैं कि ये चीजें 0 और 1 तक कैसे पहुंचेंगी। उदाहरण के लिए, टेक्स्ट के लिए ASCII और यूनिकोड।
हम जो सॉफ्टवेयर प्रोग्राम कोड करते हैं, वे कंपाइलर और असेंबलर के माध्यम से 0 और 1 तक पहुंचते हैं। उन 0 और 1 के सेट जिन्हें मशीन कोड (या मशीन निर्देश) के रूप में जाना जाता है, प्रोसेसर द्वारा उन्हें निष्पादित करने से पहले हमारे कंप्यूटर की मुख्य मेमोरी (RAM) में संग्रहीत होते हैं।
प्रोसेसर फेचिंग करके मेन मेमोरी से निर्देशों को प्राप्त करके निष्पादन चक्र शुरू करता है, फिर प्रोसेसर की कंट्रोल यूनिट उन निर्देशों को दो भागों में डिकोड करती है – ऑपरेशन कोड (ओपकोड) और ऑपरेंड।
ओपकोड तय करता है कि आगे कौन सी कार्रवाई की जानी है जैसे ADD (जोड़), JMP (जंप), INC (इंक्रीमेंट) और इसी तरह। ऑपरेंड वे मान (या मेमोरी स्थान) हैं जिन पर वह ऑपरेशन किया जाएगा।
डिकोड किए गए निर्देशों को अंकगणित और तर्क इकाई (ALU) को निष्पादन के लिए भेजा जाता है। ALU में, निर्देश को ओपकोड के आधार पर ऑपरेंड पर निष्पादित किया जाता है और परिणाम वापस मेमोरी में संग्रहीत किया जाता है।
उदाहरण के लिए, असेंबली कोड ADD eax, 42 को पहले असेंबलर द्वारा मशीन कोड (0 और 1) में बदल दिया जाता है। फिर इसे मेन मेमोरी में संग्रहीत किया जाता है इससे पहले कि फेच-डिकोड-एक्सीक्यूट चक्र शुरू हो सके।
जब ADD eax, 42 के लिए मशीन कोड की मेमोरी से फेचिंग समाप्त हो जाती है, तो निर्देश डिकोड हो जाता है। डिकोडेड आउटपुट कहता है कि ओपकोड ADD है और ऑपरेंड eax और 42 हैं।
eax एक रजिस्टर है – प्रोसेसर में निर्मित एक मेमोरी स्थान जिसे प्रोसेसर द्वारा तुरंत एक्सेस किया जा सकता है। eax रजिस्टर को अधिकांश प्रोसेसर में एक्यूमुलेटर कहा जाता है।
ADD eax, 42 असेंबली कोड को eax रजिस्टर (एक्यूमुलेटर) के वर्तमान मूल्य में 42 जोड़ने और उस योग को eax में संग्रहीत करने के लिए डिज़ाइन किया गया है। यह eax = eax + 42 है।
मान लीजिए कि वर्तमान में eax 20 है। इसका मतलब है कि ADD eax, 42 को निष्पादित करने के बाद eax का मूल्य 20 + 42 = 62 होगा।
EDVAC जैसे शुरुआती कंप्यूटरों का डिज़ाइन थकाऊ गणितीय गणनाओं को आसान और तेज़ बनाने की इच्छा से शुरू हुआ।
कंप्यूटर को गणना कराने की पूरी जिम्मेदारी एडर्स पर थी – वे सर्किट जो दो संख्याओं को जोड़ते हैं। ऐसा इसलिए है क्योंकि घटाव, गुणा, और भाग जैसे परिष्कृत संचालन अपने सर्किट में एडर्स का उपयोग करते हैं।
आखिरकार कंप्यूटर तर्क क्षमताओं के साथ सिर्फ तेज़ अंकगणित मशीनें हैं। सकारात्मक और विशेष रूप से नकारात्मक पूर्णांकों के बाइनरी अंकगणित डिज़ाइन की चुनौतियों और सुंदरता को समझना कंप्यूटर प्रोसेसर में सबसे मौलिक अवधारणाओं में से एक है।
आइए पहले देखें कि दशमलव संख्याओं को बाइनरी में कैसे दर्शाया जाता है और दो बाइनरी मानों को कैसे जोड़ा जाता है। फिर हम सुंदरता का पता लगाना शुरू करेंगे।
बाइनरी सिस्टम कैसे काम करता है
अगर मैं आपसे 872500 पढ़ने के लिए कहूं, तो आप शायद 872.5K कहेंगे। आइए देखें कि हमारे दिमाग यह कैसे करते हैं।
हम दाईं ओर से पहले अंक को एक का स्थान असाइन करते हैं, फिर दाईं ओर से दूसरे को दस का स्थान, तीसरे को सौ का, और इसी तरह, हर बार 10 की घात द्वारा बढ़ते हुए।
प्रत्येक स्थान पर 10 की ये घातें स्थानों के वजन हैं। सौ के स्थान का वजन एक सौ है। हम प्रत्येक स्थान पर अंकों को उनके स्थान के वजन से गुणा करते हैं और पूर्ण संख्या प्राप्त करने के लिए उन सभी को जोड़ते हैं।
उपरोक्त आरेख में, आप देख सकते हैं कि प्रत्येक स्थान के वजन की वृद्धि 10 की घातों में है, 10^0 से शुरू होकर 10^5 तक जाती है। इसलिए दशमलव को बेस टेन सिस्टम कहा जाता है।
बाइनरी में, प्रत्येक स्थान का वजन 2 की घात से बढ़ता है। इसका मतलब है कि स्थान का वजन 2^0 से शुरू होता है और 2^something पर समाप्त होता है। यही एकमात्र अंतर है।
दशमलव में 00110101 53 में अनुवादित होता है। कंप्यूटर बाइनरी की व्याख्या उसी तरह करते हैं जैसे हम मनुष्य दशमलव की व्याख्या करते हैं, यानी प्रत्येक स्थान के अंक को उसके वजन से गुणा करके और उन्हें जोड़कर।
1 और 0 को कैसे जोड़ें
बाइनरी में जोड़ बहुत कुछ उसी तरह काम करता है जैसे दशमलव प्रणाली में किया जाता है। आइए इसे एक उदाहरण के माध्यम से देखें। हम दो बाइनरी संख्याओं को जोड़ेंगे: 1101 (13) और 1100 (12)।
जैसा कि हम दशमलव प्रणाली में करते हैं, हम एक के स्थान (2^0) से शुरू करते हैं। 1 और 0 को जोड़ने पर हमें 1 मिलता है। तो हम वहां 1 रखते हैं। मेरे साथ बने रहें और आपको पूरी तस्वीर मिल जाएगी।
0 प्लस 0 है 0। आगे बढ़ते हैं।
1 प्लस 1 है 2। और बाइनरी में 2 को 10 के रूप में दर्शाया जाता है। हम अगले स्थान पर 1 ले जाते हैं और वर्तमान स्थान के परिणाम के रूप में 0 रखते हैं जिसमें हम हैं। क्या यह दशमलव जोड़ में किसी स्थान पर 9 से अधिक होने के समान नहीं है?
वहां दो 1 हैं और एक 1 जो पिछले स्थान से आगे ले जाया गया था, इसलिए कुल तीन 1 हैं। उनका योग 3 होगा, और बाइनरी में 3 11 है इसलिए हम 11 लिखते हैं। अंतिम परिणाम 11001 या दशमलव रूप में 25 निकलता है, जो वास्तव में 13 + 12 है।
उपरोक्त गणना मानती है कि हमारे पास परिणाम संग्रहीत करने के लिए पांच बिट्स उपलब्ध हैं। यदि एक 4-बिट कंप्यूटर यह जोड़ करता है, तो उसके पास परिणाम संग्रहीत करने के लिए केवल चार बिट्स उपलब्ध होंगे।
पांचवें बिट को 4-बिट कंप्यूटर में ओवरफ्लो कहा जाएगा। पूर्णांक अंकगणित में, ओवरफ्लो बिट को अनदेखा या त्याग दिया जाता है। इसलिए अगर हम 4-बिट कंप्यूटर का उपयोग कर रहे होते तो हमें 1001 (9) परिणाम के रूप में मिलता।
बाइनरी अंकगणित डिज़ाइन की सुंदरता
आगे बढ़ने से पहले हमें दो महत्वपूर्ण शर्तों को समझने की आवश्यकता है: लीस्ट सिग्निफिकेंट बिट और मोस्ट सिग्निफिकेंट बिट।
दाईं ओर का बिट लीस्ट सिग्निफिकेंट बिट है क्योंकि इसका सबसे छोटा स्थान वजन (2^0) है। और बाईं ओर का बिट मोस्ट सिग्निफिकेंट बिट है क्योंकि इसका सबसे अधिक स्थान वजन (2^7) है।
अगर दुनिया में केवल सकारात्मक संख्याएं होतीं, तो यह लेख यहीं समाप्त हो गया होता (क्योंकि हम पहले ही सीख चुके हैं कि दशमलव को बाइनरी में कैसे दर्शाया जाता है और बाइनरी में उन्हें कैसे जोड़ा जाता है)।
शुक्र है, हमारे पास नकारात्मक संख्याएं भी हैं।
CPU के अंकगणित डिज़ाइन की सुंदरता नकारात्मकता में निहित है।
तो कंप्यूटर नकारात्मक संख्याओं को कैसे दर्शाते हैं, और नकारात्मक संख्याओं पर अंकगणित कैसे काम करता है? आइए इस समस्या के लिए एक एन्कोडिंग दृष्टिकोण देखें।
कृपया ध्यान दें कि नीचे के अनुभागों में हम अवधारणाओं को समझने के लिए 4-बिट कंप्यूटर के साथ काम करेंगे, जिसका अर्थ है कि पांचवें बिट को ओवरफ्लो माना जाएगा। वही सिद्धांत 16-बिट, 32-बिट या 64-बिट जैसे सभी CPU आर्किटेक्चर पर अंकगणित करने के लिए लागू होते हैं।
साइन-मैग्नीट्यूड एन्कोडिंग दृष्टिकोण
इस एन्कोडिंग योजना में दशमलव रूप में 1101 -5 होगा। बायां सबसे या मोस्ट सिग्निफिकेंट बिट साइन बिट है। यह प्रोसेसर को संख्या के चिह्न के बारे में बताता है – यानी, संख्या सकारात्मक है या नकारात्मक।
0 साइन बिट में एक सकारात्मक मूल्य दर्शाता है और 1 एक नकारात्मक मूल्य दर्शाता है। शेष बिट्स हमें वास्तविक परिमाण बताते हैं।
1101 में, साइन बिट 1 है, इसलिए संख्या नकारात्मक है। 101 दशमलव में 5 के बराबर है। इसलिए 1101 दशमलव में -5 की गणना करेगा।
उपरोक्त आरेख में आप इस एन्कोडिंग दृष्टिकोण का उपयोग करके चार बिट्स द्वारा दर्शाए जा सकने वाले सभी पूर्णांकों को देख सकते हैं। सब कुछ इस बिंदु तक अच्छा लग रहा है।
लेकिन अगर हम बारीकी से देखें, तो हम इस एन्कोडिंग योजना में एक बहुत गंभीर डिज़ाइन समस्या देख सकते हैं। आइए उस मुद्दे का सामना करें।
आइए एक सकारात्मक और एक नकारात्मक संख्या जोड़ें। उदाहरण के लिए हम +4 और -1 जोड़ेंगे। हमारा उत्तर (+4) + (-1) = (+3) होना चाहिए जो 0011 है।
देखें, परिणाम 1101 (-5) है। वास्तविक उत्तर 0011 (+3) होना चाहिए। यदि हम इस दृष्टिकोण को प्रोसेसर पर लागू करते तो हमें इस मुद्दे से निपटने के लिए तर्क जोड़ना पड़ता, और इंजीनियर अपने तर्क में अतिरिक्त जटिलता से नफरत करते हैं।
जैसे-जैसे हम अधिक सर्किट जोड़ते हैं, बिजली की खपत बढ़ती है और प्रदर्शन प्रभावित होता है।
यह आधुनिक ट्रांजिस्टर-आधारित कंप्यूटर के लिए एक तुच्छ मुद्दा लग सकता है।
लेकिन EDVAC जैसे शुरुआती कंप्यूटरों के बारे में सोचें जो हजारों वैक्यूम ट्यूब पर चलते थे जो किलोवाट में बिजली की खपत करते थे और प्रतिदिन सैकड़ों लोगों द्वारा संचालित होते थे। और सरकार ने उन्हें बनाने के लिए लाखों खर्च किए।
उन दिनों अतिरिक्त सर्किट और वैक्यूम ट्यूब डालने का मतलब हजारों डॉलर और गंभीर रखरखाव की परेशानी था।
इसलिए इंजीनियरों को एक स्मार्ट एन्कोडिंग डिज़ाइन सोचना पड़ा।
अब, उस सुंदरता को प्रकट करने का समय आ गया है जो इस समस्या से निपटेगी और हमारे सिस्टम को सरल, अधिक प्रदर्शनकारी, और कम बिजली का भूखा बनाएगी।
एक सुंदर एन्कोडिंग सिस्टम आता है और CPU चमकता है ❤️
इस एन्कोडिंग योजना में, पिछले वाले की तरह, बायां सबसे बिट साइन बिट के रूप में कार्य करता है – लेकिन नकारात्मक संख्याओं को दर्शाने में कुछ कला शामिल है।
सकारात्मक संख्याओं को पिछली एन्कोडिंग योजना के समान ही दर्शाया जाता है: एक अग्रणी 0 जिसके बाद शेष बिट्स परिमाण के लिए होते हैं। उदाहरण के लिए, इस एन्कोडिंग योजना में भी, 6 को 0110 के रूप में दर्शाया जाएगा।
एक नकारात्मक संख्या को दर्शाने के लिए, उसके सकारात्मक समकक्ष पर एक दो-चरणीय गणित प्रक्रिया चलाई जाती है। अर्थात -6 तक पहुंचने के लिए हम +6 पर दो-चरणीय गणित प्रक्रिया करेंगे ताकि बाइनरी में -6 प्राप्त हो सके।
आइए देखें कि -6 बाइनरी में कैसे एन्कोड होगा:
पिछले साइन-मैग्नीट्यूड दृष्टिकोण में, +6 का नकारात्मक गणना करने के लिए, हम केवल साइन बिट को 0 से 1 में बदल देंगे। 0110 (+6) 1110 (-6) बन जाएगा।
इस नई एन्कोडिंग योजना में, हम पहले बिट्स को इनवर्ट करते हैं। शून्य को एक में और एक को शून्य में बदलना। 0110 (+6) 1001 बन जाता है। बिट्स को इनवर्ट करना "वन का पूरक" कहलाता है, इसलिए यहां हमने 0110 का वन का पूरक निकाला जिसके परिणामस्वरूप 1001 आया। फिर...
हम चरण एक से प्राप्त वन के पूरक (1001) में 0001 (+1) जोड़ते हैं। परिणाम 1010 -6 का बाइनरी प्रतिनिधित्व होगा। इस एन्कोडिंग योजना को टूज कम्प्लीमेंट कहा जाता है। इसलिए ध्यान रखें कि एक सकारात्मक पूर्णांक के टूज कम्प्लीमेंट की गणना करने से हमें उसका नकारात्मक समकक्ष मिलता है।
बिट्स को इनवर्ट करने से हमें वन का पूरक मिलता है। वन के पूरक में एक जोड़ने से हमें उन मूल बिट्स का टूज कम्प्लीमेंट मिलता है जिनसे हमने शुरू किया था। सरल, है ना?
अब, आइए देखें कि यह एन्कोडिंग योजना इतनी सुंदर क्यों है। हम 0100 (+4) और 1111 (-1) को जोड़ेंगे।
देखें, टूज कम्प्लीमेंट एन्कोडिंग योजना के साथ हमें सटीक परिणाम मिलता है। अब हम उनके चिह्नों की चिंता किए बिना पूर्णांकों को जोड़ सकते हैं।
हमने सीखा है कि टूज कम्प्लीमेंट एन्कोडिंग के माध्यम से एक नकारात्मक पूर्णांक को 0 और 1 में कैसे दर्शाया जा सकता है। अब मान लीजिए हम ADD eax, -3 निष्पादित करते हैं और eax रजिस्टर में वर्तमान मूल्य -1 है। तो ADD eax, -3 के निष्पादन के बाद eax में मूल्य -4 होगा (जो टूज कम्प्लीमेंट एन्कोडिंग में 1100 है)।
जब ऑपरेटिंग सिस्टम उपयोगकर्ता को परिणाम प्रस्तुत करने के लिए eax से 1100 प्राप्त करता है, तो ऑपरेटिंग सिस्टम 1100 को दशमलव में कैसे डिकोड करता है? या मान लीजिए अगर हम एक प्रोग्रामर के रूप में 1100 का सामना करते हैं, तो हम कैसे पता लगा सकते हैं कि 1100 कौन सी संख्या दर्शाता है?
बेशक हम प्रत्येक सकारात्मक पूर्णांक के टूज कम्प्लीमेंट की गणना करते नहीं रह सकते जब तक कि हम 1100 तक न पहुंच जाएं। यह बहुत धीमा होगा।
प्रोग्रामर और OS टूज कम्प्लीमेंट के एक सुंदर गुण का उपयोग करके बाइनरी को दशमलव में डिकोड करते हैं।
जब हम एक सकारात्मक संख्या के टूज कम्प्लीमेंट की गणना करते हैं, तो हमें उसका नकारात्मक समकक्ष मिलता है। खैर, इसका उल्टा भी सच है – जिसका अर्थ है एक नकारात्मक संख्या के टूज कम्प्लीमेंट की गणना करने से हमें उसका सकारात्मक समकक्ष मिलेगा। हम एक मिनट में इसका कारण देखेंगे।
पहले, आइए समझें कि OS या एक प्रोग्रामर 1100 को दशमलव में कैसे डिकोड करेगा।
1100 को eax रजिस्टर से प्राप्त करने पर, OS 1 को साइन बिट के रूप में देखता है जो संकेत देता है कि पूर्णांक नकारात्मक है। 1100 का टूज कम्प्लीमेंट निकाला जाता है जो 1100 के सकारात्मक समकक्ष को देता है जो 0100 (+4) के रूप में निकलता है। OS फिर सकारात्मक समकक्ष पर एक नकारात्मक चिह्न लगाता है और अंतिम उत्तर -4 के रूप में देता है। इस पैराग्राफ को एक बार फिर से पढ़ें और आपको बेहतर समझ मिलेगी।
फिर CPU मुस्कुराता है और आज के लिए सुंदरता को अलविदा कहता है ;)
CPU अपनी मां से मिलने अपने घर चला गया है। अब हमारे पास टूज कम्प्लीमेंट की कला के आंतरिक कामकाज पर चर्चा करने के लिए बहुत समय है।
टूज कम्प्लीमेंट एन्कोडिंग क्यों और कैसे काम करता है?
अगर मैं आपसे एक संख्या का नकारात्मक खोजने के लिए कहूं, मान लीजिए +42, तो +42 का नकारात्मक खोजने का सबसे सरल तरीका क्या है?
तर्कसंगत रूप से, सबसे सरल तरीका है संख्या को 0 से घटाना, है ना? 0 - (+42) = -42। यदि हम इसे दोहराते हैं, तो हम सकारात्मक मूल्य पर वापस आ जाते हैं, 0 - (-42) = +42। यह सारा गणित है जिस पर टूज कम्प्लीमेंट बना है।
हम 10000 (दशमलव में 0 चूंकि बायां सबसे 1 ओवरफ्लो है) घटा 0101 (+5) कर रहे हैं। हमें 1011 मिलता है जो टूज कम्प्लीमेंट एन्कोडिंग में दशमलव में -5 है। घटाव कैसे किया जाता है इसे नजरअंदाज करें। यह महत्वपूर्ण नहीं है। टूज कम्प्लीमेंट के पीछे की अंतर्ज्ञान को समझना महत्वपूर्ण है।
10000 को 1111 + 0001 के रूप में लिखा जा सकता है (इन दोनों को जोड़ने का प्रयास करें, आपको 10000 मिलेगा)। तो वास्तव में हम कर रहे हैं:
10000 - 0101 => (1111 + 0001) - 0101
उपरोक्त समीकरण को पुनर्व्यवस्थित करके हम इसे इस तरह लिख सकते हैं:
(1111 + 0001) - 0101 => (1111 - 0101) + 0001 चरण 1: 1111 से 0101 घटाएं 1 1 1 1 -0 1 0 1 --------- 1 0 1 0 देखें, 1111 से 0101 घटाना 0101 के बिट्स को इनवर्ट करने के बराबर है, क्योंकि हमें परिणाम के रूप में 1010 मिला। चरण 2: उपरोक्त परिणाम में 0001 जोड़ें 1 0 1 0 ---> चरण 1 का परिणाम +0 0 0 1 --------- 1 0 1 1 हमें 1011 मिलता है जो टूज कम्प्लीमेंट एन्कोडिंग में -5 है।
क्या आपने देखा कि टूज कम्प्लीमेंट सिस्टम मूल रूप से 0 में से संख्या घटाता है? बिट्स को इनवर्ट करना और एक जोड़ना 0 में से संख्या घटाने का एक तेज़ और चतुर तरीका है।
यही कारण है कि जब हम इसका टूज कम्प्लीमेंट निकालते हैं तो हमें एक नकारात्मक संख्या का सकारात्मक और एक सकारात्मक संख्या का नकारात्मक मिलता है – क्योंकि हम वास्तव में संख्या को 0 में से घटा रहे हैं (0 - संख्या)।
1900 के दशक के कंप्यूटर्स में केवल जोड़ अंकगणित तर्क होता था क्योंकि टूज कम्प्लीमेंट एन्कोडिंग योजना इतनी सुंदर है कि घटाव आसानी से किया जा सकता है।
उदाहरण के लिए, 100 में से 12 घटाने के लिए, CPU +12 का टूज कम्प्लीमेंट निकालता है जो -12 उत्पन्न करता है फिर हम -12 को 100 में जोड़ते हैं जिससे हमें आवश्यक आउटपुट मिलता है।
हम सीधे 0 में से घटाकर किसी संख्या का नकारात्मक या इसके विपरीत बाइनरी में क्यों नहीं खोजते?
क्योंकि घटाव एक धीमी और जटिल प्रक्रिया है (उधार लेने के कारण) इसलिए अगर हम उस रास्ते जाते हैं तो हमारे कंप्यूटर को एक महंगे घटाव सर्किट की आवश्यकता होगी। हर बार जब हम एक नकारात्मक पूर्णांक दर्शाना चाहते हैं तो 0 में से घटाने की कल्पना करें। यह हमारे और हमारे कंप्यूटर्स के लिए एक बुरा सपना होगा!
टूज कम्प्लीमेंट एन्कोडिंग एक अधिक प्रदर्शनकारी समाधान है, सरल सर्किट डिज़ाइन की ओर ले जाता है, और बहुत सारा पैसा बचाता है। ऐसा इसलिए है क्योंकि हमें घटाव के लिए एक महंगे सर्किट की आवश्यकता नहीं है और + और - पूर्णांकों के अंकगणित से निपटने के लिए कोई अतिरिक्त तर्क नहीं है। सिर्फ सादा जोड़ और हम दोनों कर सकते हैं – जोड़ और घटाव।
तो आइए अपने कंप्यूटर डिजाइनरों की इस सुंदर एन्कोडिंग योजना के लिए सराहना करें – टूज कम्प्लीमेंट ❤️।
अंतिम शब्द
मैंने खुद से वादा किया था कि मैं जो भी लर्निंग मटेरियल बनाऊंगा उसके लिए कभी शुल्क नहीं लूंगा। चाहे वह एक साधारण लेख हो या कोई कोर्स या ईबुक, शिक्षा के लिए मैं जो कुछ भी करता हूं वह हमेशा 100% मुफ्त और खुला रहेगा।
मैं अपने ट्विटर अकाउंट पर उपयोगी संसाधन पोस्ट करता हूं और सार्थक विचार साझा करता हूं। आप मुझे वहां फॉलो कर सकते हैं और अगर आपने इस लेख से कुछ नया सीखा है तो मुझे DM भेजें। यह मेरा दिन बना देगा :)
हर डेवलपर, हर लेखक, और हर इंसान किसी न किसी से सीखता है। मेरा मानना है कि जिन लोगों और संसाधनों से हम सीखते हैं उन्हें उद्धृत और प्रसारित किया जाना चाहिए। यह उन अच्छे लोगों को हम सभी के लिए और अधिक करने के लिए प्रोत्साहित करता है। तो यहां मेरे अच्छे लोग हैं।
माईकोडस्कूल के अनिमेष ने मुझे किसी और से बेहतर कई प्रोग्रामिंग अवधारणाएं सिखाईं जिनमें इस लेख में लिखी गई अवधारणाएं भी शामिल हैं।
आंद्रे येनिश, मेरे गुरु और दोस्त, उनके समीक्षा प्रयासों और निरंतर समर्थन के बिना मैं यह लेख नहीं लिख पाता।
हैप्पी लर्निंग!