क्या यह कंप्यूटर भाषाओं के पॉलीग्लॉट होने के लायक है? [बन्द है]


14

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

और यहाँ पर स्वयं प्रश्न है: क्या प्रोग्रामिंग भाषाओं का बहुविकल्पी होना वास्तव में आपकी मदद करेगा (और मुझे सामान्य रूप से मतलब नहीं है "प्रोग्रामर को कम से कम सभी प्रतिमानों को जानना चाहिए", मेरा मतलब है कि सभी भाषाएं जो आप आमतौर पर सुनते हैं)? क्या किसी के पास समान अनुभव है? क्या यह नौकरी / कौशल / करियर में मदद करता है? आप कितनी बार उन कौशल को लागू करने में सक्षम हैं?


3
मुझे लगता है कि जब लोग दूसरों को नई भाषाओं के बारे में जानने का सुझाव देते हैं तो यह भाषा सीखने के बारे में कम और नए प्रतिमान सीखने के बारे में अधिक होता है। मेरी दो मुख्य भाषाएं पायथन और सी ++ हैं, हास्केल सीखना मेरे लिए एक महान अनुभव रहा है, क्योंकि यह मुझे एक अलग तरीके से सोचने के लिए मजबूर करता है, अन्यथा मैं।
विटर पाय जूल

4
सभी प्रमुख प्रतिमानों को जानने से वास्तव में बहुत मदद मिलती है । यदि आप अपनी खुद की भाषाओं को डिज़ाइन कर रहे हैं (और जैसे ही आप भाषा-उन्मुख प्रोग्रामिंग प्रतिमान में आते हैं, तो आप ऐसा करने की संभावना रखते हैं)
लॉजिक

4
"एक भाषा जो आपके प्रोग्रामिंग के बारे में सोचने के तरीके को प्रभावित नहीं करती है, वह जानने लायक नहीं है।" (एलन पर्लिस)। तथास्तु।

2
@ जोब, 10 प्रोग्रामिंग भाषाओं को जानने के लिए एक एकल बोली जाने वाली भाषा की मूल बातें सीखने के लिए आवश्यक प्रयास का केवल एक छोटा सा हिस्सा लगता है।
लॉजिक

2
@ SK- तर्क निर्भर करता है। मुझे यकीन है कि मैं 6 साल के बच्चे को स्पेनिश बोलना सिखा सकता हूं फिर मैं उसे अजगर सिखा सकता हूं।
रेयानोस

जवाबों:


10

"प्रोग्रामर को कम से कम सभी प्रतिमानों को जानना चाहिए"

यह सहायता करता है

मेरा आशय वास्तव में उन सभी भाषाओं से है जिनके बारे में आप आमतौर पर सुनते हैं

यह मदद नहीं करता है। हालांकि एक बार जब आप सभी प्रतिमानों को जानते हैं तो आप एक सप्ताह में एक भाषा सीख सकते हैं।

यह एक सप्ताह बिताने के लिए कि भाषा सीखने जब आप बस अधिक इष्टतम है की जरूरत है उस भाषा।

एक अच्छा प्रोग्रामर एक आलसी प्रोग्रामर होता है

पक्षीय लेख:

सामान्य / लोकप्रिय भाषा सीखना "सभी प्रतिमानों" को सीखने के लिए उतना उपयोगी नहीं है। पूर्व बाद वाले को कवर नहीं करता है। उदाहरण के लिए लर्निंग स्व-प्रोटोटाइप ओओ को समझने के लिए अविश्वसनीय रूप से उपयोगी है। यह एक आम और न ही एक लोकप्रिय भाषा नहीं है, लेकिन यह तब और अधिक उपयोगी है जब आप पहले से ही रूबी जानते हैं।

भाषा डिजाइन:

यदि आपका लेखन / डिजाइन एक नई भाषा है तो अधिकांश भाषाओं को जानना उपयोगी है। तो इसके लिए एक ठोस उपयोग-मामला है, लेकिन यह बहुत आला है।

