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