एक प्रोग्रामर को प्रोग्रामर के रूप में कितनी प्रोग्रामिंग लैंग्वेज की उम्मीद होती है? [बन्द है]


21

क्या अधिकांश प्रोग्रामर एक ही स्टैक पर विशेषज्ञ होते हैं, अन्य चीजों को छोड़ देते हैं, या वे एक ही समय में कई भाषाओं में विशेषज्ञ होते हैं? यदि यह एक से अधिक है, तो मानक कितने हैं?

विशेषज्ञ के अनुसार, मेरा मतलब किसी भाषा के वाक्य-विन्यास को जानने से ज्यादा है - एक विशेषज्ञ मानक पुस्तकालयों, औजारों, वातावरण और वाक्य-विन्यास को पर्याप्त रूप से जानता है, जो बिना किसी चीज़ को देखे या किताबों / ट्यूटोरियल को पढ़े बिना गैर-तुच्छ कार्यक्रमों को लिखने में सक्षम हो।


2
मुझे नहीं लगता कि इस प्रश्न का कोई उद्देश्य (या व्यक्तिपरक) भी है। जितना अधिक आप एक विशेषज्ञ हैं, उतना ही आपके लिए बेहतर है - आपके पास व्यापक दृष्टिकोण। क्या आपका मतलब था "एक प्रोग्रामर को कितनी प्रोग्रामिंग भाषा में आदर्श रूप से एक विशेषज्ञ होना चाहिए?"
तायोनोक्स

6
मैं आपकी विशेषज्ञ की परिभाषा से असहमत हूं। मेरे लिए, आपको पुस्तकालय के कार्यों को देखना है या नहीं, यह उस भाषा में मुहावरेदार कोड लिख सकते हैं या नहीं, इसकी तुलना में कहीं कम महत्वपूर्ण है। यदि आप किसी भाषा में सोच सकते हैं, तो आप कम से कम विशेषज्ञ होने के करीब हैं।
चिन्मय कांची

1
आप किसी भाषा में कैसे सोचते हैं, अगर आपको अपने अधिकांश शब्दों को एक शब्दकोश में देखना है, तो यह जानने के लिए कि उनका क्या मतलब है?
ब्लूबेरी 5

1
@blueberryfields: किसी भाषा में प्रवाह केवल शब्दावली की तुलना में अधिक है और मूल बातें से परे, शब्दावली इसका एक छोटा सा हिस्सा है। यदि आप उस ज्ञान के साथ कुछ बुद्धिमान नहीं कर सकते हैं तो यह जानना अच्छा नहीं है कि कोई फ़ंक्शन मौजूद है। यह सिर्फ यह देखने के लिए कि इसके साथ कुछ बुद्धिमान कैसे करना है की तुलना में फ़ंक्शन देखने के लिए बहुत आसान है। मैं कहूंगा कि डॉक्स को अच्छी तरह से जानना बहुत जल्दी से जानना होगा कि किसी दिए गए फ़ंक्शन को देखना है अगर यह मौजूद है तो यह पर्याप्त पुस्तकालय ज्ञान है। उसके बाद, आप ठीक वही याद रखेंगे जिसका उपयोग आप करते हैं और अस्पष्ट रूप से याद करते हैं जो आप नहीं करते हैं।
aaronasterling

2
@blueberryfields: भाषा / मंच के आधार पर , थोड़ा ज्ञान एक खतरनाक चीज हो सकती है । मेरा क्या मतलब है: अगर कोई व्यक्ति दिल से कई पुस्तकालय कार्यों को जानने का दावा करता है और दस्तावेज को पढ़ने की आवश्यकता नहीं है, तो मैं उम्मीद करूंगा कि वह व्यक्ति सभी रिटर्न मान, अपवाद की स्थिति और नुकसान / कैविटीज, ला ला रेमंड चेन को भी जान सके। दिल से, और एक पुस्तक लिखने और Microsoft / Google आदि को व्याख्यान देने में सक्षम होना चाहिए। इसमें से कुछ, व्यक्ति कई अजीब गलतियाँ करता है।
rwong 8

