जब आप प्रोग्रामिंग के एक निश्चित हिस्से को समझ नहीं पाते हैं तो आप क्या करते हैं? [बन्द है]


11

मैं नई भाषाओं को सीख रहा हूं जैसे ही मैं जाता हूं, मैं कई भाषाओं में बहुत बुनियादी कार्यक्रमों के लिए कोड लिखता हूं, और मैं कक्षाओं में जाता हूं। मैंने किताबें, लेख, पाठ, वीडियो पढ़े हैं, आप इसे नाम देते हैं, हालांकि मैं कुछ चीजों को लटका नहीं पाता।

उदाहरण के लिए, मैंने कभी भी पॉइंटर्स को नहीं समझा - वे क्या अच्छे हैं। (प्रश्न का हिस्सा नहीं - "पॉइंटर्स" के साथ रीटैगिंग की आवश्यकता नहीं है ...)


हालांकि मेरा सवाल यह नहीं है कि पॉइंटर्स क्या करते हैं, बल्कि मैं इस तरह की चीजों को कैसे समझ सकता हूं? यदि, प्रोग्रामिंग के एक निश्चित भाग के बारे में एक पुस्तक या एक लेख पढ़ने के बाद, और मुझे समझ में नहीं आता है, तो मैं क्या करूँ? प्रोग्रामिंग की एक निश्चित विशेषता में कोड लिखना निश्चित रूप से मदद करता है, हालांकि यह वास्तव में इतना समझने में मदद नहीं करता है। सैद्धांतिक हिस्सा समझने में महत्वपूर्ण है।


11
काश मैं समझ पाता कि लोगों को पॉइंटर्स समझने में इतनी परेशानी क्यों होती है। नाम मुझे सभी स्पष्टीकरण की आवश्यकता है।
ChaosPandion

1
कुछ Computer Architecture 101कोर्स पॉइंटर्स को समझने में बहुत मदद करेंगे। ...और सब कुछ।
ZJR

6
प्रश्न वास्तव में संकेत के बारे में नहीं है, यह एक सामान्य प्रश्न है, लेकिन धन्यवाद।
बुगस्टर

2
मुझे नहीं लगता कि वह एक उदाहरण की याद दिलाता है जिसे उसने समस्याओं के साथ स्वीकार किया है जो उसे प्रबुद्धता की दिशा में एक सा मदद करेगा ... अक्सर पर्याप्त होता है, लेकिन यह उसे हिट खरीदने के डर से मदद मांगने से रोकेगा। कंजूस और पांडित्य के जवाब और टिप्पणियों को अपग्रेड करने की लंबी कड़ी।
केश विन्यास

4
@FrustratedWithFormsDesigner: "मैं कैसे सीखता हूं सीखना", मुझे लगता है। जो एक मान्य और मूल्यवान प्रश्न है।
19

जवाबों:


22

यदि आपको एक अमूर्त अवधारणा को समझने में परेशानी है, तो बस एक स्तर नीचे जाएं। यदि आपको सी में संकेत नहीं मिल सकते हैं - विधानसभा स्तर तक नीचे जाएं। अभी भी समस्या है? हार्डवेयर के बारे में अधिक जानें, सभी तर्क फाटकों के नीचे।


2
+1: मेरे लिए काम किया। जब तक मैंने पीडीपी -10 विधानसभा भाषा लिखना शुरू नहीं किया तब तक मुझे ALGOL में पॉइंटर्स से परेशानी थी।
केविनलाइन

2
दिलचस्प विचार है। हालांकि मैं यह बताना चाहूंगा कि विधानसभा में कार्यक्रम लिखना और चलाना बहुत दूर की बात है। मेरी राय में, बुनियादी समझ से परे जाना इस स्तर पर अनावश्यक है। लेकिन हे, अगर है कि आप क्या करना चाहते हैं, तो अधिक शक्ति!
ब्रायन फील्ड

1
@ जॉर्ज बेली, हाँ, यह किसी भी वास्तविक असेंबली और वास्तविक हार्डवेयर के लिए थोड़ा ऊपर हो सकता है। यही कारण है कि MIXचारों ओर अन्य समान खिलौना वास्तुकला है। एक हार्डवेयर भाग के लिए यह समान है - अध्ययन करने के लिए कई सरल, खिलौना सीपीयू कोर हैं।
एसके-तर्क

