क्या पुस्तक "कंप्यूटर प्रोग्राम की संरचना और व्याख्या" जावा प्रोग्रामर के लिए एक अच्छा पढ़ा है? [बन्द है]


14

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

कंप्यूटर प्रोग्राम की संरचना और व्याख्या

पुस्तक जावा का उपयोग नहीं करती है। ऐसा नहीं है कि मैं जावा सीखना चाहता था। मैं यह जानने के लिए उत्सुक हूं कि क्या यह एक बेहतर प्रोग्रामर बनने के लिए उपयोगी होगा और वे कौन सी चीजें हैं जो मैं किताब से हासिल कर सकता हूं या इस पुस्तक के लिए उनके अन्य विकल्प जावा प्रोग्रामर के लिए अधिक अनुकूल हैं?


32
शुरुआत के लिए, अपने आप को "जावा प्रोग्रामर" के रूप में स्थान देने की कोशिश न करें। या के रूप में "जो भी भाषा प्रोग्रामर"। यह एक मृत अंत है। इसके बजाय सिर्फ एक प्रोग्रामर बनें। और फिर, SICP बेहद उपयोगी होने जा रहा है। शायद, सबसे उपयोगी पढ़ना वहाँ।
एसके-लॉजिक

3
यह बहुत कठिन है, इसीलिए आप इसे पढ़ते हैं।
जोनाथन हेंसन

4
अध्याय एक से शुरू करें, पृष्ठ पर जाएं, सभी उदाहरणों पर काम करें, तब तक प्रगति न करें जब तक कि आप प्रत्येक पृष्ठ और प्रत्येक उदाहरण को समझ न लें। उत्तर कुंजी ऑनलाइन है।
जोनाथन हेंसन

2
@ जोनाथन हेंसन और जब आप अंत तक
पहुंचते हैं

3
हां, आपको स्कीम सीखने की जरूरत है। हालाँकि, स्कीम का उपयोग करने वाले कारणों में से एक यह है कि आप स्कीम की संपूर्णता को एक दिन में सीख सकते हैं यदि आपने पहले कभी प्रोग्राम नहीं किया है या आपके पास लगभग 10 मिनट हैं। आखिरकार, SICP पूरी तरह से शुरुआती लोगों के लिए एक पुस्तक है, यह बिल्कुल कोई प्रोग्रामिंग ज्ञान मानता है।
Jörg W Mittag

जवाबों:


23

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

जोएल स्पोलस्की ने 2005 में जावा और एसआईसीपी के बारे में एक अच्छा लेख लिखा था जो आपके लिए रुचि का हो सकता है:

http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html


+1 एक पुस्तक अनुशंसा प्रश्न के लिए लगभग कितनी मात्रा में सर्वोत्तम उत्तर।
जोशुआ ड्रेक

13

मुझे लगता है कि कंप्यूटर प्रोग्राम की संरचना और व्याख्या पढ़ने के लिए एक महान पुस्तक है। हालांकि, इसके साथ कुछ समस्याएं हैं।

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

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

आपके द्वारा HtDP समाप्त कर लेने के बाद, आप अभी भी वापस जा सकते हैं और SICP को पढ़ सकते हैं, क्योंकि अब कुछ गुम डोमेन ज्ञान अब उतना हानिकारक नहीं होगा, क्योंकि आपने अवधारणा को पहले देखा है।

नोट: HtDP के दूसरे संस्करण के लिए एक मसौदा है , जिसे आप पहले संस्करण के बजाय पढ़ना चाह सकते हैं। अनिवार्य प्रोग्रामिंग के बारे में सामग्री को हटा दिया गया है, और अभी तक अलिखित दूसरे खंड के रूप में कवर किया जा रहा है कि कैसे डिज़ाइन घटकों को बनाया जाए , लेकिन आप या तो पहले संस्करण से या एसआईसीपी या दोनों से ले सकते हैं।



@ जल्द: सीटीएम बहुत अच्छा है, मैं सहमत हूं। मैं इसे शिक्षण शिक्षण के लिए एक पुस्तक के रूप में नहीं समझता, हालांकि, SICP, HtDP और ठोस अंशों की तरह। लेकिन यह निश्चित रूप से "उन पुस्तकों पर है जो आपको एक बेहतर प्रोग्रामर बनाते हैं" सूची!
डब्ल्यू पर जार्ज डब्ल्यू मित्तग

