क्यों सीएस को याद किया जाना सिखाया जाता है? [बन्द है]


23

मैं पिछले एक साल से हाई स्कूल में एडवांस प्लेसमेंट कंप्यूटर साइंस ले रहा हूं। ऐसा लगता है जैसे हमें कोड और फ़ंक्शंस को याद रखने के लिए सिखाया जाता है कि प्रलेखन और इस तरह से संसाधन और कुशल होने के तरीके।

व्यावहारिक रूप से, मैं कई कल्पना करता हूं (यदि सभी नहीं) प्रोग्रामिंग नौकरियां आपको प्रलेखन के माध्यम से फ्लिप करने की अनुमति देंगी, पिछले कोड और दूसरों के कोड की समीक्षा करें, अनिवार्य रूप से वह कर रही है जो मेरे शिक्षक "धोखा" पर विचार करेंगे।

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

CS को कोड और कार्यों के संस्मरण पर ध्यान केंद्रित करने के लिए क्यों सिखाया जाता है, जिसमें उपयोगी कौशल सिखाने का विरोध किया जाता है, जिसमें प्रलेखन, नमूना कोड, डीबगर और इस तरह का उपयोग करना और व्याख्या करना शामिल है।


34
सीएस कोड और कार्यों के संस्मरण के बारे में नहीं है। आप सीएस की पढ़ाई कहां कर रहे हैं? क्या मैं आपको बता सकता हूं कि असली समस्या यह है कि आप जो कोर्स कर रहे हैं वह बकवास है?
एंड्रेस एफ।

1
@AndresF। ओपी एडवांस्ड प्लेसमेंट कंप्यूटर साइंस में है, जो हाई स्कूलर्स (यूनिवर्सिटी से पहले) को दिया जाने वाला कोर्स है।

3
@GlennNelson ओह! मैंने उसे गलत समझा। ठीक है, उस मामले में: esqew : आपको यह जानकर राहत मिलेगी कि विश्वविद्यालय स्तर पर, CS (ज्यादातर) कोड को याद करने के बारे में नहीं है। आपको बहुत सारी चीजें पढ़नी होंगी, हालाँकि;) एक सीएस शिक्षा भी जरूरी नहीं है कि आप नौकरी पा सकें (आपको शायद निराशा होगी अगर आपको लगता है कि यह है)
एंड्रेस एफ।

1
आपको पता होना चाहिए कि ज्यादातर कॉलेजों में ऐसा नहीं है। मेरे स्कूल में, हर एक कंप्यूटर साइंस टेस्ट में खुले नोट्स / खुली किताब होती है।
केसी पैटन

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

जवाबों:


37

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

उदाहरण के लिए, आपको कई सॉर्टिंग एल्गोरिदम पता होना चाहिए कि वे कैसे कार्यान्वित किए जाते हैं, वे कैसे काम करते हैं, जब उनका उपयोग सबसे अच्छा होता है, और जब उनका उपयोग नहीं करना होता है। यह हमेशा देखा जा सकता है, लेकिन ऐसा नहीं होना चाहिए - अब एक गणितज्ञ की तुलना में 6 गुना 8 को देखना चाहिए।


9
आपको सॉर्टिंग एल्गोरिदम की मूल प्रकृति को जानना चाहिए लेकिन मुझे लगभग 15 साल हो गए हैं क्योंकि मुझे बबल सॉर्ट के अलावा कुछ भी लिखने का अवसर मिला था। (बहुत छोटे N के लिए यह कभी-कभी बेहतर उत्तर होता है।)
लोरेन Pechtel

1
काश, मैं कह सकता कि सभी कंप्यूटर विज्ञान कक्षाएं अच्छी हैं। मेरे हाई स्कूल में उन्होंने पूरे साल के लिए जावा का मूल वाक्यविन्यास पढ़ाया। जब वे बबल सॉर्ट और डीजकस्ट्रा के एल्गोरिथ्म के बीच के अंतर को भी स्पष्ट नहीं कर सकते थे, तो कई ने "एक प्रोग्रामर" होने का घमंड छोड़ दिया।
डैनियल ग्रैज़र

2
एक उदाहरण है, कि आप एक शब्दकोश में किसी भी शब्द देख सकते हैं दिए गए के रूप में, सैद्धांतिक रूप से आप पर इस लेख को समझने के लिए सक्षम होना चाहिए meantone । लेकिन हमारे दिमाग में सीमित संख्या में नेस्टेड डिफेक्ट्स होते हैं।
बेंजोल

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

2
@kaoD: और संदर्भ को याद रखने से उस एक बिट की मदद नहीं होगी। इसमें कुछ भी शामिल नहीं है, यह सिर्फ एक कॉपी पेस्ट है। मेमोरी से जवाब देने और विकिपीडिया से कॉपी-पेस्ट करने के बीच एकमात्र अंतर यह है कि एक रैम में संग्रहीत होता है और एक आपके मस्तिष्क में संग्रहीत होता है। यह अभी भी कॉपी-पेस्ट है।
डेडएमजी