+1: दिलचस्प विचार और निश्चित रूप से काम करने की संभावना है, लेकिन (ओपी के उदाहरण के मामले को फिर से उपयोग करने के लिए) सी एंट्री-लेवल से एएसएम एंट्री-लेवल तक जाने के लिए शुरुआत के लिए एक लंबी, कठोर और घुमावदार सड़क हो सकती है, लेने की संभावना पाठ्यक्रम / परियोजना / अन्य द्वारा प्रत्याशित से अधिक समय। यह खराब रूप से प्रेरित लोगों को भी विस्थापित कर सकता है (जो शायद ओपी का मामला नहीं है, लेकिन उच्च-स्तरीय दृष्टिकोण से, यह बहुत सारे छात्रों को अवरुद्ध करेगा जो सीएस कक्षाएं लेते हैं और इसे समझने की आवश्यकता है लेकिन सीएस के बारे में खुद को लानत नहीं दें) । लेकिन निश्चित रूप से लंबी अवधि के लिए एक अच्छा विचार है।
18

खैर, मेरी सीएस डिग्री ने इसे कंप्यूटर आर्किटेक्चर में शामिल किया। हमने लॉजिक गेट्स के बारे में सीखा, उन्हें ऐडर्स, ALUs और अंततः एक बहुत ही सरल RISC CPU बनाने के लिए लॉजिक सिम्युलेटर में संयोजित किया। हमने MIPS असेंबली में सरल प्रोग्राम भी लिखे। कंप्यूटर विज्ञान में बीएस के लिए यह सब आवश्यक था, और वास्तव में "वीडर" पाठ्यक्रमों में से एक नहीं माना जाता था, इसलिए मुझे नहीं लगता कि यह शीर्ष पर है या बहुत दूर जा रहा है।
एडम जास्कविज़

17

लघु वृद्धिशील शिक्षण जीवनचक्र

  1. कोशिश करो और अवधारणा को समझने में विफल
  2. अवधारणा को समझने के लिए कुछ लागू करने का प्रयास करें ।
  3. करने की कोशिश करो आरेख व्हाइटबोर्ड पर अवधारणा (यदि लागू हो)
  4. किसी ऐसे व्यक्ति के साथ बात करने की कोशिश करें जो अवधारणा को समझता है।
  5. इस व्यक्ति को आपके द्वारा समझे जाने वाले बिट्स को समझाने की कोशिश करें (प्रकाश को देखने में मदद करता है, कभी-कभी)।
  6. 1 से फिर से शुरू करें जब तक आप अंत में इसे किसी को समझा सकते हैं जो राज्य 1 में है और उन्हें इसे प्राप्त करें।

अतिरिक्त कदम

सावधानी के साथ उपयोग करने के लिए।

  • अतिरिक्त पढ़ने और अध्ययन सामग्री के लिए खोजें :
    • ऑनलाइन (लोकप्रिय खोज इंजन और विकिपीडिया महान मित्र हैं),
    • पुस्तकालय में (पुस्तकों को कम मत समझो, और जो लोग उन्हें पढ़ने के लिए जाते हैं),
    • आपके सिस्टम पर (बंडल प्रलेखन और डॉक उपकरण अक्सर पहली बार में अलगाव की भावना पैदा कर रहे हैं, लेकिन कुछ समय के बाद अपने सबसे अच्छे गोटो-साथी:। आप उन्हें में तलाश कर रहे हैं खोजने के लिए सीखना जैसे man -k, apropos, आदि ...)
  • अवधारणा का उपयोग करके कुछ कोड पढ़ने का प्रयास करें ...
  • ... और एक डिबगर के साथ कोड के माध्यम से कदम

ये स्नीकर हैं क्योंकि आपको यह सुनिश्चित करने के लिए अपने आप का पुनर्मूल्यांकन करने की आवश्यकता है कि आप इसे सही समझे। एक जानकार व्यक्ति द्वारा प्रत्यक्ष सलाह देना आमतौर पर बेहतर होता है, बेशक आपने जो सीखा है उसे फिर से लागू करके अर्जित ज्ञान के अपने सत्यापन के द्वारा (और उसके बाद इसे एक कदम आगे बढ़ाने की कोशिश करें और शीर्ष पर निर्मित उच्च-स्तरीय अवधारणा को सीखें। उनमें से एक, उदाहरण के लिए अपने संकेत के लिए लिंक की गई सूची)।

