कंप्यूटर प्रोग्रामिंग की कला - पढ़ने के लिए या नहीं पढ़ने के लिए? [बन्द है]


63

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

मैं सोच रहा हूँ - क्या यहाँ किसी ने 'TAOCP' पढ़ा है? यदि ऐसा है, तो क्या यह पढ़ने के लिए समय बनाने के लायक है या कुछ अन्य पुस्तक या अधिक ऑन-द-साइड प्रोग्रामिंग जैसे पालतू प्रोजेक्ट्स या ओपन सोर्स में योगदान करना पेशेवर विकास के मामले में मेरे समय का बेहतर उपयोग होगा?

अस्वीकरण - आप में से जो लोग खेल "नथ मेरी होमबॉय" टी-शर्ट हैं, मेरे लिए गलत नहीं है - मैं इसे पढ़ना चाहता हूं, लेकिन मैं सोच रहा हूं कि क्या यह मेरी प्राथमिकता सूची के शीर्ष पर सही होना चाहिए या अगर कुछ और पहले आना चाहिए।


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

मैंने इसे पेज 3 पर बनाया और कुत्ते को कान लगाया। 6 महीने बाद अमेज़न पर सेट बेच दिया।
kirk.burleson

जवाबों:


72

TAOCP डेटा संरचनाओं और एल्गोरिदम को समझने के लिए पूरी तरह से अमूल्य संदर्भ है कि हम हर दिन के काम का उपयोग क्यों करते हैं और काम क्यों करते हैं, लेकिन इसे कवर-टू-कवर पढ़ने का उपक्रम आपके समय का एक असाधारण निवेश होगा।

एक परिवार के दूसरे व्यक्ति के रूप में, अपने बच्चों के साथ समय बिताएं।


34
बच्चों के लिए +1 - कंप्यूटर प्रतीक्षा के लिए कुख्यात हैं। वे बच्चों के बड़े होने का इंतजार कर सकते हैं।

3
बच्चों के लिए +1, जब आप अपने जीवन के किसी भी समय पुस्तक को पढ़ पाएंगे, तो आप अपने 4 साल के बच्चे के साथ केवल 1 वर्ष तक ही खेल पाएंगे। और आपके 5 साल के बच्चे के साथ केवल 1 साल के लिए भी ...

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

5
मेरे अभी तक बच्चे नहीं हैं और मैं मरने से पहले वास्तव में इसे पढ़ना चाहता हूं। क्या मेरे बच्चे नहीं होंगे?
डूब गया

1
@sank आप एक प्रोग्रामर की तरह सोच रहे हैं ... :)
Angelin Nadar

23

TAOCP के संदर्भ के लिए आपके प्रश्न में "एनसाइक्लोपीडिया" को स्थानापन्न करें, और मुझे लगता है कि उत्तर स्पष्ट होना चाहिए। क्योंकि कई मामलों में, यह TAOCP है।

स्टीव जॉब्स के नथ से मिलने के बारे में एक (संभवतः एपोकरीफाल) कहानी है। जॉब्स ने उनसे जो पहली बात कही वह थी "डॉ। नुथ से मिलकर खुशी हुई। मैंने आपके सारे काम पढ़े हैं!"। नुथ की प्रतिक्रिया थी "आप ठग से भरे हैं": http://www.folklore.org/StoryView.py?project=Macintosh&story=Close_Encounters_of_the_Steve_Kind.txt


1
इनसाइक्लोपीडिया में बहुत सी चीजें हैं, ज्यादातर दिलचस्प या प्रासंगिक नहीं हैं, यहां तक ​​कि हितों की एक विस्तृत श्रृंखला भी है। TAOCP की सामग्री किसी भी सॉफ़्टवेयर डेवलपर के लिए कम से कम कुछ प्रासंगिक है।
डेविड थॉर्नले