मैं आपको इसके बजाय क्या करने की सलाह देता हूं:

कम से कम 3 बार कोड पूरा पढ़ें

"लोकप्रिय क्या है" के आधार पर भाषाएं बाएं और दाएं आती हैं। प्रौद्योगिकी वक्र क्या है, इसके आधार पर महीनों या वर्षों के बाद प्रौद्योगिकी पदावनत हो जाती है। (वेब हर 6 महीने की दर से प्रौद्योगिकी को चित्रित करता है)।

प्रोग्रामिंग तकनीक और कंप्यूटर विज्ञान सिद्धांत हमेशा एक ही रहता है।


लेकिन भाषाओं में कई दिलचस्प मामूली विशेषताएं हैं और यहां तक ​​कि पहले से ही ज्ञात प्रतिमान से नई भाषा सीखना आपके दिमाग को उड़ा सकता है (उदाहरण के लिए मेरे लिए यह स्मॉलटाक था)
एंटोन बार्कोवस्की

@AntoBarkowski यह एक गलत कथन है, स्मॉलटॉक की अन्य OO भाषाओं से तुलना न करें। जावा / सी ++ / सी # / आदि। वास्तविक OO भाषाएँ नहीं हैं बेशक SmallTalk सीखने लायक है, लेकिन यह एक ही प्रतिमान नहीं है;)
रेयानोस

6
लोग कहते हैं कि "आप एक सप्ताह में एक भाषा सीख सकते हैं," लेकिन यह सिर्फ सच नहीं है। ज़रूर, आप उस भाषा में वाक्यविन्यास सही कोड लिखने में सक्षम होंगे, लेकिन इसके अलावा भी बहुत कुछ है। उदाहरण के लिए, C # और Java बहुत समान रूप से समान हैं और दोनों OO भाषाएँ हैं। हालाँकि जावा कोड को C # में लिखना आपको C # प्रोग्रामर नहीं बनाता है।
R0MANARMY

3
@ R0MANARMY "<अच्छे प्रोग्रामर> एक सप्ताह में एक भाषा सीख सकते हैं"। किसी भाषा में लाइब्रेरी, फ्रेमवर्क और एपीआई शामिल नहीं होते हैं। अच्छे प्रोग्रामर की मेरी परिभाषा हालांकि बहुत अधिक हो सकती है ।
रेयानोस जूल

1
@ R0MANARMY, आपके द्वारा बताए गए उस छोटे, महत्वहीन शब्दार्थ के बिट्स को समझने में एक घंटे से अधिक समय लग सकता है?
लॉजिक

4

यह जानने के बारे में नहीं है कि भाषाओं की एक भीड़ में कैसे कोड किया जाए, यह है, जैसा कि आप कहते हैं, प्रतिमानों के बारे में। बेहतर के बारे में आप जितना अधिक विकल्प जानते हैं। कई भाषाओं को जानने से निश्चित रूप से मदद मिलती है, लेकिन यदि आप एक ही तरह की भाषा सीखते हैं तो आप जल्दी से एक मृत अंत को मार देंगे।

कुंजी यह जान रही है कि आपकी परियोजना के एक हिस्से को लागू करने के लिए कौन सी भाषा / प्रणाली सबसे अच्छी है। यहां तक ​​कि अगर आपने एक मुख्य भाषा पर फैसला किया है (जैसा कि अधिकांश परियोजना करते हैं), तो आपके पास अभी भी सभी प्रकार के उपकरण, स्क्रिप्ट, स्वचालन और निर्माण सहायता होगी जो लिखना होगा। आमतौर पर विभिन्न प्रकार की अन्य भाषाएं या उपकरण, आपकी मुख्य भाषा से बेहतर होते हैं।

बस स्पष्ट करने के लिए, मुझे उन सभी भाषाओं की कोशिश करने और सीखने के लिए मूर्खतापूर्ण लगता है जिनके बारे में आप वास्तव में सुनते हैं: इनमें से सैकड़ों हैं और अक्सर वे अन्य भाषाओं पर बस मामूली बदलाव होते हैं।


