किसी भाषा के साथ डेवलपर के वर्षों के अनुभव में क्या अंतर है? [बन्द है]


9

जैसा कि शीर्षक से कहा गया है, डेवलपर्स के संदर्भ में दी गई भाषा में अनुभव के वर्षों में क्या अंतर है? उदाहरण के लिए, यदि एक डेवलपर को भाषा A के साथ काम करते हुए पांच साल हो गए हैं और दूसरे डेवलपर को भाषा B के साथ काम करते हुए दो साल हो गए हैं और उसके बाद भाषा A के साथ काम करते हुए तीन साल हो गए हैं, तो क्या उनके बीच कोई अंतर होगा?

जवाबों:


26

"निर्भर करता है"

अनुभव <> ज्ञान या समझ।

प्रोग्रामर 1 बहुत अच्छा हो सकता है, यहां तक ​​कि एक गुरु, या वे पिछले 5 वर्षों के लिए भाषा के साथ किसी के लिए भी लड़ सकते हैं।

प्रोग्रामर 2 कोई हो सकता है जो उन अवधारणाओं को समझता है जो स्वतंत्र रूप से भाषा का उपयोग कर रहे हैं। या कोई ऐसा व्यक्ति जिसने भाषा B को बहुत कठिन पाया और आशा करता है कि A आसान है।

कोडिंग हॉरर की "द इयर्स ऑफ एक्सपीरियंस मिथ" पढ़ने लायक है


6
जैसा कि वे कहते हैं, आपके डेवलपर को भाषा ए के साथ पांच साल का अनुभव हो सकता है - या उसके पास एक वर्ष का अनुभव हो सकता है, पांच बार दोहराया जा सकता है।
कार्सन 63000

1
सत्य के लिए +1 - मैंने 8+ साल के अनुभव के साथ नए-नए लोगों के साथ काम किया है जो औसत से अधिक औसत निकले। इसके विपरीत, हमने सिर्फ एक व्यक्ति को विश्वविद्यालय से 1 वर्ष बाहर रखा और वह सभी अपेक्षाओं को पार कर गया।
दामोविसा

4

निर्भर करता है।

मेरा एक दोस्त है जो एक भाषा से चिपके रहता है, इसलिए यदि आप उसे "प्रोग्रामर ए" मानते हैं तो उसे उस भाषा के साथ 1 वर्ष का अनुभव प्राप्त हुआ है, पाँच बार।

अलग-अलग भाषाएं आपको अलग-अलग काम करने देती हैं। एक निबंध जिसे मैं विशेष रूप से पसंद करता हूं, उसे पॉल ग्राहम द्वारा " बीटिंग द एडवर्स " कहा जाता है । इसमें वह लोगों को लिस्प सीखने के लिए मनाने की कोशिश कर रहा है, लेकिन वह कुछ बहुत उपयोगी बिंदु भी बनाता है:

प्रोग्रामर अपनी पसंदीदा भाषाओं से बहुत जुड़ जाते हैं, और मैं किसी की भावनाओं को ठेस नहीं पहुँचाना चाहता, इसलिए इस बात को समझाने के लिए मैं Blub नामक एक काल्पनिक भाषा का उपयोग करने जा रहा हूँ। ब्लब सारगर्भित सातत्य के ठीक बीच में पड़ता है। यह सबसे शक्तिशाली भाषा नहीं है, लेकिन यह कोबोल या मशीन भाषा की तुलना में अधिक शक्तिशाली है।

और वास्तव में, हमारे काल्पनिक ब्लब प्रोग्रामर उनमें से किसी का भी उपयोग नहीं करेंगे। बेशक वह मशीन भाषा में कार्यक्रम नहीं करेगा। यही कारण है कि संकलक हैं। और कोबोल के लिए, वह नहीं जानता कि कोई भी इसके साथ कुछ भी कर सकता है। इसमें x (अपनी पसंद का ब्लब फीचर) भी नहीं है।

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

