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