श्रेय: नुपुल (चित्र के लिए)


2
+1! क्या मैं जोड़ सकता हूं - बात करने से पहले, व्हाइटबोर्ड को 'स्केच आउट' करने की कोशिश करें (या किसी से बात करते समय सिर्फ व्हाइटबोर्ड को संभाल कर रखें :)
PhD

1
+1 "डिबगर वाले कोड के माध्यम से कदम" के लिए। मैंने सरल डिबगिंग टूल्स के साथ कई अवधारणाओं के बारे में सीखा है ...
फंकीमुशरूम

@ नुपुल: अच्छा सुझाव, जोड़ा।
25

@funkymushroom: वास्तव में, हालांकि मैं कहूंगा कि आमतौर पर आप वास्तव में इस तरह से अवधारणा नहीं सीखते हैं। हालांकि यह "कोहरे को उठाने" में मदद करता है जब यह आपके सामने सही है और आप सिर्फ टुकड़ों को एक साथ नहीं देख सकते हैं, क्योंकि आप किसी चीज़ पर बहुत अधिक ध्यान केंद्रित कर रहे हैं या आपका मन तला हुआ है। मुझे सामान्य अवधारणाओं की तुलना में सामान्य एल्गोरिदम समस्याओं को समझने में यह अधिक उपयोगी लगता है।
25

व्हाइटबोर्ड से बात करते हुए यह मेरे लिए किया था।
पीटर

5

मेरे अनुभव में, यह सब इनपुट और फीडबैक के बारे में है। आप जितने रूपों में इनपुट प्राप्त करना चाहते हैं, और जितनी जल्दी हो सके अपनी गलतियों पर प्रतिक्रिया दें।

मेरे अनुभव में, मेरी CS की डिग्री बहुत सूखी थी, बहुत औपचारिक थी, और किसी भी प्रोग्रामिंग को सिखाने में पूरी तरह से बेकार थी। मैंने सप्ताह में दो-तीन व्याख्यान दिए और यदि आपको नहीं मिलता है, तो यह बहुत ज्यादा है- व्याख्याता के पास पढ़ाने के लिए एक और कक्षा है और आपकी मदद करने के लिए आसपास नहीं रह सकते। और, एक व्यक्ति एक निश्चित तरीके से इसे समझता है, और वह इसे एक निश्चित तरीके से सिखाएगा और ऐसा ही है, इसलिए यदि आप उसकी तरह नहीं सोचते हैं, तो आप कभी भी इसे प्राप्त नहीं करेंगे। इससे भी बुरी बात यह है कि चूंकि वह एक अरब अन्य संबंधित अवधारणाओं को समझता है, इसलिए वह इसे उन अन्य अवधारणाओं के संदर्भ में समझेगा, जो आपके सिर पर अच्छी तरह से हो सकती हैं या पाठ्यक्रम सामग्री में भी नहीं।

मैं स्टैक ओवरफ्लो में गया और सी ++ चैट चैनल में पूछा और पांच मिनट में पांच अलग-अलग स्पष्टीकरण प्राप्त किए। वे सभी मेरे लिए विशेष रूप से और मेरे पास मौजूद सटीक समस्या के अनुरूप थे, इसलिए यह कोई आश्चर्य की बात नहीं है कि उनमें से एक ने मेरे लिए घर पर हमला किया और मुझे मिल गया। जिस दर पर आप कई विशेषज्ञों से लाइव प्रतिक्रिया प्राप्त करना सीख सकते हैं, वह सूखे कागज के स्रोत से बहुत अधिक हो सकता है।

इसलिए आदर्श रूप से, एक ब्रेक लें, और फिर आपको समान-दिमाग वाले लोगों के एक छोटे से मध्यम आकार के समूह मिलेंगे जिनके पास कुछ भी करने के लिए बेहतर नहीं है और उनके साथ चैट करें। वैसे, इस तरह की उच्च-गुणवत्ता वाली उच्च-गति वाली व्यक्तिगत प्रतिक्रिया प्राप्त करने के लिए स्टैक ओवरफ्लो एक उत्कृष्ट स्थान है।


3