3

IMHO, यह नहीं है। सबसे पहले क्योंकि आप एक वर्ष से कम समय में भाषा नहीं सीख सकते हैं। इसमें कोड लिखने में सक्षम होने में 2 दिन लगते हैं, लेकिन धाराप्रवाह लिखने के लिए बहुत अच्छा अनुभव होता है, और दिए गए भाषा के लिए अच्छी तरह से गठित कोड। जीसी क्यों काम करता है जैसे यह करता है, जहां मेमोरी आवंटित करने के लिए, जो निर्माण तेजी से होते हैं, कैसे सही ढंग से कंसट्रेटिंग स्ट्रिंग्स, भाषा के खतरनाक कोनों आदि।

मैं भयानक जावा / .NET कोड को C ++ डेवलपर लिखता हूं, क्योंकि बहुत सारे जावा डेवलपर भयानक C ++ कोड लिखते हैं।

अन्य भाषाओं को सीखने के बारे में सबसे अच्छी बात यह है कि आप नए प्रतिमान सीखते हैं, और शायद कुछ ठोस समस्या के लिए बेहतर उपकरण हो। कहते हैं - आपको बहुत जल्दी, नॉनपब्लिस जीयूआई ऐप की आवश्यकता है। .NET वहाँ अपूरणीय है।

लेकिन एक भाषा सीखना ताकि आप .NET में स्ट्रक्चर्स का उपयोग न करें, या C ++ में प्रत्येक ऑब्जेक्ट को लीक न करें, बहुत समय लगता है। मुझे लगता है कि डिजाइन सिद्धांतों, प्लेटफार्मों और अपनी पसंद की भाषा सीखने पर इसे खर्च करना बेहतर है।

लेकिन यह केवल मेरी राय है।


2
"क्योंकि आप एक वर्ष से कम समय में एक भाषा नहीं सीख सकते हैं" गलत। लोकप्रिय रूपरेखाओं को सीखने के साथ एक भाषा सीखने को भ्रमित न करें। अंत में सूची में "सामान्य प्रोग्रामिंग तकनीक" भी जोड़ें।
Raynos

@ रेयानोस: मुझे लगा कि वह किस बात का जिक्र कर रहा था।
स्टीवन ज्यूरिस

1
एक नई भाषा के साथ खेलने का मेरा पसंदीदा तरीका इसके अच्छे सबसेट के लिए कंपाइलर को लागू करना है। कुल मिलाकर भाषा को समझने में और इसमें से सर्वश्रेष्ठ विशेषताओं को पहचानने और चोरी करने में 2-4 घंटे लगते हैं। लगभग एक साल नहीं, एक दिन भी नहीं।
तर्क

1
ठीक है, अगर आप बड़े सी ++ प्रोजेक्ट में शामिल हो रहे थे, और "मैं 10 साल से जावा में प्रोग्रामिंग कर रहा हूं, जैसे शब्दों के साथ एक साक्षात्कार में आया था, लेकिन मैंने सी ++ पर पिछले 6 महीने बिताए हैं, इसलिए मुझे भाषा पता है"। मुझे संदेह है कि आपको उस नौकरी के लिए उच्च वेतन प्राप्त वरिष्ठ देव पद प्राप्त होगा। तो, नहीं, मुझे अभी भी लगता है कि आप एक महीने में एक भाषा नहीं सीख सकते।
कोडर

2
@ कोडर, यदि आप एक बड़े सी ++ प्रोजेक्ट में शामिल हो रहे थे, और "मैं 10 साल से 20 भाषाओं में प्रोग्रामिंग कर रहा हूं, जैसे सी ++" जैसे शब्दों के साथ एक साक्षात्कार में आया था, तो आपको शायद नौकरी मिल जाएगी।
एसके-लॉजिक

2