4
पुन: नौकरी कहानी: यह है एक मनगढ़ंत कहानी है। नुथ ने रान्डेल मुनरो की गूगल टेक वार्ता में उतना ही कहा।
ग्रेफेड

4
"कहानी" ने फिर भी मुझे मुस्कुरा दिया। :)
MetalMikester

मैं डॉ। नुथ के हास्य को देख सकता हूं। मैंने उनके प्रकाशित पते पर एक ईमेल भेजा। मुझे आश्चर्य हुआ कि उसने जवाब दिया। उनकी प्रतिक्रिया मेरे ईमेल की एक हार्ड कॉपी थी, क्या उन्होंने मुझे विनम्रतापूर्वक TAOCP के शेष भाग को पढ़ने के लिए कहा था। मेरा ईमेल हस्ताक्षर मिसौरी से है (मुझे दिखाओ), ​​जिसके बारे में उन्होंने एक मूर्ख एमओ राजनीतिज्ञ के बारे में टिप्पणी की। उन्होंने यह कहकर निष्कर्ष निकाला, "बस मजाक कर रहा हूं, मुझे गॉव के लिए दोष न दें। श्वार्जनेगर"।
dbasnett

21

नहीं, यह आपकी प्राथमिकता सूची में सबसे ऊपर नहीं होना चाहिए। मुझे पूरा सेट मिल गया है और मैंने पूरी बात नहीं पढ़ी है। मैंने इसे (अब तक) कुछ समस्याओं पर एक अच्छे संदर्भ के रूप में इस्तेमाल किया है (यह यादृच्छिकता की मेरी समझ और अमूल्य जनरेटर के परीक्षण के लिए अमूल्य था)। जब भी कोई CS विषय आता है कि मेरे पास वास्तव में अच्छा हैंडल नहीं है, तो मैं अपनी समझ में एक अच्छे कदम के रूप में TAOCP के प्रासंगिक बिट को हथियाने का प्रयास करता हूं।

यदि आप इसे पढ़ने का निर्णय लेते हैं, तो आपके लिए अधिक शक्ति, और मैं निश्चित रूप से इसे छोटे खंडों में लेने की सलाह देता हूं। चारों ओर छोड़ना और जो भी सबसे पहले दिलचस्प हो उसे देखने से डरो मत।


1
तुमने सिर पर कील ठोक दी है।
kirk.burleson

9

TOACP एक आवश्यक पढ़ा - कुछ बिंदु पर है। आप रोज क्या करते हैं, इस पर निर्भर करते हुए, यह आपका सबसे जरूरी नहीं हो सकता है।

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

दूसरे शब्दों में: यह बिग-पिक्चर लर्निंग है, इसलिए यदि आप मेरी तरह जुनूनी हैं, तो आप इसे पढ़ें, यदि आप नहीं हैं, तो इसे बंद करना ठीक है, जब तक कि आप सीढ़ी को स्थानांतरित करने के लिए तड़पना शुरू न करें और एक बड़ा चित्र पुरुष बनें।


6

हाल ही में इस कार्य को करने के बाद, मैं कह सकता हूँ कि वह जिस तरह से लिखते हैं वह बहुत ही सुखद है और समस्याओं को बहुत कठिनाई से लेबल किया जाता है। पहला वॉल्यूम प्राप्त करें और अध्याय 1 और 2 पढ़ें और देखें कि आपको यह कैसे पसंद है।


6

TAOCP एक बेहतरीन काम है, लेकिन इसे पढ़ना एक प्रैक्टिसिंग सॉफ्टवेयर डेवलपर के लिए एक भयानक समय का निवेश होगा। यदि आप इसे करते हैं तो आप अपने पेशेवर स्व-सुधार बजट को बहुत कम जानने के लिए कुछ वर्षों (यानी कितना समय लगेगा) का त्याग कर रहे हैं।

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

तब यदि आपको लगता है कि आपको नथ तक जाने की जरूरत है / चाहिए।

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