जब हम प्रोग्रामर के दृष्टिकोण को किसी भी भाषा का उपयोग करते हुए उच्च शक्ति निरंतरता पर स्विच करते हैं, हालांकि, हम पाते हैं कि वह बदले में ब्लूब को देखता है। आप ब्लब में कुछ भी कैसे कर सकते हैं? यह भी y नहीं है।

आम तौर पर, मेरी सलाह है कि एक से अधिक भाषाएं सीखें, और यह जानने के लिए कि भाषाओं की ताकत और कमजोरियां क्या हैं।


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

2

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

एक नई भाषा को चुनने में मेरी सबसे बड़ी कठिनाई सी # एरलंग से स्विच करने की कोशिश करने से हुई, क्योंकि यह न केवल एक नए वाक्यविन्यास का प्रतिनिधित्व करता था, बल्कि प्रोग्रामिंग के बारे में सोचने का एक नया तरीका भी था।


5
डेवलपर को सक्षम मानते हुए।
gbn

2
@ भाग: मैं आपको पूरी तरह से आश्वस्त कर सकता हूं कि मेरे मामले में आप यह अनुमान नहीं लगा सकते हैं :)
वाटसन

2

यहाँ मैं क्या उम्मीद / उम्मीद है:

  1. प्रवाह - वे अपने सिर के ऊपर से अधिक कोड लिखने में सक्षम होना चाहिए और कम समय सिंटेक्स की तलाश में होना चाहिए।
  2. पिछले और वर्तमान संस्करणों और एक से दूसरे में कोड को स्थानांतरित करने के तरीके के बीच अंतर को जानें।
  3. संकलन, वितरण, परीक्षण और उन्नयन और पैच बनाने की पूरी समझ है।
  4. IDE में Add-Ons शामिल करें और उनसे दक्षता प्राप्त करें।

2

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


आप पूरी भाषा तेजी से सीख सकते हैं, लेकिन अगर कोई अवधारणा है जिसे आप नहीं जानते हैं, तो इसमें समय लगेगा। सभी भाषाओं की अवधारणाएँ समान नहीं हैं।
डेविड थॉर्नले

2

विशेषज्ञता और जानबूझकर अभ्यास।

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

यदि आप सुधार करने की कोशिश नहीं करते हैं, तो आप हमेशा के लिए एक नौसिखिया हो सकते हैं!

जानबूझकर अभ्यास के दस हजार घंटे के बाद, आप विशेषज्ञता हासिल करेंगे। (यह शिक्षा / प्रशिक्षण से प्राप्त सभी नेट पर है।)

यदि आपका प्रोग्रामर A जानबूझकर अभ्यास नहीं कर रहा है, तो वे कभी बेहतर नहीं होते हैं।

यदि आपका प्रोग्रामर बी जानबूझकर अभ्यास नहीं कर रहा है, तो वे कभी भी बेहतर नहीं होते हैं।

उसी शोध से एक अन्य खोज: कि अगर मुझे १५००० घंटे मिल गए हैं और आपको १०००० मिल गए हैं, और मैं अभ्यास करता रहता हूँ और आप ऐसा करते हैं, तो आप मुझसे बेहतर कभी नहीं होंगे।

दो भाषाओं को जानने से संभवतः बी एक बेहतर प्रोग्रामर बन जाएगा (नियमों का अभ्यास करने के लिए)।


1

और आप उन्हें भाषा ए के लिए उपयोग कर रहे हैं, मुझे लगता है? (स्पष्ट रूप से, भाषा बी में अंतर होगा)

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

बेशक, यहां जो सबसे ज्यादा मायने रखता है वह है व्यक्तिगत। एक अच्छा डेवलपर तीन साल में एक नया प्लेटफॉर्म सीख सकता है और इसलिए यह एक मुद्दा नहीं होना चाहिए।


1

मैं मानूंगा कि भाषा भाषा है और अवधारणाएं अवधारणाएं हैं।

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

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