14

यह अक्सर इस तरह से पढ़ाया जाता है क्योंकि शिक्षक आमतौर पर समझ के परीक्षण के किसी अन्य तरीके को नहीं जानते हैं। आपकी भावनाएं पूरी तरह से सही हैं कि इस तरह सिखाया जाना बेकार है। जिस तरह से लोगों को सामान्य रूप से शिक्षित किया जाता है, उसके लिए सख्त सुधार की आवश्यकता है!

हालांकि, जीवन बेहतर हो जाता है, कम से कम UIUC में मैंने पाया है कि आप जितनी अधिक सीएस कक्षाओं में जाते हैं उतनी ही कम परीक्षाएं उन्मुख होती हैं, जैसा कि आप वर्णन कर रहे हैं और मेरे अधिकांश पाठ्यक्रमों में हमें सभी बकवास के लिए एक धोखा पत्र की अनुमति दी गई है यदि आप वास्तव में एक कंप्यूटर पर बैठे थे, तो आप निश्चित रूप से googled होंगे।

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


2
+1 आमीन। मैं कॉलेज स्तर पर प्रोग्रामिंग सिखाता था, और मेरा लक्ष्य छात्रों को जल्दी से जल्दी उस बिंदु पर ले जाना था जहाँ वे अपनी अनूठी परियोजनाएँ कर सकते थे। मुझे इससे नफरत है जब शिक्षक इसे याद रखने या चीजों को "सही तरीके" से करने के रूप में मानते हैं। मैंने जो करने की कोशिश की, उसमें छात्रों की अपनी रचनात्मकता को उजागर करने के लिए पर्याप्त कौशल डाला गया।
3

... मेरे पास ऐसे छात्र थे जो बहुत स्मार्ट थे और याद रखने में बहुत अच्छे थे। इससे पहले कि मैं यह बता सकूँ कि प्रोग्रामिंग सीखने के लिए आपको सामान लिखने की ज़रूरत है, सामान को याद करने की नहीं।
3

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

10

स्कूली शिक्षा को अपनी शिक्षा में बाधा न बनने दें।

-- मार्क ट्वेन

मैं एक मैक्सिकन हूं और आपको यह बता रहा हूं क्योंकि मेक्सिको शिक्षा के लिए बिल्कुल भी अच्छी जगह नहीं है (किसी भी स्तर पर), कम से कम सार्वजनिक शिक्षा में।

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

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

सबक: चीजों को होने मत दो, चीजों को होने दो। यदि आप अपने सीखने के तरीके से खुश नहीं हैं, तो इसे बदल दें!

* मेरे द्वारा किए गए बुद्धिमान निर्णय नहीं।


4
"चीजों को होने मत दो, चीजों को होने दो", - अगर कभी शब्दों से जीना था, तो उन लोगों द्वारा!
ग्रैंडमास्टरबी

बोली के लिए +1। मुझे <लगभग> बाकी का जवाब नहीं पढ़ना था
चानी

3

यह इस बात पर निर्भर करता है कि आप क्या याद करने की कोशिश कर रहे हैं ...

उदाहरण के लिए, गणित का अध्ययन करने के लिए, आपको बीजगणित से परिचित होना होगा और समीकरणों को सरल बनाने के लिए आपको बीजगणितीय जोड़तोड़ करने के बारे में अक्सर रचनात्मक होना होगा। लेकिन आपको उन दिलचस्प बिट्स पर ध्यान केंद्रित करने में सक्षम होने के लिए कुछ बिल्डिंग ब्लॉकों को याद करना होगा। उदाहरण के लिए, आपको अपने गुणन सारणी को दिल से जानना होगा और आपको कुछ पहचानों को जानना होगा ताकि आप पहचान सकें कि उन पहचानों का उपयोग करने के लिए समीकरणों में हेरफेर कैसे करें।

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

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


लिंक की गई सूची का उपयोग कहां और क्या करना है यह उन चीजों पर आधारित है जैसे यह विभिन्न कार्यों के लिए जटिलताएं हैं, और यह स्मृति प्रदर्शन है। आपको उन चीजों में से किसी एक को जानने के लिए उसे लागू करने की आवश्यकता नहीं है। एक डेटाबेस बाइनरी खोज का उपयोग कहां कर सकता है? कुंजियों के लिए जो यह तुलना करना जानता है। खैर, यह आसान था।
डेडएमजी

3

"सीएस को संस्मरण पर ध्यान केंद्रित करने के लिए क्यों सिखाया जाता है ... उपयोगी कौशल सिखाने के विपरीत" - मुझे लगता है कि आप संस्मरण को थोड़ा और बढ़ा रहे हैं। जैसे आपको डिबगिंग का उपयोग करते हुए, कोड लिखने की व्याख्या करनी चाहिए, डिबगर का उपयोग करना चाहिए, वैसे ही आपको याद रखने का भी अभ्यास करना चाहिए।