जवाबों:


33

कई भाषाओं को जानने का मुख्य लाभ उन्हें सीधे लिखने में नहीं है। अन्य सभी चीजें समान हैं, मैं एक C # प्रोग्रामर के साथ काम करूंगा जो C, Python और Lisp (उदाहरण के लिए) जानता है, जो केवल C # में हैक किया गया है। ऐसा नहीं है कि अधिक भाषाओं को जानना बेहतर है, यह है कि कई स्तरों पर और कई दृष्टिकोणों से समस्याओं के बारे में सोचने में सक्षम होना वास्तव में सहायक है।

एक प्रोग्रामिंग भाषा जो प्रोग्रामिंग के बारे में आपके सोचने के तरीके को नहीं बदलती है, वह जानने लायक नहीं है। -अलन पर्लिस

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

अधिक प्रत्यक्ष उत्तर "यह निर्भर करता है" है।

ऐसी बड़ी कंपनियों में जिनकी आपको अपेक्षा की जाती है / विशेषज्ञ करने की अनुमति है, लेकिन जैसा कि मैंने ऊपर कहा था, मेरा मानना ​​है कि आपके एक पसंदीदा उपकरण से परे चीजों को समझने में अभी भी लाभ है।

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


3
हाँ, यह मेरे क्षितिज को व्यापक बनाता है
maz3tt

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

14

आपके पास एक बहुत ही दिलचस्प सवाल है:

मुझे नहीं लगता कि किसी भी प्रोग्रामर को एक विशिष्ट भाषा पर "विशेषज्ञ" होना चाहिए। मेरा मानना ​​है कि प्रोग्रामर के रूप में हम प्रोग्रामिंग के विशेषज्ञ होने के लिए हैं, एल्गोरिदम को डिजाइन करते हैं, स्पष्ट चरणों में सोचते हैं, लेकिन एक प्रोग्रामिंग भाषा ऐसी चीज है जिसे आप अभी सीखते हैं।

एक "अच्छा" प्रोग्रामर, अच्छे से मेरा मतलब है कि मैंने "इससे पहले कभी भी उसके साथ काम नहीं किया है" के पीछे विकास परियोजनाओं को संभालता है, जो कि कम से कम 5 दिनों में एक भाषा सीखना चाहिए। आप मुख्य रूप से 2 तरीकों, 1: पढ़ने और 2: काम करने से सर्वोत्तम प्रथाओं, औजारों और पुस्तकालयों को सीखते हैं। या तो आप कोड के खिलाफ अपना सिर उछालते हैं या पुस्तकों का एक गुच्छा पढ़ते हैं।

कुछ वर्षों में "अच्छे प्रोग्रामर सिर्फ कोड लिखते हैं" नहीं सी # कोड या सी ++ कोड या जावा कोड का अनुसरण करते हुए, आप महसूस करेंगे कि कार्यक्रमों को विकसित करने के लिए सीखने के बाद, भाषा और टेक्नोलोजी महत्वपूर्ण नहीं हैं। निश्चित रूप से, आप जानेंगे कि PHP की तुलना में C # बेहतर तरीके से घूमना है, लेकिन यदि आपने अच्छी तरह से सीखा है, तो आप पाएंगे कि यदि आपके पास है तो आप पायथन के माध्यम से जा सकते हैं।

आशा है कि आप मेरे विचारों को पसंद करेंगे!


+1 "अच्छे प्रोग्रामर सिर्फ कोड लिखते हैं ... भाषा और टेक्नोलॉजिस्ट इतने महत्वपूर्ण नहीं हैं" - बहुत सही है, हालांकि उस निष्कर्ष पर पहुंचने के लिए यह बहुत अच्छा लगता है।
परिक्रमा

