ओओपी अवधारणाओं / सिद्धांतों को व्यावहारिक रूप से सीखने के लिए सबसे अच्छा कैसे? [बन्द है]


12

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


1
आप पहले से कौन सी भाषाएं जानते हैं?
Mchl

C, VB.NET और C ++ लेकिन OOP भाग नहीं
Caffeinatedwolf

1
VB.NET को फिर से चुनें
विनोथ कुमार CM

नहीं, मुझे नहीं चाहिए VB.NET मैं चाहता हूं कि आप लोग मुझे जावा, C ++, पायथन आदि के बीच चयन करने में मदद करें ...
Caffeinatedwolf

3
आप व्यावहारिक रूप से बिना किसी उद्देश्य के कुछ सीखना चाहते हैं?
जेफ़ो

जवाबों:


13

कुछ और सुझाव:

  • ओओपी बार पर मैंने जो सबसे अच्छी किताब पढ़ी है वह कोई नहीं है बर्ट्रेंड मेयर्स ऑब्जेक्ट ओरिएंटेड सॉफ्टवेयर कंस्ट्रक्शन । यह एक 'आसान' नहीं है जिसमें आपको स्थानों में कठिन सोचने की आवश्यकता होगी। लेकिन यह सबसे अच्छा काम करता है जिसे मैंने ओओ सिद्धांतों को समझाते हुए देखा है।

  • भाषाओं के लिए: मैं C ++ से दूर रहूँगा। सीखने के उद्देश्यों के लिए बहुत बड़ा है। यदि आप एक ऐसी भाषा चाहते हैं जो आपको OO को समझने में मदद करे (जैसा कि किसी के विरोध में आप मुख्यधारा की ऐप्स लिखेंगे / प्रयोग करके नौकरी पा सकते हैं) तो स्मालटाक को देखें। या एफिल (ऊपर मेयर की पुस्तक में भाषा)।

  • यदि आप ऐसी भाषा चाहते हैं जो थोड़ी अधिक मुख्यधारा की हो लेकिन फिर भी ईमानदारी से OO सिद्धांतों का समर्थन करती है तो पायथन एक अच्छी शर्त है। यदि आप स्थैतिक टाइपिंग चाहते हैं तो जावा और सी # भी सभ्य हैं।

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

hth।


1
C ++ में अन्य चीजें महत्वपूर्ण हैं । यह महत्वपूर्ण आभासी विरासत के बारे में पता करने के लिए। यह महत्वपूर्ण मजबूत संकलन समय सामान्य समर्थन के बारे में पता है, और यह है महत्वपूर्ण संदर्भ बनाम मूल्य के बारे में पता करने के लिए। जावा की तरह कुछ के लिए जा रहा है "ला ला ला मैं नहीं कर सकता, क्योंकि आप इसे केवल करना चाहते हैं"।
डेडएमजी

2
हां और ना। ओपी का सवाल सीखने के बारे में था जो पहले मूल बातें बताता है। मुझे यकीन नहीं है कि C ++ दावेदारों में सबसे उपयुक्त शिक्षण भाषा है। उस ने कहा: Meyer जेनेरिक और मूल्य बनाम संदर्भ को कवर करता है, यद्यपि अधिक उन्नत विषयों के रूप में। वह पुस्तक के उत्तरार्ध में सह और गर्भ-विच्छेद में भी शामिल हो जाता है। लेकिन वह पहले मूल बातें निर्धारित करता है। (और एफिल स्टेटिक टाइप btw है)।
sfinnie

1
मैं एफिल की सिफारिश से सहमत या असहमत नहीं हूं, क्योंकि मैंने कभी इसके बारे में कुछ भी इस्तेमाल या देखा या पढ़ा नहीं है। हालाँकि, मैं बिल्कुल जावा और सी # के लिए किसी भी सिफारिश से असहमत हूँ, जैसा कि मैंने कहा।
डेडएमजी

12

आप OOPS को आज़माने के लिए ऑब्जेक्ट ओरिएंटेड भाषाओं में से कोई भी सीख सकते हैं जैसे C ++, Java, C # आदि।

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

