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