वे लोग कभी भी उन अवधारणाओं को लेने में सक्षम नहीं होंगे जो उन्होंने सीखी हैं और उन्हें किसी अन्य भाषा में लागू करते हैं।

जब मैं लोगों को साक्षात्कार देता हूं तो मुझे इस बात में अधिक दिलचस्पी होती है कि उन्होंने अपना विकास कैसे किया और उन्होंने किस ढांचे का उपयोग किया। मुझे सवाल पूछना पसंद है, "आप एक घटना हैंडलर कैसे लिखते हैं?", "आप वास्तव में डीबी में डेटा कैसे डालते हैं?", या यहां तक ​​कि "जब मैं इसे क्लिक करता हूं तो मैं इस विशेष बटन को बैंगनी कैसे करूं?" यह जल्दी से डिजाइनरों को बाहर कर देगा और प्रोग्रामर को छोड़ देगा। मैंने पाया है कि मेरी पसंद की भाषा में एक वर्ष के साथ 3 या 4 साल की प्रोग्रामिंग वास्तव में मेरी आवश्यकता के लिए पर्याप्त है।

बस एक और राय,

ताल


1

"एक्स भाषा / मंच में अनुभव के वर्ष" काफी हद तक एक भर्ती विकृति है ...

यह व्याख्या के लिए खुला है और कहीं भी पास नहीं है क्योंकि यह पहली नज़र में उपयोगी है। जैसा कि कहा गया है, वर्षों का अनुभव मिथक एक अच्छा पढ़ा है।

इसके अलावा, महत्वपूर्ण रूप से, "अनुभव के वर्षों" का माप बहुत ही गलत हो सकता है। यहां मेरे वर्तमान टमटम से एक उदाहरण है: मेरा मुख्य कार्य जावा वेब ऐप को विकसित करना और बनाए रखना है। हालाँकि, यह बैक एंड पर चलता है जो MFC / C ++ / SQL सर्वर है। नतीजतन मैं C ++ कोड के साथ लगभग दैनिक आधार पर भी काम कर रहा हूं। लेकिन - यह C ++ अनुभव अपेक्षाकृत सतही और रखरखाव-उन्मुख है, और मैं वास्तव में अब MFC / C ++ में खरोंच से पूरे बड़े घटकों या कार्यक्रमों को नहीं लिखता (मैं हालांकि पिछली भूमिकाओं में इस्तेमाल किया गया था)।

क्या मैं अभी भी इन 5 वर्षों को "C ++ अनुभव के 5 वर्ष" के रूप में गिन सकता हूं? शायद। शायद नहीं। इस बात पर निर्भर करते हुए कि मैं किसी विशेष भूमिका को सुरक्षित करने के लिए इसे कैसे बेचना चाहता हूं, मैं इसे आसानी से एकमुश्त झूठ के बिना ओवरप्ले कर सकता हूं, या मैं स्वीकार कर सकता हूं कि यह वास्तव में सी ++ अनुभव के 5 ठोस "वर्ष" नहीं थे। :) मुझे यकीन है कि बहुत सारे मामले ऐसे हैं जो इस तरह की "माप की अशुद्धि" समस्या के लिए खुले हैं। अनुभव की गहराई स्थूल रूप से अनुभव की गुणवत्ता को बादल सकती है। इसलिए "C ++ के साथ बिताए समय की एक एक्स राशि" अपने आप में बहुत मायने नहीं रखती है।


-1

हाँ, प्रोग्रामर 1 को भाषा B का कोई वाक्यविन्यास ज्ञान नहीं है ।

प्रोग्रामिंग अवधारणाओं प्रोग्रामिंग अवधारणाओं हैं। भाषा महज वाक्य-विन्यास है।


5
ओह, बहुत गलत ...
जेवियर

जेवियर का अधिकार, भाषा वाक्य रचना की तुलना में बहुत अधिक है ... वहाँ कन्वेंशन, 3 पार्टी लाइब्रेरी, एपीआई, जो आप अनुभव के साथ सीखते हैं।
डैनियल एस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.