ग्रैडी बोच द्वारा एप्लीकेशन (2 डी संस्करण) के साथ ऑब्जेक्ट-ओरिएंटेड एनालिसिस एंड डिज़ाइन के आसपास अच्छी किताबें हैं

इसके अलावा, आप इस जो मैंने पाया की तरह ब्लॉग बाहर की कोशिश कर सकते सरल हूँ- शुरू करने के लिए पर्याप्त है fascinatingoops.com


3

आप OOP सीखना चाहते हैं? एक उत्तर - स्मालटाक।

यह एक सुंदर भाषा है और कोर के लिए OO है। आप शुरुआत से ही OOP सीखेंगे और अन्य भाषाओं को शामिल करने के लिए अन्य सभी विकर्षणों से बाधित नहीं होंगे।

छोटेलाल जीतता है। और कुछ अच्छी मुफ्त ई-पुस्तकें भी उपलब्ध हैं (देखें: स्टीफन डुकासे )


3

आपको C ++ सीखना होगा, या शायद स्मॉलटाक जैसे पूर्वजों में से एक। C ++ ऑब्जेक्ट ओरिएंटेशन, मेमोरी मैनेजमेंट और रेफरेंस बनाम वैल्यू जैसी अवधारणाओं के बीच एक अलग से सफाई प्रदान करता है, और इसमें मजबूत जेनेरिक सपोर्ट है।

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


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

1

OOP अवधारणाओं को सीखने का सबसे अच्छा तरीका अधिक से अधिक कोड लिखना और अक्सर इसकी समीक्षा करना है। एक अच्छे प्रोग्रामर का अभ्यास करें।

वास्तविक विश्व परिदृश्यों के बारे में सोचें, एक समस्या कथन को परिभाषित करें - इसे कोड में हल करें और इसकी समीक्षा करें। आप हमेशा समीक्षाओं के लिए /codereview// से मदद ले सकते हैं :)

हैप्पी कोडिंग !!!


0

कदम

  1. जानें उनका क्या मतलब है।
  2. उन्हें लागू करना सीखें।
  3. विकसित करने के लिए एक परियोजना लें, अपनी भाषा चुनें [जिसमें OOPS सिद्धांत एकीकृत होना चाहिए जैसे VB.NET या C # या C ++ या लावा इत्यादि]
  4. इस बारे में सोचें कि आप OOPS द्वारा प्रोजेक्ट लॉजिक को कैसे सरल बना सकते हैं । [नोट: केवल OOPS को लागू न करें क्योंकि आप उन्हें चाहते थे, उन्हें आपका उद्देश्य हल करना चाहिए]
  5. मत भूलो: आप अपनी गलतियों से भी सीखेंगे

0

OO दुनिया में मेरा पहला संपर्क C ++ था, जो कि एक बुरी शुरुआत नहीं थी। लेकिन पायथन सीखने के दौरान मैंने बहुत सुधार किया। अंतर भाषाओं से आता है: विचारों को आज़माना ('मैं ओओ फैशन में इस समस्या को कैसे हल कर सकता हूं?') सी ++ में लिखने के लिए अधिक कोड की आवश्यकता है और इसमें पायथन में एक ही विचार को आज़माने की तुलना में बहुत अधिक नुकसान शामिल हैं। इसलिए मैं अजगर की सलाह दूंगा।


0

मुझे नहीं लगता कि OOP सीखने की कोशिश करते समय आपको किसी अन्य भाषा में देखना चाहिए। मेरे लिए, सिद्धांत को समझना और फिर इसे लागू करना सीखना आसान है अगर मैं किसी ऐसी चीज से संबंधित हो सकता हूं जिसे मैं पहले से जानता हूं। एक नए सिंटैक्स का पता लगाना अभी रास्ते में आता है।

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

कुछ भाषाओं के साथ निश्चित सीमाएँ हैं। यदि आपका लक्ष्य मल्टीपर्ट इनहेरिटेंस का मास्टर होना है, तो .NET बाहर है।


0

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

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