किसी भी क्रम में, किताबें, दोस्त, और अच्छी तरह से प्रलेखित कोड पढ़ना अच्छे स्रोत हैं। अभ्यास सीखने का एकमात्र तरीका है: छोटी इकाई परीक्षण लिखने का प्रयास करें। उदाहरण के लिए, पॉइंटर्स कोड लिखते हैं जो स्ट्रिंग से निपटते हैं: एक स्ट्रिंग को उल्टा करें, प्रत्येक शब्द को एक स्ट्रिंग में उल्टा करें, पैलिंड्रोम के लिए परीक्षण करें, एक अक्षर को एक नंबर से बदलें ...

स्टैकएक्सचेंज पर प्रश्न पूछें ...?;


2

अभ्यास परिपूर्ण बनाता है! (वैसे भी बेहतर है)। बस कोशिश करते रहें और जितने अलग-अलग स्रोतों और इंद्रियों का उपयोग करने की कोशिश करें:

सूत्रों का कहना है: किताबें, इंटरनेट, UserGroups, दोस्तों, वीडियो लर्निंग, साइटों को आप थोड़ा की तरह कोड के 'सा' का परीक्षण करते हैं कि का उपयोग कर jsfiddle (ज्यादातर एचटीएमएल),
Rubular (रूबी भाव),
SQlzoo बाहर एसक्यूएल, कोशिश कर के लिए
jslint जावास्क्रिप्ट के लिए,
कोड पैड कई भाषाओं के लिए।

अमूर्त चीजों को याद रखने के लिए mneomics पर विचार करें - डॉक्टर उनका उपयोग करते हैं!

अपने आप को जीवन भर सीखने वाला समझें और विनम्र बने रहें और आप दूर तक जा सकते हैं।


1
"अभ्यास" के लिए +1। लेकिन mnemonics, ugh। वे एक बहुत ही अपर्याप्त बैसाखी हैं जो कभी भी बदल नहीं सकते हैं, और कभी भी समझ में नहीं आना चाहिए। वास्तव में, वे समझ की अनुपस्थिति को चिह्नित करते हैं। "डॉक्टर उनका उपयोग करते हैं" क्योंकि वे बहुत कम समय में कई डिस्कनेक्ट किए गए तथ्यों को सीखने के लिए मजबूर होते हैं। हम धीरे-धीरे इस तथ्य के बारे में आ रहे हैं कि चिकित्सा डॉक्टरों के लिए हमारी शिक्षा बेकार है, और उदाहरण के लिए यूएसए पूरी तरह से शिक्षा को फिर से तैयार करने के रास्ते पर है। Mnemonics एक समाधान नहीं हैं, वे समस्या का हिस्सा हैं। यदि आप स्वयं को उनका उपयोग करते हुए पाते हैं, तो आप समझने में असफल रहे।
कोनराड रुडोल्फ

1

आपको कुछ समय के लिए अपना ध्यान बदलना होगा, न कि 5 मिनट। या 5 घंटे ... मेरा मतलब है कि उस कोड को देखे बिना 1 दिन जैसा कुछ .... बस इसके बारे में चिल करें ... कुछ अलग पढ़ें ...

आप तो है अब यह समझने के लिए ... या यहाँ मित्रों से मदद के लिए पूछना =)


1

आईटी में हर कोई क्या करता है।

मैं संबंधित अवधारणाओं को देखने के लिए एक खोज इंजन का उपयोग करता हूं, जो मुझे तब तक समझ में नहीं आता है जब तक कि मैं उस विषय पर दोबारा विचार नहीं कर सकता, जिसे मैं शुरू में समझना चाहता था।

संभावना है कि आप स्टैक, हीप, स्वचालित चर, C ++ संकलन प्रक्रिया, असेंबली, प्रबंधित स्मृति बनाम अप्रबंधित मेमोरी को पूरी तरह से नहीं समझ पाएंगे।

इन और अन्य सूचक संबंधी अवधारणाओं पर अधिक स्पष्टता शायद सब कुछ स्पष्ट कर देगी।


1

किसी विषय-वस्तु को समझने का कोई निश्चित समय नहीं है। आपकी सफलता इस बात पर निर्भर करती है कि आप अपनी पढ़ाई में कितना संदर्भ लेकर आए हैं। आप किसी ऐसे व्यक्ति को खोजने के लिए बहुत भाग्यशाली होंगे जो आपकी बातों को ध्यान में रखते हुए समझाएगा। ट्यूरिंग मशीनों की तरह, कोई भी वह सीख सकता है जो दूसरे जानते हैं, और यह सिर्फ दृढ़ता और स्वीकृति की बात है कि निराशा स्वाभाविक है।