6

नुथ का सेमिनल काम सबसे लोकप्रिय संदर्भ है जिसे प्रोग्रामर पढ़ने, या पढ़ने को खत्म करने का इरादा रखते हैं। किसी दिन।


2
यह प्रोग्रामर्स के लिए हॉकिंग के "ए ब्रीफ हिस्ट्री ऑफ टाइम" जैसा है।
जॉन हॉपकिंस

1
बिट मैं था ABHIT पढ़ें। हॉकिंग विकिरण मुझे अजीब लगता है। एक ब्लैक होल सिकुड़ जाता है क्योंकि कुछ और सामान उसमें गिर जाता है? मुझे द्रव्यमान का संरक्षण और दो-हिस्सों-प्रत्येक-आभासी-जोड़ी-कभी-कभी-मिलने-से-विनाश वाली चीज़ मिल सकती है, लेकिन विचार अभी भी अजीब है।
स्टीव

@ स्टीव ३१४: क्या बहुत ही भयंकर है कि बहुत छोटे ब्लैक होल हिंसक रूप से फट जाते हैं। सैद्धांतिक रूप से।
स्टीवन ए। लोवे

2
ABHOT सामान्य लोगों के लिए छोटा और इच्छित है। TAOCP उन चीजों में से नहीं है।
शॉन मैकमिलन

3

+10 परिवार / बच्चों पर टिप्पणी करें। मैं कोशिश करता हूं कि ग्राहकों को रेड-आई फ्लाइट पर स्थायी करते हुए सबसे अधिक पढ़ूं।

लेकिन ... हां, बहुत ज्यादा पढ़ने लायक है। कोई कारण नहीं है रैखिक पढ़ने के लिए, बजाय स्किम और ब्याज के कुछ विषयों का चयन करें।


3

मैं दृढ़ता से लोगों के शिविर में हूं जो महसूस करता है कि प्रत्येक डेवलपर को किसी बिंदु पर किताबें प्राप्त करने में निवेश करना चाहिए (और अब यह आसान हो रहा है कि ऐसा लगता है कि उन्हें पेपरबैक में पुनर्मुद्रित किया जा रहा है ) लेकिन उसी टोकन पर, मैं करूंगा यह मानने के लिए भी कठोर हो कि कोई व्यक्ति बैठकर कवर से कवर तक पढ़े।

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


1
एक पूरा अध्याय पढ़ें? यह लगभग आधी मात्रा है, और वे छोटे खंड नहीं हैं। मुझे लगता है कि आप पाठ की एक छोटी इकाई का मतलब हो सकता है।
डेविड थॉर्नले

3

यह मत भूलो कि शुरुआत में, नुथ कंपाइलर लिखने के तरीके के बारे में कुछ लिखना चाहता था।

आप उदाहरण के लिए विकिपीडिया के साथ नेट पर बहुत सारी जानकारी प्राप्त कर सकते हैं, लेकिन यदि आप किसी प्रकार के शोधकर्ता नहीं हैं, तो बस सारांश पढ़ें, आपको संतुष्टि मिलेगी।

आप अभी भी पहली बार पा सकते हैं ताकि आप इसे पढ़ सकें जब आप ऊब रहे हों ...


2

यह शायद अधिक महत्वपूर्ण है कि आप पुस्तक में उस समस्या को करते हैं जिससे आप इसे पढ़ते हैं। इसके लिए काफी समय की आवश्यकता होगी।

वह 4 संस्करणों और 5 फ़ॉर्चीन (जो भी हैं) को पसंद करने के लिए तैयार है, इसलिए किताबों को पूरा करना शायद कंप्यूटर विज्ञान के मूल सिद्धांतों में एक विश्वविद्यालय के पाठ्यक्रम से बेहतर होगा और आपको लगभग सबसे अच्छा प्रोग्रामर बना देगा।