आप आश्चर्यचकित हो सकते हैं कि आप कितनी अधिक कुशल बन सकते हैं यदि आपको अक्सर एपीआई संदर्भ के रूप में नहीं जाना पड़ता है या कई डीबगर कमांड के रूप में दिखता है।

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


2
एपीआई को देखने के लिए अभ्यास के माध्यम से नहीं आता है, एपीआई को औपचारिक शिक्षा के रूप में नहीं सिखाता है।
डेडएमजी

@ डीडीएमजी: अधिक चीजों को याद रखने में सक्षम होना अभ्यास के साथ आता है, जैसे बाकी सब कुछ। कुछ एपीआई को याद रखना आपके लिए आवश्यक नहीं है, बल्कि जानकारी को बनाए रखने के लिए अपने सिर को प्रशिक्षित करने का एक साधन है, इसलिए आपको इसे अक्सर देखने की जरूरत नहीं है। और मैं सिर्फ एपीआई के बारे में बात नहीं कर रहा हूं, अगर मुझे एक अतिरिक्त चीज याद हो सकती है, तो वह है एक कम यात्रा जिसे मुझे Google / MSDN / किसी अन्य स्रोत फ़ाइल में करने की आवश्यकता है और अभ्यास के साथ यह इस बात से फर्क पड़ता है कि आप कितनी तेजी से काम करने में सक्षम हैं ।
DXM

उस विशिष्ट एपीआई के साथ अभ्यास करें । सामान्य रूप से चीजों को याद नहीं करना। और शिक्षा में बिताया गया समय पेशेवर समय की तुलना में एक छोटा फुटनोट है।
डेडएमजी

2

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

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

यदि कोई छात्र ऐसा नहीं कर सकता है, तो उनके पास उस विषय में निपुणता नहीं है, बस शायद एक परिचित परिचित है।


-1: सभी हैंड राइटिंग सिंथैटिकली सही कोड आपको बताता है कि व्यक्ति एक कंपाइलेबल प्रोग्राम लिखने में सक्षम है (संभवतः सबसे धीमे कंप्यूटर की तुलना में लगभग एक लाख गुना धीमा है) -यह उद्देश्य के अनुसार काम नहीं कर सकता है। इससे भी बदतर, उनके पास बस एक अच्छी याददाश्त है और अगर कहा जाए तो शायद शेक्सपियर को याद कर सकते हैं। यह एक डेवलपर के रूप में व्यक्ति के कौशल को इंगित करने का बहुत कम तरीका है।
3

यह जवाब प्रस्तुत राय के लिए कोई तर्क नहीं प्रस्तुत करता है। किसी को भी अपनी पसंदीदा भाषा में किसी भी प्रकार के एल्गोरिदम के लिए कार्यान्वयन लिखने में सक्षम क्यों होना चाहिए?
डेडएमजी

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

-2

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

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

हीप्सॉर्ट के बारे में जानने के लिए महत्वपूर्ण बात यह नहीं है कि इसे कैसे लागू किया जाए। यह सबसे अच्छे और बुरे मामलों में, और इसी तरह की चीजों में ऑपरेटिंग जटिलता है। लेकिन, हैरानी की बात यह है कि विकिपीडिया पर एक काम-बांका तालिका है जो आपको तुरंत यह जानकारी देगी। तो फिर, उस ज्ञान के होने में कोई मूल्य नहीं है। जब भी आप इसे अभी से प्रभावी रूप से बिना किसी लागत के समय तक चाहते हैं, यह आपके लिए तुरंत उपलब्ध है। तो आप इसे क्यों याद करना चाहेंगे? यह व्यर्थ है।

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


2
जी, दोस्तों, अपने
डाउनवोट्स

हीप्सॉर्ट को जानने के लिए मुझे केवल एक समय की आवश्यकता थी जब मुझे एक परिवर्तनीय प्राथमिकता कतार की आवश्यकता थी (हीप्सोर्ट एक प्राथमिकता कतार के रूप में महान काम करता है)। ज्ञात एल्गोरिदम को अनुकूलित करने में सक्षम होना यह जानने का एक अच्छा कारण है कि उन्हें कैसे लागू किया जाए।
डेविड थॉर्नले 15

@ डेविड: आपको यह जानने की जरूरत नहीं है कि कैसे काम करता है। किसी भी प्रकार के एल्गोरिथ्म का उपयोग करने वाला कार्यान्वयन ठीक होगा।
डेडएमजी

उस विशेष मामले में नहीं, यह नहीं होगा। इसे बहुत सारी घटनाओं को संभालना पड़ता था, अक्सर, एक ऐसी प्रणाली पर जो पहले से ही प्रभावित हो सकती है। उस परियोजना के लिए, हमें दक्षता की आवश्यकता थी, और हमें यह मिल गया। संदर्भ के लिए, यह एक लंबे कैरियर में एक बार हुआ, और लंबे समय तक मेरी सभी छंटनी एसक्यूएल ORDER BYऔर सी ++ के std::sortपरिवार जैसी चीजें रही हैं ।
डेविड थॉर्नले

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