मैं बोली से शुरू करूँगा:
"यदि आपके पास एकमात्र उपकरण एक हथौड़ा है, तो आप एक नाखून की तरह सब कुछ मानते हैं"। (अब्राहम मेस्लो)
सबसे महत्वपूर्ण सिद्धांत, आईएमओ, कई अलग-अलग प्रोग्रामिंग प्रतिमानों, भाषाओं को जानना है और अपने निपटान के साधनों के बारे में खुद को अच्छी तरह से सूचित करना है। किसी भी समस्या को आपके द्वारा चुनी गई लगभग किसी भी भाषा में हल किया जा सकता है, इसकी विशाल डिफ़ॉल्ट लाइब्रेरी या ऑटोहॉटके जैसी छोटी विशेष भाषा के साथ पूर्ण विकसित मुख्यधारा की भाषा हो। प्रोग्रामर का पहला काम यह निर्धारित करना है कि समस्या के विनिर्देश के अनुसार क्या उपयोग किया जाए। कुछ अवधारणाएं विषय के लिए बेहतर दृष्टिकोण प्रदान करती हैं, जो भी आपका मुख्य लक्ष्य हो सकता है - परिष्कार, आपत्ति, प्रदर्शन, पोर्टेबिलिटी, मुख्यता, छोटे कोड आकार ...
अन्यथा आप कुछ प्रोग्रामर की तरह समाप्त हो जाएंगे जो विशेष रूप से एक 1 भाषा में कुछ करने की कोशिश करते हैं, जबकि समस्या अलग प्रोग्रामिंग संदर्भ में हल करने के लिए तुच्छ हो सकती है।
यह सलाह बहु-भाषा परियोजनाओं के लिए आज की प्रवृत्ति के साथ चलती है (उदाहरण के लिए वेब एप्लिकेशन लें, जिसमें एकल अनुप्रयोग में कई भाषाएं शामिल हो सकती हैं, जैसे C #, JS, CSS, XPath, SQL, XML, HMTL, RegExp .... और यहां तक कि विभिन्न प्रोग्रामिंग प्रतिमान (उदाहरण के लिए, C # ने हाल ही में कार्यात्मक प्रोग्रामिंग प्रतिमान, लैम्ब्डा से कुछ अवधारणाएं पेश की)।
तो, मूल बात निरंतर सीखने की है, हमेशा के लिए :)