5

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

मैं पुस्तकों के एक अच्छे सेट की सलाह दूंगा जहाँ प्रत्येक सॉफ्टवेयर इंजीनियरिंग के विभिन्न पहलुओं पर ध्यान केंद्रित करे:

  • कोड पूरा 2 - सॉफ्टवेयर इंजीनियरिंग की प्रक्रियाओं पर केंद्रित है।
  • क्लीन कोड - छोटे में कोडिंग पर केंद्रित है। कक्षाओं और कार्यों को कैसे लिखें।
  • व्यावहारिक प्रोग्रामर - एक सॉफ्टवेयर बनाने वाली टीम के भीतर काम करने पर ध्यान केंद्रित करता है।

ऊपर उल्लिखित पुस्तकों का अधिक विस्तृत विवरण और अन्य एक बार निम्नलिखित संदर्भों से पाया जा सकता है:

  1. 10 सरल पुस्तकों के साथ एक प्रोग्रामर कैसे बनें
  2. शुरुआत प्रोग्रामर के लिए सर्वश्रेष्ठ पुस्तकें

कृपया, इस सूची में जोड़ने के लिए स्वतंत्र महसूस करें क्योंकि यह आदर्श नहीं है :)

संपादित करें: उपर्युक्त पुस्तकों को चुनने और उन्हें पढ़ने के तरीके की प्राथमिकता का निर्धारण करते हुए, यह वास्तव में इस उद्देश्य के लिए नीचे आता है कि आप क्या करने या सीखने की कोशिश कर रहे हैं।


7
मैं (निहित) संदर्भ में सुझावों से सहमत हूं - लेकिन आपका जवाब और भी बेहतर होगा यदि यह वास्तव में उल्लेखित हो कि आपको SICP के बारे में क्या पसंद है (या पसंद नहीं है)।
जॉरिस टिम्मरमन्स

4
सेब और संतरे की तुलना - आपके द्वारा उल्लिखित सभी किताबें सॉफ्टवेयर इंजीनियरिंग के बारे में उत्कृष्ट पुस्तकें हैं। SICP कंप्यूटर विज्ञान के बारे में अधिक है - कंप्यूटर प्रोग्रामिंग क्या अवधारणा है।
नैट

1
यह उत्तर अनुशंसित पढ़ने की सूची के प्रश्न के उत्तर की तरह बहुत अधिक लगता है। मैं विश्वास नहीं करता कि स्टैक एक्सचेंज साइटों के उद्देश्य से अच्छी तरह से फिट बैठता है: meta.stackexchange.com/questions/113678/…
जोशुआ ड्रेक

@ नहीं, यह तुलना करने के लिए सेब और संतरे नहीं है, यह सब सीएस के बारे में है। हालांकि, हालांकि, पुस्तकों में से प्रत्येक कुछ सामान्य विषयों को साझा करते हैं।
यूसुबोव

2
@MadKeithV, मैं आपकी टिप्पणियों से सहमत हूं। मैंने एसआईसीपी पर अपने विचार पहली पंक्ति में रखे हैं।
युसुबोव

4

मैं यहां एक अंग पर जा रहा हूं और कहता हूं - शायद ज्यादातर लोगों के लिए एक अच्छा पढ़ा नहीं है - जो भी भाषा।

नथ की तरह यह एक अच्छी किताब है जिसे पढ़ा जाना चाहिए। हालांकि यह मानते हुए भी कि आप एक हॉट-शॉट एमआईटी कुरकुरा हैं, यह अभी भी ठीक से पढ़ने के लिए एक साल का सबसे अच्छा हिस्सा लेगा, और व्याख्याताओं और टीएएस के साथ thats मदद करेगा।

क्या सॉफ्टवेयर इंजीनियरिंग पर अन्य पुस्तकें हैं जो आप उस समय पढ़ सकते हैं जो अधिक मूल्य की होंगी? क्या अन्य भाषाएँ हैं जो आप समय में सीख सकते हैं?

