मैं ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग लैंग्वेज सीखना चाहता था, मैं यह नहीं चाहता कि किसी भी उद्देश्य के लिए ओओपी की पूरी अवधारणा को जानूं। तो क्या कोई मुझे बता सकता है कि मुझे कौन सी भाषा सीखना शुरू करना चाहिए?
मैं ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग लैंग्वेज सीखना चाहता था, मैं यह नहीं चाहता कि किसी भी उद्देश्य के लिए ओओपी की पूरी अवधारणा को जानूं। तो क्या कोई मुझे बता सकता है कि मुझे कौन सी भाषा सीखना शुरू करना चाहिए?
जवाबों:
कुछ और सुझाव:
ओओपी बार पर मैंने जो सबसे अच्छी किताब पढ़ी है वह कोई नहीं है बर्ट्रेंड मेयर्स ऑब्जेक्ट ओरिएंटेड सॉफ्टवेयर कंस्ट्रक्शन । यह एक 'आसान' नहीं है जिसमें आपको स्थानों में कठिन सोचने की आवश्यकता होगी। लेकिन यह सबसे अच्छा काम करता है जिसे मैंने ओओ सिद्धांतों को समझाते हुए देखा है।
भाषाओं के लिए: मैं C ++ से दूर रहूँगा। सीखने के उद्देश्यों के लिए बहुत बड़ा है। यदि आप एक ऐसी भाषा चाहते हैं जो आपको OO को समझने में मदद करे (जैसा कि किसी के विरोध में आप मुख्यधारा की ऐप्स लिखेंगे / प्रयोग करके नौकरी पा सकते हैं) तो स्मालटाक को देखें। या एफिल (ऊपर मेयर की पुस्तक में भाषा)।
यदि आप ऐसी भाषा चाहते हैं जो थोड़ी अधिक मुख्यधारा की हो लेकिन फिर भी ईमानदारी से OO सिद्धांतों का समर्थन करती है तो पायथन एक अच्छी शर्त है। यदि आप स्थैतिक टाइपिंग चाहते हैं तो जावा और सी # भी सभ्य हैं।
हालांकि सावधानी का एक शब्द: भाषा आपको OO नहीं सिखाएगी। यह केवल ओओ अवधारणाओं का समर्थन करने में कितनी मदद कर सकता है (या बाधा)। OO सीखना वास्तव में OO शब्दों में सोचना सीखना है । उसके लिए मैं मेयर की किताब पर वापस आता हूँ।
hth।
आप OOPS को आज़माने के लिए ऑब्जेक्ट ओरिएंटेड भाषाओं में से कोई भी सीख सकते हैं जैसे C ++, Java, C # आदि।
यदि आप वास्तव में ओओपी सीखना चाहते हैं, तो आपको भाषाओं से परे सोचने और समझने की आवश्यकता है कि यह एक प्रतिमान है जो सॉफ्टवेयर कार्यक्रमों में शामिल मंगा जटिलता को ठीक उसी तरह मदद करता है जैसे हम इस वास्तविक दुनिया में उन्हें कैसे प्रबंधित करते हैं। फिर OO में मूल अवधारणाओं को जानें जैसे कि बहुरूपता, वंशानुक्रम, एनकैप्सुलेशन (PIE) आदि
ग्रैडी बोच द्वारा एप्लीकेशन (2 डी संस्करण) के साथ ऑब्जेक्ट-ओरिएंटेड एनालिसिस एंड डिज़ाइन के आसपास अच्छी किताबें हैं
इसके अलावा, आप इस जो मैंने पाया की तरह ब्लॉग बाहर की कोशिश कर सकते सरल हूँ- शुरू करने के लिए पर्याप्त है fascinatingoops.com
आप OOP सीखना चाहते हैं? एक उत्तर - स्मालटाक।
यह एक सुंदर भाषा है और कोर के लिए OO है। आप शुरुआत से ही OOP सीखेंगे और अन्य भाषाओं को शामिल करने के लिए अन्य सभी विकर्षणों से बाधित नहीं होंगे।
छोटेलाल जीतता है। और कुछ अच्छी मुफ्त ई-पुस्तकें भी उपलब्ध हैं (देखें: स्टीफन डुकासे )
आपको C ++ सीखना होगा, या शायद स्मॉलटाक जैसे पूर्वजों में से एक। C ++ ऑब्जेक्ट ओरिएंटेशन, मेमोरी मैनेजमेंट और रेफरेंस बनाम वैल्यू जैसी अवधारणाओं के बीच एक अलग से सफाई प्रदान करता है, और इसमें मजबूत जेनेरिक सपोर्ट है।
C # की तरह Java या .NET लैंग्वेज न सीखें। जब आप जावा जैसी भाषा सीखते हैं, तो आप ऐसी चीजें सीखते हैं जैसे "ऑब्जेक्ट हमेशा ढेर पर होते हैं और हमेशा संदर्भ होते हैं", जो केवल जावा के लिए सच है और सामान्य रूप से ओओपी के लिए बिल्कुल सच नहीं है। अवधारणाओं (ऑब्जेक्ट-ओरिएंटेशन, मेमोरी मैनेजमेंट, संदर्भ बनाम मूल्य) का यह टकराव पहली भाषा के लिए बहुत खतरनाक है, क्योंकि एक बार जब आप उन्हें अपने सिर में फंस जाते हैं, तो उन्हें वापस बाहर निकालना बहुत कठिन हो सकता है। C # इस संबंध में कुछ बेहतर है लेकिन ज्यादा नहीं। इसके अलावा, उनके पास "इनहेरिटेंस एक हथौड़ा है और सब कुछ एक कील है" सिखाने के लिए एक उच्च प्रवृत्ति हो सकती है "कमजोर जेनेरिक प्रोग्रामिंग समर्थन।
OOP अवधारणाओं को सीखने का सबसे अच्छा तरीका अधिक से अधिक कोड लिखना और अक्सर इसकी समीक्षा करना है। एक अच्छे प्रोग्रामर का अभ्यास करें।
वास्तविक विश्व परिदृश्यों के बारे में सोचें, एक समस्या कथन को परिभाषित करें - इसे कोड में हल करें और इसकी समीक्षा करें। आप हमेशा समीक्षाओं के लिए /codereview// से मदद ले सकते हैं :)
हैप्पी कोडिंग !!!
कदम
OO दुनिया में मेरा पहला संपर्क C ++ था, जो कि एक बुरी शुरुआत नहीं थी। लेकिन पायथन सीखने के दौरान मैंने बहुत सुधार किया। अंतर भाषाओं से आता है: विचारों को आज़माना ('मैं ओओ फैशन में इस समस्या को कैसे हल कर सकता हूं?') सी ++ में लिखने के लिए अधिक कोड की आवश्यकता है और इसमें पायथन में एक ही विचार को आज़माने की तुलना में बहुत अधिक नुकसान शामिल हैं। इसलिए मैं अजगर की सलाह दूंगा।
मुझे नहीं लगता कि OOP सीखने की कोशिश करते समय आपको किसी अन्य भाषा में देखना चाहिए। मेरे लिए, सिद्धांत को समझना और फिर इसे लागू करना सीखना आसान है अगर मैं किसी ऐसी चीज से संबंधित हो सकता हूं जिसे मैं पहले से जानता हूं। एक नए सिंटैक्स का पता लगाना अभी रास्ते में आता है।
आप किसी भी ओओपी किताब से शुरुआत कर सकते हैं। फिर से, मुझे अपनी पसंद की भाषा में एक मिलेगा। रिफैक्टरिंग (ओओपी स्टाइल) पर एक किताब पढ़ने से मुझे ओओपी के आवेदन में मदद मिली। मैंने एक मौजूदा प्रोजेक्ट लिया (आवश्यकताओं को इकट्ठा करने से कोई विचलित नहीं) और इसे सुधारने के नए तरीके ढूंढे। यह केवल OOP के लिए OOP नहीं था। फिर आप सीख सकते हैं कि एक नई परियोजना पर शुरू से अंत तक इसे कैसे किया जाए। यहाँ तर्क है आप हमेशा इसे शुरू से ही सही नहीं करेंगे। यदि आप पहचान सकते हैं कि यह कहां तक उचित है, तो आप बेहतर बंद हो जाएंगे। ज्यादातर चीजों की तरह यह हर समस्या को हल नहीं करेगा।
कुछ भाषाओं के साथ निश्चित सीमाएँ हैं। यदि आपका लक्ष्य मल्टीपर्ट इनहेरिटेंस का मास्टर होना है, तो .NET बाहर है।
मैं यहां पारंपरिक सोच के खिलाफ जाऊंगा और सुझाव दूंगा कि OOP का उपयोग करने के लिए सबसे आसान भाषाएं इसे सीखने के लिए सबसे अच्छी भाषा नहीं हैं । मुझे पहली बार COP के साथ OOP से अवगत कराया गया था, लेकिन पर्ल के साथ OOP पर लैरी वॉल के कैमल पुस्तक अध्याय को पढ़ने तक मुझे यह नहीं मिला। किसी कारण से मुझे कक्षाओं और वस्तुओं के बीच अंतर को समझने में परेशानी हुई जब तक कि किसी कक्षा में किसी वस्तु को स्पष्ट रूप से आशीर्वाद देने के लिए नहीं । मैं वास्तव में OOP के अंतर्निहित कार्यान्वयन को तब तक नहीं समझ पाया, जब तक कि इसे Gbject के साथ C में नहीं कर दिया गया, जहाँ इनमें से कोई भी विवरण आपसे छिपा नहीं है। मैं कॉरपोरेट वर्ग की भाषा-अज्ञेय तक ले जाने के लिए वास्तव में सर्वोत्तम प्रथाओं को नहीं समझ पाया। यह एक बहुत बड़ा विषय है,।