Thks, और आपने इसे सही पाया: 11 साल और गिनती ... :)
डेविड कॉनडे

3

एक, लेकिन इसका मतलब यह नहीं है कि आप दूसरों की उपेक्षा कर सकते हैं। आपको यह जानने के लिए पर्याप्त होना चाहिए कि आप उनका उपयोग क्यों नहीं कर रहे हैं या अपनी सीमाओं को नहीं जानते हैं, इसलिए आप उचित होने पर मदद मांग सकते हैं।


3

मुझे लगता है कि यह संभवतः आपके व्यक्तित्व पर निर्भर करता है, ऐसे लोग हैं जो किसी विषय के नुक्कड़ और सारस में खुदाई करने में रहस्योद्घाटन करते हैं, और कुछ अन्य लोग हैं जो चीजों का व्यापक दृष्टिकोण प्राप्त करना पसंद करते हैं। आपको शायद यह पता लगाने की आवश्यकता होगी कि आप किस प्रकार के व्यक्तित्व हैं। मैं एक के ऊपर एक नहीं डाल रहा हूँ प्रत्येक के उपयोग हैं।

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



2

एक

आपके सामने वाला।


1
+1 जिस भाषा में आपको विशेषज्ञ होने की आवश्यकता है, वह न्यूनतम संख्या है जिसका आपको उपयोग करना है। ;-)
परिक्रमा

1

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


1

जैसा कि कोई भी संभावना नहीं है कि कुछ प्रोग्रामर हैं जो किसी भी भाषा के विशेषज्ञ नहीं होंगे, लेकिन वे उन विविध वातावरण का आनंद लेते हैं और परिस्थितियों के आधार पर विभिन्न भाषाओं का उपयोग करेंगे क्योंकि कुछ को सर्वर, पीएचपी, एएसपी.नेट जैसी कुछ तकनीकों का पता चल सकता है। .Net या VB.Net, या जावा, क्लाइंट साइड स्क्रिप्टिंग भाषाओं जैसे कि जावास्क्रिप्ट या फ्लैश की एक जोड़ी है, और यह बिना वेब के सामान को रखने के लिए उपयोग किए जाने वाले किसी भी हार्डवेयर में नहीं है।

इसी समय, कुछ प्रोग्रामर हो सकते हैं जो एक दर्जन भाषाओं या उससे अधिक के विशेषज्ञ हैं, जो कि वे ज्यादातर समय का अध्ययन करते हैं, जबकि अधिकांश समय प्रत्येक भाषा के भीतर इतना अधिक रखने के लिए।


1

एक, लेकिन गैर-तुच्छ वास्तविक दुनिया के कार्यक्रमों को पढ़ने में सक्षम होना चाहिए जो समय-समय पर कुछ अन्य भाषाओं में लिखे गए हैं। किसी तरह से, जिसमें प्रोग्रामर एक विशेषज्ञ है, उनकी मातृभाषा की तरह है, वे इसमें सोचते हैं, लेकिन अन्य भाषाओं को सीखना और बोलना बहुत अच्छा है, इससे पता चलता है कि प्रोग्रामर सोच के अन्य तरीकों की सराहना कर सकता है। अगर वे अपनी मातृभाषा के रूप में धाराप्रवाह के रूप में एक से अधिक भाषाओं में सोच सकते हैं, तो यह बहुत बढ़िया है।


1

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

strcat (ए, "नमस्ते"); strcat (A, "WOrld"); strcat (A, "I say hi!");

ऐसा इसलिए है क्योंकि पास्कल पहले स्थान पर स्ट्रिंग की लंबाई बचाता है और इसलिए अंतिम स्थान पर कूदना आसान है। C में स्ट्रिंग टर्मिनेशन '\ 0' है और इसलिए आपको स्ट्रैच ऑपरेशन के लिए वास्तव में पूरे स्ट्रिंग को ट्रेस करना होगा।


0

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

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