कोडिंग कैसे सीखें (और CS50x से)।
कोडिंग सीखने का सबसे अच्छा तरीका क्या है? मैं इसके बारे में कैसे जाऊं ताकि मैं अपने द्वारा लिए जाने वाले पाठ्यक्रमों का अधिकतम लाभ उठा सकूं? इस लेख में एक विस्तृत व्याख्या है जो इन सवालों और अधिक का जवाब देगी!
कोड सीखते समय, यदि आप अभी शुरुआत कर रहे हैं, तो आपको कुछ गलतफहमियाँ हो सकती हैं। मुझे आशा है कि इन लेखों के बिंदु इन भ्रांतियों को दूर करने में मदद करेंगे और आपको वही गलतियाँ करने से रोकेंगे जो मैंने की थीं।
I. सीखने को कोड से कैसे जोड़ा जाए (और पाठ्यक्रम CS50x से सीखना):
1. जल्दबाजी न करें:
यह सबसे सरल लेकिन महत्वपूर्ण सलाह हो सकती है जो मैं शिक्षार्थियों को दे सकता हूं।
जब मैं सी सीख रहा था, अधिकांश छात्रों की तरह, मैं प्रतिस्पर्धी था। मैं अपने साथियों और साथी छात्रों के बीच सी को "पूरा" करने वाला पहला व्यक्ति बनना चाहता था। मैंने व्याख्यानों को गति देने और जितनी जल्दी हो सके समस्या सेट को पूरा करने की कोशिश की।
व्याख्यान के तीसरे सप्ताह के अंत में (CS50x में), मैं एक घंटे (एक अवास्तविक लक्ष्य) के भीतर समस्या सेट को आसानी से साफ़ करने में असमर्थता से निराश हो गया। मुझे अपने दिमाग को साफ करने के लिए इससे एक ब्रेक लेना पड़ा और जितनी जल्दी हो सके सी को "पूरा" करने के लक्ष्य से परेशान नहीं होना पड़ा।
यह बाद में था, जब मैं इसके पास वापस आया और समस्या सेट 4 (CS50x में) को धैर्यपूर्वक किया, कि मुझे एहसास हुआ कि मैं इसके बारे में गलत तरीके से जा रहा था।
आप C या किसी अन्य प्रोग्रामिंग भाषा को "पूरा" नहीं करते हैं, जैसे आप किसी स्कूल के विषय में करते हैं। सी सीखने से आप जो ज्ञान प्राप्त करते हैं, वह आपको काफी लंबे समय तक मदद करेगा, और आपको इसे ध्यान में रखते हुए इसे प्राप्त करना होगा।
इसके अलावा, किसी भी कोडिंग अभ्यास या समस्या सेट में गोता न लगाएं, इसकी तुलना किसी समस्या से करें। जिस गति से आप समस्या सेट को पूरा करते हैं, वह भी विषय की अधिक समझ का संकेत नहीं देता है।
CS50x में समस्या सेट समस्याएँ नहीं हैं। प्रत्येक समस्या सेट आपको कुछ सिखाता है, तर्क निर्माण से लेकर छवियों के बिटमैप प्रस्तुतीकरण को समझने तक (और उन्हें कैसे हेरफेर करना है)।
समस्या सेट को शिक्षार्थियों को सीखने के लिए दिए गए कार्यक्रम या प्रोजेक्ट माना जाता है-स्वयं में एक व्याख्यान। आपके द्वारा किए जाने वाले प्रत्येक कोडिंग अभ्यास से कुछ नया सीखने का प्रयास करें। आपको आश्चर्य होगा कि ये प्रतीत होने वाली छोटी समस्याएं आपको कितना कुछ सिखा सकती हैं।
कोडिंग कोई ऐसी चीज नहीं है जिसे आप कड़ी मेहनत और तेजी से प्रशिक्षण देकर तेजी से सीखते हैं। इसके लिए निरंतर अभ्यास, धैर्य और ध्यान की आवश्यकता होती है। आप समस्या सेट के लिए समाधान कोड तैयार करने की उम्मीद नहीं कर सकते हैं क्योंकि आप एक अवधारणा को बहुत अच्छी तरह समझते हैं।
इसलिए, धैर्यपूर्वक सीखें और कोड करें। यदि आपको कुछ समझने के लिए आवश्यक हो तो CS50x (या आप जिस अन्य सामग्री का उल्लेख कर रहे हैं) में दी गई सामग्री को कई बार देखें।
कोई कोडिंग अभ्यास करते समय, कभी भी समाधान की तलाश न करें क्योंकि आप उत्तर के बारे में नहीं सोच सकते थे या आपका प्रोग्राम कुछ बार विफल हो गया था। कार्यक्रम को कुछ बार आजमाएं। यदि आप कुछ प्रयासों के बाद भी इसे प्राप्त नहीं करते हैं (और यह निराशाजनक होने लगता है), तो मेरा सुझाव है कि आप उस समस्या से विराम लें। अगले विषय पर जाएं या व्यायाम करें।
बाद में फिर से उसी समस्या पर लौटें। यदि आप अभी भी उत्तर नहीं दे पा रहे हैं, तो आप समाधान खोज सकते हैं। हालाँकि, आपको समाधान कोड को पढ़ना और समझना चाहिए, और एक बार जब आप इसे समझ लेते हैं, तो वापस जाएं और समाधान को देखे बिना प्रोग्राम को स्वयं कोड करने का प्रयास करें।
यदि आप जल्दबाज़ी करते हैं तो आप विषयों को जल्दी पूरा कर सकते हैं। हालाँकि, आपके मन में हमेशा डगमगाने वाली शंकाएँ होंगी और आपके द्वारा सीखे गए विषयों पर पूर्ण विश्वास नहीं हो सकता है। मेरे लिए, यह विनाशकारी लगता है, और मैं किसी को भी CS50x या किसी अन्य पाठ्यक्रम से इस तरह से सीखने की सलाह नहीं देता।
2. अनंत तक विज्ञापन:
कई समस्याओं के सेट को बेहतर ढंग से समझने में आपकी मदद करने के लिए कुछ पृष्ठभूमि पढ़ने की आवश्यकता होती है। इनके लिए आपको काफी रिसर्च करनी चाहिए।
कंप्यूटर द्वारा किए जा सकने वाले जटिल कार्य हमारे लिए कल्पना करना कठिन प्रतीत होते हैं। मनुष्य एक कंप्यूटर कैसे बना सकता है - इतनी विशाल प्रसंस्करण शक्ति वाली मशीन? इन चीजों को बनाने के लिए किए गए प्रयास और ज्ञान अविश्वसनीय रूप से जटिल और जटिल लगते हैं। हमें यह सोचने की हिम्मत नहीं है कि हमारे पास जितने कम समय में है, हम इसे कभी भी समझने में सक्षम हो सकते हैं।
हालाँकि, इन सभी जटिल कार्यों को कंप्यूटर इन दिनों करने में सक्षम हैं, मानव द्वारा विकसित और लागू किए गए तर्क के परिणाम हैं। यह तर्क और इसके पीछे का ज्ञान हमारी पहुंच के भीतर है, और हम इस ज्ञान को सीखने और अंततः समझने में सक्षम हैं। जब आप इस मानसिक बदलाव को प्राप्त करते हैं, तो सीखने और समझने की इच्छा अधिक विकसित होती है।
यह कदम किसी तरह यह समझाने की दिशा में आगे बढ़ेगा कि मैं इस बदलाव को कैसे प्राप्त करने में कामयाब रहा और मैंने जिस तरह से कोडिंग की, उसे कैसे देखा।
जैसे-जैसे आप अधिक स्वतंत्र अनुसंधान और शिक्षा का संचालन करते हैं, ज्ञान पहुंच के भीतर महसूस होने लगता है। हम महसूस करते हैं कि हम वास्तव में सीखने और अंततः उन चीजों को समझने में सक्षम हैं जिन्हें हम पहले कभी नहीं समझ सकते थे। ऐसा इसलिए है क्योंकि आप कोडिंग पर एक व्यापक परिप्रेक्ष्य प्राप्त करते हैं, इसे कैसे विकसित किया गया है (इसके निर्माण के दौरान इसकी अपनी त्रुटियों के साथ जैसा कि इसे मनुष्यों द्वारा बनाया गया था), और वास्तविक दुनिया आपके द्वारा सीखी गई प्रत्येक अवधारणा को प्रभावित करती है।
अपने ब्राउज़र पर "Y2K प्रॉब्लम" खोजें, इसे पढ़ें, और शायद यह आपके स्वतंत्र शोध की शुरुआत का पहला कदम होगा। एक बार जब आप इसे पढ़ लेते हैं, तो आप क्या सोचते हैं? कंप्यूटर अंततः हम जैसे मनुष्यों द्वारा विकसित किए जाते हैं - वे जो गलतियाँ करने में सक्षम हैं (जैसा कि Y2K समस्या द्वारा चित्रित किया गया है), जो सीखते हैं और बढ़ते हैं। क्या आप अब सीख रहे कोड से एक मजबूत संबंध महसूस करते हैं? क्या आपके पास संभावित तत्काल प्रभाव का अनुभव है जो आपके जीवन और दूसरों के जीवन दोनों पर हो सकता है?
मैंने यह सबक तब सीखा जब मैं समस्या सेट 4 कर रहा था। यह आपको एक छवि में वस्तुओं को अलग करने में सक्षम प्रोग्राम को कोड करने की अनुमति देता है। इस कार्यक्रम को शुरू करने से पहले मैं हमेशा मानता था कि इस तरह का एक चुनौतीपूर्ण कार्य निस्संदेह मेरी क्षमता से परे था। मैंने मान लिया था कि इसके लिए कुछ परिष्कृत कृत्रिम बुद्धिमत्ता "सामान" की आवश्यकता है जो मेरे दिमाग को भून देगा अगर मैंने इसे समझने की कोशिश भी की। हालाँकि, मैंने कार्यक्रम किया, इसके पीछे के तर्क को समझा, और तब कोडिंग के बहुत करीब महसूस किया।
एक बार जब आप इस बात से अवगत हो जाते हैं कि आप कितना अधिक सीखने और समझने में सक्षम हैं, तो आप अध्ययन करने और नया ज्ञान प्राप्त करने का उत्साह महसूस करेंगे।
3. थकाऊ करो, और अपना टूलबॉक्स बढ़ाओ:
एक बार जब आप एक समस्या सेट के साथ काम कर लेते हैं, तो हमेशा इंटरनेट पर इसके अधिक कुशल समाधान खोजने का प्रयास करें। हालांकि यह थकाऊ लग सकता है, यह आपको उसी कार्यक्रम के लिए नए दृष्टिकोण और तर्क सिखाएगा। प्रोग्राम को कोड करते समय आपके पास "टूलबॉक्स" बढ़ता है।
जैसे-जैसे आपका "टूलबॉक्स" बड़ा होता है, आप अपने परिणाम या समाधान कोड के लिए कई रास्ते देखने में सक्षम होंगे। गणित की तरह, यदि आप अधिक अभ्यास करते हैं तो आप समस्याओं को अधिक तेज़ी से और प्रभावी ढंग से हल कर सकते हैं।
विशेष रूप से चुनौतीपूर्ण समस्याओं से निपटने के दौरान कई समाधानों को जानना उपयोगी हो सकता है, जिन्हें केवल एक विशेष दृष्टिकोण का उपयोग करके हल किया जा सकता है।
इसलिए, "थकाऊ" करें, और आप निश्चित रूप से बाद में इसकी सराहना करेंगे!
4. नोट लें:
हालाँकि लेक्चर सुनते समय नोट्स लेना पूरी तरह से वैकल्पिक है और व्यक्तिगत पसंद का मामला है, यह आपके सीखने को अधिक उत्पादक और प्रगति की तरह प्रतीत करेगा। यह आपको व्याख्यान को अधिक ध्यान से देखने में मदद करेगा।
आप कॉम्पैक्ट नोट्स बना सकते हैं। आपके पास किसी भी प्रश्न या जानकारी की एक सूची बनाएं जो आपको विशेष रूप से उपन्यास और दिलचस्प लगी हो। फिर, कुछ शोध करें और उन प्रश्नों या शंकाओं को दूर करने का प्रयास करें जिन्हें आपने लिखा है।
जब मैं सीख रहा होता हूं, नोट्स लेने से मुझे अधिक उत्पादक महसूस होता है, और मुझे इसे करने में मजा आता है।
सभी समस्याओं को लगन से हल करें, प्रत्येक को महत्वपूर्ण समय दें
द्वितीय। CS50x से सीखते समय अनुसरण करने के चरण:
- प्रत्येक व्याख्यान से धैर्यपूर्वक सीखें, जल्दबाजी न करें। वैकल्पिक रूप से, व्याख्यान सुनते समय नोट्स लें।
- उनके विषयों पर नज़र डालने से पहले वीडियो शॉर्ट्स को कभी न छोड़ें। शॉर्ट्स के माध्यम से स्किम करें, और अगर आपको लगता है कि वे आपके समय के लायक हैं, तो उन्हें देखें। शॉर्ट्स में अक्सर अधिक गहन व्याख्याएं होती हैं। कभी-कभी, शॉर्ट्स उन विषयों को भी कवर करते हैं जो मुख्य व्याख्यान में शामिल नहीं होते हैं।
- सभी समस्याओं को लगन से हल करें, प्रत्येक को पर्याप्त समय दें — और उन्हें अपने दम पर हल करने का प्रयास करें। यदि आप इसे प्राप्त नहीं करते हैं, तो उनके द्वारा दिए गए संकेतों को देखें। यदि यह पर्याप्त नहीं है, तो पूर्वाभ्यास देखें (इससे समस्या को समझना बहुत आसान हो जाता है)। समस्या को न समझना ठीक है, आपको बुरा महसूस करने की आवश्यकता नहीं है। मैं अपने पहले प्रयास में भी सभी समस्याओं को नहीं समझ पाया था। एक बार जब सब कुछ काम नहीं करता है, तो समाधान देखें, और फिर समाधान को देखे बिना उत्तर को कोड करें, जब आप इसे समझ लें।
- यदि आप अपने कार्यक्रम में त्रुटियों का सामना कर रहे हैं और उन्हें पहचानने में सक्षम नहीं हैं, तो 'चेक50' या 'सबमिट' का उपयोग करें। प्रोग्राम चलने के बाद ये दो आदेश एक लिंक देते हैं, और लिंक खुलने वाली साइट की जानकारी त्रुटियों को हल करने में बहुत सहायक होती है।
- यदि आप अभी भी सेट की गई समस्या को हल नहीं कर पाए हैं, तो एक ब्रेक लें। अगले व्याख्यान या समस्या सेट पर जाएं, और बाद में उसी समस्या सेट पर वापस आएं।

![क्या एक लिंक्ड सूची है, वैसे भी? [भाग 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