उन्हें जानना व्यावहारिक नहीं है, लेकिन उनके बारे में जानना बहुत उपयोगी हो सकता है। मेरे कहने का मतलब यह है कि जब आप एक नई समस्या प्राप्त करते हैं, तो आप कह सकते हैं, "मुझे अस्पष्ट रूप से याद है [दूसरी भाषा] इस तरह की समस्याओं को हल करने का एक बेहतर तरीका था। मुझे यह देखना चाहिए।"


मुझे लगता है कि एसई रेडियो जैसे पॉडकास्ट अच्छे हैं। वे अक्सर काम पर आने के लिए सुनने के लिए सही लंबाई के बारे में होते हैं और आप इस तरह से बहुत कुछ सीख सकते हैं। लेकिन इसका रूप क्यों है <एक्स> दिलचस्प।
ज़ाचरी के

1

आप अपने कैरियर को डोमेन ज्ञान के निर्माण में मदद करेंगे और फिर बहुत सारी प्रोग्रामिंग भाषाएं सीखेंगे। यह उल्लेख करने के लिए कि आपको अतिरिक्त टूल सीखने की आवश्यकता नहीं है, जैसे कि अपनी भाषा में एक प्रोइलर का उपयोग कैसे करें, उसी के लिए डिबगर, सर्वश्रेष्ठ GUI फ्रेमवर्क और इसके साथ कैसे जल्दी से प्रोग्राम करें, ट्रेडऑफ़्स के साथ सामान्य 3 पार्टी लाइब्रेरी क्या मौजूद हैं और भाषा विशिष्ट मुहावरे।

यह भी समझदारी से एक ही काम करने के कई तरीकों के बजाय और चीजें करना सीखता है।


1

मैंने कई प्रणालियों पर काम किया है, जहां घटक कई भाषाओं में लिखे गए थे (सबसे खराब अपराधी को मुझे Ada 83, C, Fortran 77, SQL, और DCL में लिखे गए कोड को वितरित करने की आवश्यकता थी, जबकि मेरी अंतिम नौकरी के लिए मुझे C ++ और जावा कोड देने की आवश्यकता थी। )। तो, हाँ, वास्तविक दुनिया के मामले हैं जहाँ आपको कई भाषाओं को अच्छी तरह से जानना होगा ताकि उनमें उत्पादक हो (उत्पादक और कुशल हो; आप C ++ और जावा में एक गहन विशेषज्ञ बनने जा रहे हैं और ... जब तक आप 'फिर से एक सनकी)।

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


1

मुझे लगता है कि आपको कुछ अलग-अलग भाषाओं को सीखना बेहतर होगा और फिर हर संभव भाषा सीखने की आवश्यकता को अपनाने से पहले कम से कम गहराई में होना चाहिए। एक बार जब आपके पास न्यूनतम राशि होती है, तो डेवलपर के रूप में आपकी प्रगति के लिए गहराई महत्वपूर्ण हो जाती है। मैंने किसी को एक या दो भाषाओं में गहराई से देखा होगा और एक युगल को दूसरों की तुलना में किसी को हर चीज की तस्करी करते देखा होगा। गहराई हासिल करना एक और प्रतिमान सीखने जैसा है, यह बदलेगा कि आप प्रोग्रामिंग के बारे में कैसे सोचते हैं और यह वास्तव में जटिल रोमांचक परियोजनाओं के लिए दरवाजे खोल देगा।


0

यह कई भाषाओं को बोलना सीखना जैसा है। उन सभी को उपयोगी होने के बिंदु तक सीखना असंभव के करीब है। उन लोगों से चिपके रहें जिनकी आप उपयोग करने की संभावना रखते हैं और आप बेहतर बंद होंगे। आप C ++, C #, और Java को अच्छी तरह से सीख सकते हैं, लेकिन एक ही समय में एक पेशेवर स्तर पर पर्ल, पायथन, VB (VB.NET), रूबी, और जावास्क्रिप्ट को निचोड़ने की कोशिश करना केवल गूंगा है। अपने कौशल को एक साथ रखने के लिए दिन में पर्याप्त घंटे नहीं हैं।

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