मुझे याद है कि मुझे इशारों से बहुत कठिनाई होती थी। यह तब तक नहीं था जब तक एक बहुत रोगी दोस्त ने मुझे यह नहीं समझाया कि मैं एक पूर्ण बेवकूफ था जिसे मैंने समझा। कभी-कभी ऐसा लगता है।


1

यह सीखने और सिखाने में एक आम समस्या है। और जैसा कि दूसरों ने कहा है, इस के आसपास काम करने का कोई निश्चित तरीका नहीं है। यह एक बुनियादी सच्चाई है कि हम सभी अलग-अलग तरीके से सीखते हैं क्योंकि हमारे दिमाग को सूक्ष्म लेकिन महत्वपूर्ण तरीकों से अलग तरीके से तार दिया जाता है।

सीखना नए न्यूरोनल कनेक्शन उत्पन्न करता है। तंत्रिका विज्ञान में बहुत अधिक जाने के बिना (जिसके बारे में मुझे कुछ नहीं पता है), नए कनेक्शन पैदा करने के लिए विभिन्न लोगों के लिए एक अवधारणा के विभिन्न प्रकार के संपर्क की आवश्यकता होती है । कई अलग-अलग कोणों की कोशिश करें, विभिन्न स्पष्टीकरणों को पढ़ें / सुनें / देखें। अभ्यास!

यदि वह काम नहीं करता है, तो समस्या को एक तरफ रख दें: आप बस पहेली का एक और हिस्सा याद कर रहे होंगे, जिसे एक बार अधिग्रहित करने के बाद, मूल समस्या स्पष्ट लगती है।

क्या आप इन अहा को जानते हैं ! क्षणों? यह तब है जब आपके मस्तिष्क ने सिर्फ एक नया संबंध बनाया है। इस तरह से सीखने को मिलता है।

संयोग से, कोई भी अच्छा शिक्षक यह जानता है। तकनीकी लेखन के दिशानिर्देश अक्सर कहते हैं कि प्रत्येक अवधारणा को कम से कम दो बार समझाया जाना चाहिए, विभिन्न शब्दों का उपयोग करके (और शायद उनके बीच कुछ पाठ के साथ)। यदि आप ध्यान दें तो आप यह जान पाएंगे कि सभी अच्छे विज्ञान लेखक इस नियम का पालन करते हैं।

काश, सभी बहुत से शिक्षक इसे अनदेखा कर देते, और चीजों को केवल एक बार समझाते। और यहां तक ​​कि अगर वे एक महान रूपक के साथ एक सुंदर व्याख्या खोजने में सफल होते हैं तो यह पर्याप्त नहीं है।


0
  1. किसी भी प्रासंगिक दस्तावेज़ और Google को अपनी शंकाओं को पढ़ें।

  2. कोड उदाहरण लिखने का प्रयास करें, देखें कि वे क्या करते हैं।

  3. डिबग में कोड निष्पादित करने का प्रयास करें, और इसे चरण दर चरण देखें।

  4. यदि आप अभी भी एक निश्चित व्यवहार को नहीं समझते हैं, तो किसी व्यक्ति या व्यक्ति से इस तरह की वेबसाइट पर पूछें। यदि आपने उपरोक्त सभी की कोशिश की, तो आपके पास एक अच्छा प्रश्न बनाने के लिए सभी तत्व होने चाहिए। शर्मीली मत बनो :)

मुझे लगता है कि यह बहुत अधिक है जो हर कोई करता है।


0

शोध और सीखते रहें। मुझे प्रोग्रामिंग के विभिन्न अन्य पहलुओं के साथ भी यही समस्या थी। लेकिन दूसरों से बात करना और लेख पढ़ना आखिरकार "अहा" पल होता है। आम तौर पर, यह कुछ अन्य ब्लॉग पोस्ट या एसओ उत्तर है जो उस जानकारी को प्रस्तुत करता है जिसका मैं पालन करने में सक्षम हूं।

मूल रूप से, समझ रखने के लिए और आने के लिए धैर्य रखें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.