संपादित करें बस थोड़ा विस्तार करने के लिए:
सॉफ्टवेयर इंजीनियरिंग इंजीनियरिंग है, यह सब अनुकूलन के बारे में है। आपका कार्य किसी दिए गए समय + लागत बजट के लिए अपने ज्ञान को अधिकतम करना है।
SICP एक कार्यात्मक भाषा के माध्यम से प्रोग्रामिंग के लिए एक उच्च स्तरीय परिचय है। कार्यात्मक भाषा का उपयोग करने का कारण यह है कि प्रक्रियात्मक लोगों की तुलना में कार्यात्मक भाषाओं में प्रोग्रामिंग की बहुत सारी गणितीय अवधारणाओं का वर्णन करना आसान है और औपचारिक तर्क की तुलना में पढ़ने में बहुत आसान है।

आसन की एक निश्चित मात्रा भी है। "आप वास्तव में एक प्रोग्रामर नहीं हैं जब तक कि आप SICP नहीं पढ़ते हैं", या Knuth, या लिस्प, या C, या x86 कोडांतरक में प्रोग्राम कर सकते हैं। यह आम तौर पर खंडन करना आसान है; अर्थात। जब तक आप सेट सिद्धांत और मैक्सवेल के समीकरणों पर कैंटर के काम को नहीं जानते हैं और अर्धचालकों में छेद की गतिशीलता से परिचित हैं, तब तक आप वास्तविक प्रोग्रामर नहीं हो सकते।


मेरी इच्छा सूची पर अन्य पुस्तकें थीं जैसे कोड कम्प्लीट 2, क्लीन कोड, प्रोगामैटिक प्रोग्रामर, रीफैक्टरिंग आदि। लेकिन ये जावा पर या SICP के विपरीत कम से कम OOP केंद्रित थे।
आशीषजम्श्रम

5
इसलिए मैं उन्हें पहले
मार्टिन बेकेट

7
मैंने इस जवाब पर बहस की, लेकिन फैसला किया कि सिर्फ एक टिप्पणी बेहतर थी: मैं मानता हूं कि SICP ज्यादातर लोगों के लिए, विशेष रूप से जल्दी पर एक अच्छा पढ़ा नहीं है, लेकिन मेरा मानना ​​है कि एक महान डेवलपर को इस पुस्तक को संभालने में सक्षम होना चाहिए, और सीखेंगे इससे एक बड़ी बात। महान डेवलपर्स "अधिकांश लोग" नहीं हैं। यह एक अच्छी फिल्टर बुक है।
जॉरिस टिम्मरमैन

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

1
@MadKeithV - हां और इसी कारण से मैं मैथ्स / फिजिक्स की पीएचडी को बिना किसी कोडिंग अनुभव के रखता हूं। लेकिन अगर आप एक प्रोग्रामर और विशेष रूप से एक शुरुआत के रूप में पूरा समय काम कर रहे हैं, तो सरल पुस्तकें हैं जो नथ या एसआईसीपी की तुलना में शायद बेहतर (मूल्य / समय) हैं या ट्यूरिंग के कागजात पढ़ना।
मार्टिन बेकेट

1

क्या आप अपने पूरे जीवन के लिए "जावा प्रोग्रामर" होने की योजना बना रहे हैं? तब शायद पढ़ने के लिए बेहतर किताबें हों। यदि आप सामान्य रूप से एक अच्छा प्रोग्रामर बनना चाहते हैं तो यह एक उत्कृष्ट रीड है। यहाँ क्यों है। कुछ निश्चित उपकरण हैं जो हर अच्छे प्रोग्रामर को अपने टूलबॉक्स में चाहिए। एक डेटा संरचनाओं और एल्गोरिदम का गहन ज्ञान है (यदि आप मुझ पर विश्वास नहीं करते हैं, तो Microsoft, Google, Amazon आदि पर साक्षात्कार पर जाएं ...), एल्गोरिदम के साथ जटिलता विश्लेषण, पुनरावृत्ति और बिंदुओं की ध्वनि समझ नहीं है चोट लगी है। जब यह एल्गोरिथ्म विश्लेषण, पुनरावर्ती प्रक्रियाओं और सामान्य रूप से कार्यात्मक प्रतिमान की बात आती है, तो मैं एसआईसीपी से बेहतर या अधिक चुनौतीपूर्ण पुस्तक के बारे में नहीं सोच सकता।

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