चूँकि आपको मेरे जैसा एक युवा परिवार मिला है, इसलिए आपने मुझे बहुत अच्छा विचार दिया। मैं एक बार में किताबें खरीदता हूँ और अपने बच्चों को पढ़ता हूँ।


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

2
मामूली बिंदु, लेकिन अभी प्रगति के चौथे हिस्से के साथ केवल तीन प्रकाशित खंड हैं। फ़ॉर्चिकल्स एक प्री-प्रिंट हैं जो चौथा वॉल्यूम बन जाएगा। www-cs-facademy.stanford.edu/~uno/taocp.html
rjzii

1

यदि आप उत्सुक हैं, तो इसे करें, लेकिन इसे पचाने में काफी समय लगता है इसलिए आपको अपना समय निकालने की आवश्यकता है।

क्या आपके पास एक कम्यूट है जहां आप पढ़ सकते हैं - यह बिल्कुल सही होगा।


संपादित करें: आपको वॉल्यूम 4 के एक छोटे हिस्से का यह पूर्वावलोकन दिलचस्प लग सकता है: http://www-cs-facademy.stanford.edu/~uno/fasc1a.ps.gz

(नोट: संकुचित पोस्टस्क्रिप्ट)


1
दुर्भाग्य से (इस मामले में - बहुत भाग्यशाली है अन्यथा) मैं दूरसंचार करता हूं, इसलिए यह एक विकल्प नहीं है।
ज़न्जामइंडर्सन

1

यह ऐसा कुछ नहीं है जो ज्यादातर लोग बैठकर कवर-टू-कवर पढ़ना चाहेंगे, नहीं। यह एक अविश्वसनीय रूप से अमूल्य संदर्भ है, और इसे लेने के लिए निश्चित रूप से अच्छा है, एक दिलचस्प अनुभाग चुनें, इस पर पढ़ें, और कुछ अभ्यास करें। लेकिन ऊपर दिए गए विश्वकोश तुलना बहुत उपयुक्त हैं ... यह बड़ा, व्यापक और विस्तृत है। और कुछ "अभ्यास" शोध समस्याएं हैं जिन्हें हल करने में वर्षों लग सकते हैं।

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


1

अगर आप दुनिया को बदलना चाहते हैं, तो इसे पढ़ें। यदि आप नए हैक्स सीखना चाहते हैं, तो इसे न पढ़ें।


1

नुथ का TAOCP एक उत्कृष्ट कृति है। लेकिन, किसी भी कृति (जैसे "इलियड", "वॉर एंड पीस" या प्राउस्ट की "इन सर्च ऑफ लॉस्ट टाइम") की तरह, यह हर किसी के लिए या ओवरटाइम के लिए नहीं है।

पुस्तक बहुत अच्छी तरह से लिखी गई है और बहुत अच्छी तरह से शोधित है। समस्याएं बहुत अच्छी हैं और एल्गोरिदम की व्याख्या अच्छी तरह से की गई है।

पुस्तक की बड़ी समस्या यह है कि नुथ एक काल्पनिक कंप्यूटर के लिए एक काल्पनिक विधानसभा भाषा के लिए कोड दिखाते हैं। मैं समझता हूं कि उसने ऐसा क्यों किया, लेकिन तथ्य यह है कि यह बेकार है।

मैं इस पुस्तक को बाइबल के रूप में उपयोग करने की सलाह देता हूं। जब जरूरत हो, तो उसकी तलाश करो। आपको जवाब मिल जाएगा। यह मेरे लिए एक से अधिक बार हुआ!


3
अगर यह IBM360 या PDP8 के लिए वास्तविक असेंबलर का उपयोग करता है तो क्या यह मदद करेगा?
मार्टिन बेकेट

1
यह गैर-असेंबली भाषा के साथ इन 50 वर्षों को कभी भी समाप्त नहीं कर सकता था। यह सभी को एक समान नुकसान में डालता है!
लूसर ड्रॉग
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.