मैं कैसे जान सकता हूँ कि क्या मैं एक अच्छा प्रोग्रामर हूँ?


301

ज्यादातर लोगों की तरह, मैं अपने क्षेत्र में औसत से थोड़ा ऊपर होने के बारे में सोचता हूं। मुझे अच्छी तरह से भुगतान मिलता है, मैंने पदोन्नति प्राप्त की है, और मुझे कभी भी वास्तविक संदर्भ प्राप्त करने या नौकरी पाने में कोई समस्या नहीं हुई है।

लेकिन मैं इस बात पर ध्यान देने के लिए पर्याप्त था कि मैंने जिन सबसे खराब प्रोग्रामर के साथ काम किया है उनमें से कुछ सबसे अच्छे थे। खराब प्रोग्रामर जो अन्य बुरे प्रोग्रामर से घिरे होते हैं, वे सबसे ज्यादा खुद को बहकाने वाले लगते हैं।

मैं निश्चित रूप से सही नहीं हूं। मैं गलतियाँ करता हूँ। मैं डेडलाइन मिस करता हूं। लेकिन मुझे लगता है कि मैं उसी संख्या के बारे में बनाता हूं जो "अन्य अच्छे प्रोग्रामर" करते हैं। समस्या यह है कि मैं "अन्य अच्छे प्रोग्रामर" को परिभाषित करता हूं, जिसका अर्थ है "मेरे जैसे लोग।"

इसलिए, मुझे आश्चर्य है कि क्या कोई ऐसा तरीका है जिससे कोई प्रोग्रामर किसी तरह का उचित आत्म-मूल्यांकन कर सके? हमें कैसे पता चलेगा कि हम अपनी नौकरियों में अच्छे हैं या बुरे?

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


तुम क्यों जानना चह्ते हो? कोई भी परिभाषित नहीं कर सकता कि "अच्छा" क्या है। यदि आपको उम्मीद के मुताबिक काम मिलता है और अच्छी तरह से भुगतान किया जाता है, तो यह काफी अच्छा है।
मर्ट अक्काया

जवाबों:


325

एक अच्छा प्रोग्रामर समझता है कि उन्हें सीखना और बढ़ना जारी रखना है। वे हर प्रयास में अपना सर्वश्रेष्ठ करने का प्रयास करते हैं, असफलताओं को स्वीकार करते हैं और उनसे सीखते हैं।

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

सर्वश्रेष्ठ प्रोग्रामर जानते हैं और स्वीकार करते हैं कि चीजों को करने का एक से अधिक तरीका है, कि हर समस्या एक कील नहीं है, और इसलिए कि हमेशा कुछ करने का एक बेहतर तरीका है कि वे जिस तरह से योजना बना रहे थे, वह लगातार नई तकनीकों को सीखना चाहते हैं। , प्रौद्योगिकियों और समझ।

एक अच्छा प्रोग्रामर प्रोग्राम करना पसंद करता है, और अपने खाली समय में भी ऐसा करेगा, भले ही वे पहले से ही एक हफ्ते की प्रोग्रामिंग में 80+ घंटे खर्च करें।

एक अच्छा प्रोग्रामर जानता है कि वह एक महान प्रोग्रामर नहीं है। सचमुच महान प्रोग्रामर मौजूद नहीं हैं, केवल वही हैं जो महान होने का दावा करते हैं, और जो जानते हैं कि वे महान नहीं हैं।


5
आप इस अधिकार को सिर पर नाखून! IMO!

13
और मुझे लगता है कि एक अधिक सामान्य कोरोलरी यह है कि आप जो करते हैं, उसके बारे में आपकी परवाह है कि आप क्या करते हैं।

7
ख़ूब कहा है। अहंकार / विनम्रता के बारे में, मैं 70 के दशक में एमआईटी एआई लैब के माध्यम से आया था। सबसे अच्छे कोडर्स में एक निश्चित विनम्र आत्मविश्वास था। अगर आपको लगता है कि आप कुछ महत्वपूर्ण कर रहे हैं, तो आप गलत हो सकते हैं, लेकिन यदि आप नहीं करते हैं, तो आप शायद सही हैं।
माइक डनलैवी

4
मैं पैरा के साथ आंशिक रूप से सहमत हूं। # 2, "न केवल वे एक लेपर्सन को जटिल तकनीकी शब्दों की व्याख्या करने में सक्षम हैं ..." मुझे कुछ अच्छे प्रोग्रामर पता हैं। लेकिन वे अपने सर्कल के बाहर किसी को कुछ भी नहीं समझा सकते थे। न ही वे समझ सकते थे कि लेपर्सन क्या कहना चाह रहे थे। वे दोनों एक दूसरे को "हेडलाइट्स में हिरण" आँखों से देखते हैं। मैं कहूंगा कि वे असाधारण रूप से संप्रेषणीय हैं। आपके बाकी बिंदुओं के लिए, मैं कहूँगा कि एक अच्छा प्रोग्रामर विनम्र है और अपने ज्ञान को सबसे अच्छे तरीके से साझा करने के लिए तैयार है।
आइब्रेट

101
"और वे अपने खाली समय में भी ऐसा करते हैं, भले ही वे पहले से ही सप्ताह में 80+ घंटे प्रोग्रामिंग करते हों।" इस मूर्खतापूर्ण बयान से छुटकारा पाएं और मैं बाकी लोगों से पूरी तरह सहमत हूं। एक सही मायने में 'अच्छा प्रोग्रामर', यह महसूस करता है कि जब 80+ घंटे का सप्ताह प्रोग्रामिंग (खाली समय में) के अलावा कुछ और काम करना शारीरिक और मानसिक स्वास्थ्य के लिए आवश्यक है, और काम पर उत्पादकता के लिए आवश्यक है।

91

जैसा कि पॉल ग्राहम इस पॉड कास्ट में स्पष्ट रूप से बताते हैं , आप नहीं कर सकते। केवल आपके सहकर्मी ही आपको बता सकते हैं।


4
यह उत्तर स्वीकृत एक की तुलना में बहुत बेहतर है ...

125
यदि आप अक्षम हैं तो आपके सहकर्मी यह नहीं बता सकते हैं कि आप सक्षम हैं। वे बस सोचेंगे कि आपके पास अजीब राय है और अप्रासंगिक विषयों के बारे में जुनून से बहस करें।

2
सहमत, कीरोस्ज़ो। तब कोई भी आपको नहीं बता सकता है और आप कभी नहीं जान पाएंगे, जब तक कि आप अपने आप को कुछ नए सहकर्मी नहीं मिलते हैं। मुझे लगता है कि यह लंबे समय से किसी के साथ काम करने के लिए पुरस्कृत नहीं है जो सक्षम है।

1
@keyseroze, लेकिन अगर मैं वास्तव में अक्षम हूं तो मेरे सहकर्मी सक्षम हो सकते हैं और मैं इसे महसूस करने के लिए बहुत बेवकूफ हूं;)

1
पॉल ग्राहम ने महान प्रोग्रामरों के बारे में एक निबंध भी लिखा था, जो बताता है कि वह महान लोगों के नाम पर एक नुकसान है, क्योंकि उन्होंने वास्तव में स्पष्ट विकल्पों (जैसे रिचर्ड स्टालमैन, लिनुस टॉर्वाल्ड्स, एट अल।) के साथ काम नहीं किया है।
डेविड थॉर्नले

59

मैंने हमेशा पाया है कि दो चीजों को करके अपने प्रदर्शन को आंकना सबसे आसान है।

  1. अन्य अच्छे प्रोग्रामर के साथ खुद को घेरें
  2. देखें कि वे आपके द्वारा लिखे गए कोड के बारे में कितना शिकायत करते हैं।

पाठ्यक्रम का मुद्दा अच्छे प्रोग्रामर ढूंढ रहा है, और फिर एक अच्छा प्रोग्रामर होना भी कोडिंग के बारे में नहीं है। आपको समूहों में अच्छी तरह से काम करने में सक्षम होने की आवश्यकता है, फिर भी अपने आप से अच्छा काम करें।

अब विषय से हटने के लिए, मैं रॉबर्ट ए। हेनलिन और इस विषय पर उनके विचार उद्धृत करूंगा:

"[एक किक-गधा प्रोग्रामर] एक डायपर बदलने में सक्षम होना चाहिए, आक्रमण की योजना बनाना, कसाई एक हॉग, एक जहाज को जीतना, एक इमारत को डिजाइन करना, एक सॉनेट लिखना, बैलेंस अकाउंट्स, एक दीवार का निर्माण, एक हड्डी सेट करना, मरने की सुविधा देना। , ऑर्डर लें, ऑर्डर दें, सहयोग करें, अकेले कार्य करें, समीकरणों को हल करें, एक नई समस्या का विश्लेषण करें, पिच खाद, एक कंप्यूटर प्रोग्राम करें, स्वादिष्ट भोजन पकाएं, कुशलता से लड़ें, और तेजी से मरें। विशेषज्ञता कीड़े के लिए है। "
- लेज़र लॉन्ग की नोटबुक से।


12
थोड़े ने मुझे याद दिलाया: "मूर्ख लोग खुद को स्मार्ट लोगों से घेर लेते हैं। स्मार्ट लोग खुद को स्मार्ट लोगों से घेर लेते हैं जो उनसे असहमत होते हैं।"
सैम हसलर

मैं यह कहने का उपक्रम करता हूं कि एसओ पर यह सबसे अच्छा हेनलीन उद्धरण है।

1
समस्या यह है कि अन्य प्रोग्रामर आपके स्तर पर या उससे अधिक हो सकते हैं, लेकिन वे आपका अपमान नहीं करना चाहते हैं। मैंने तीन प्रोग्रामर के साथ काम करने के तरीके के बारे में ज्यादा जानकारी नहीं ली है, और 2 अन्य लोगों से बहुत कम है, जिन्हें मैं "अच्छा"

4
... हालाँकि हम असामाजिक होने के कारण रूढ़ हैं, अन्य प्रोग्रामर कोड की रक्षा कर सकते हैं, इसके साथ समस्याओं की प्रतिक्रिया नहीं दे रहे हैं। सामाजिक समस्याओं को न बनाने के लिए वास्तव में कोड वास्तविक समस्याओं की अनदेखी हो सकती है।

55

यह सिर्फ आपके लिए प्रोग्रामर कम्पीटिशन मैट्रिक्स है: http://www.indiangeek.net/wp-content/uploads/Programmer%20competency%20matrix.htm


मैं उन वस्तुओं के 90% की तरह 3-4 पर हूं और मैं गंदगी नहीं कर सकता। बहुत तेज नहीं, कम से कम।

-1 खरीदारी की सूची के लिए।

6
-1 - एल्गोरिदम का ज्ञान अच्छा है, लेकिन कोई भी तरीका नहीं है जब आपके साक्षात्कार में कोई सामान आपके सिर में जमा होने वाला हो। यही wikipedia, google और stackoverflow के लिए है।

1
सहमत होना कि वह सूची अधिकतर बेकार है; यदि आप व्यायाम की तलाश कर रहे हैं तो यह विचारों का एक अच्छा स्रोत है, लेकिन यह दृढ़ संकल्प है कि आप "अच्छे किसान" हैं। "अच्छा प्रोग्रामर" मनमानी सूची की तुलना में अधिक रवैया है।

2
+1। हालांकि मैं ऊपर बताए गए शब्दों से असहमत नहीं हूं, फिर भी मुझे लगता है कि यह एक बहुत अच्छी सूची है। इसे पोस्ट करने के लिए धन्यवाद। ये निश्चित रूप से मापदंड के प्रकार हैं जिस पर मैं एक प्रोग्रामर को नौकरी के लिए आवेदन करने का मूल्यांकन करूंगा। और @mnnicken, यह केवल स्तर 3. पर जाता है: :)
EMP

38

जेफ के पास इस विषय पर मेरी पसंदीदा ब्लॉग पोस्ट में से एक है ... व्हाई आई एम द बेस्ट प्रोग्रामर इन द वर्ल्ड

"... यह किसी और से बेहतर होना हमारा काम नहीं है; हमें सिर्फ एक साल पहले की तुलना में बेहतर होना चाहिए।"


3
वो बोली मुझे बहुत अच्छा लगता है। और इसकी प्रोग्रामिंग क्या है। "आप जो करते हैं उसमें बेहतर होते हैं और दिन-प्रतिदिन जानते हैं।"

1
पिछले 12 वर्षों से हर साल, मैंने उस कोड को वापस देखा है जिसे मैंने एक साल पहले लिखा था और सोचा था कि यह बिल्कुल बकवास है। शायद मैं कुछ सही कर रहा हूँ! एक स्थिर प्रोग्रामर से बदतर कुछ भी नहीं है।

28

मुझे लगता है कि आप जो सवाल पूछ रहे हैं, वह साबित करता है कि आप एक बुरे प्रोग्रामर नहीं हैं, इसलिए, मेरी राय में, आप आधे रास्ते में हैं। :)

खराब प्रोग्रामर हमेशा सोचते हैं कि वे महान प्रोग्रामर हैं, मेरे अनुभव में।


आपको कितना अनुभव है?

1
मेरा अनुभव आपके अनुभव से सहमत है, यही कारण है कि जब भी मैं यह सोचना शुरू करता हूं कि मैं अच्छा हूं तो चिंतित हो जाता हूं।
क्रिस्टोफर जॉनसन

21

@ निक के बयान "खराब प्रोग्रामर हमेशा सोचते हैं कि वे महान प्रोग्रामर हैं ..." को डायनामिक क्रूगर इफेक्ट द्वारा समझाया गया है , जो सामान्य तौर पर यह बताता है कि जो लोग किसी विषय के बारे में बहुत कम जानते हैं, वे अक्सर अनुमान लगाते हैं कि वे वास्तव में कितना जानते हैं।

थोड़ा मुखर होने के नाते ... कम आपको लगता है कि आप जितना जानते हैं उतना शायद ही आप करते हैं .... जब तक कि निश्चित रूप से आप वास्तव में आत्म जागरूक बेवकूफ नहीं हैं।

मूल प्रश्न का उत्तर देते हुए, हालांकि मुझे लगता है कि आपके पास आमतौर पर अधिक प्रभाव (नियंत्रण नहीं) एक अच्छा संकेतक है। यदि आप दूसरे का अनुसरण करते हुए देखते हैं, या अपनी प्रथाओं को उठाते हैं तो आप सही रास्ते पर हैं।


Dunning-Kruger प्रभाव बहुत ही विनम्र है। जब भी मुझे कुछ अच्छा महसूस होता है, तो मैं कोशिश करना और उसे ध्यान में रखना पसंद करता हूँ!

अच्छे प्रोग्रामर सवाल नहीं पूछते हैं और फिर जवाब को वोट देते हैं क्योंकि वे उन्हें पसंद नहीं करते हैं। वे ऐसे काम नहीं करते हैं जैसे वे एक नए विषय में सब कुछ जानते हैं और जब कोई विशेषज्ञ उनके लिए एक प्रश्न का उत्तर देता है तो वे उसे वोट नहीं देते हैं क्योंकि यह वह नहीं है जो वे चाहते थे।

काश, मुझे कॉलेज में डीके के बारे में कोई सुराग होता, जब मैं स्पेक्ट्रम के एक छोर का एक बेहतरीन उदाहरण था!
डैरनव जूल

18

सबसे अधिक वोट पाने वाला जवाब वास्तव में परेशान करने वाला है। मूल रूप से यह कहता है कि आपके पास प्रोग्रामिंग के बाहर कोई जीवन नहीं है। परिवार के बारे में क्या? सामुदायिक? शौक? हम किस तरह के पेशे में हैं, जहां आपको केवल "अच्छा" माना जाने के लिए जुनून के बिंदु पर व्यस्त होना पड़ता है? मुझे वास्तव में लगता है कि हमें यहां कुछ परिप्रेक्ष्य प्राप्त करने की आवश्यकता है।


2
मैं सहमत हूँ। एक महान प्रोग्रामर बनने से पहले हमें एक महान व्यक्ति बनने का प्रयास करना चाहिए।

501 प्रोग्रामर शब्द का संदर्भ देने के लिए अच्छी जगह: hanselman.com/blog/…
क्रिसफ्लेचर


9

मैं सही नहीं हूँ। मैं गलतियां करता हूँ। मुझे डेडलाइन याद आती है। लेकिन मुझे लगता है कि मैं उसी संख्या के बारे में बनाता हूं जो "अन्य अच्छे प्रोग्रामर" करते हैं।

यह अहसास ही आपको वहां से ज्यादातर बुरे प्रोग्रामर की तुलना में बेहतर प्रोग्रामर बनाता है।

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


9

यदि आप एक साल पहले के अपने कोड को देखते हैं, और सोचते हैं, जी, मैं ऐसा कर सकता था जो बहुत बेहतर है, आप बहुत अच्छे हैं :)।


मैंने सिर्फ अपने हैलो वर्ल्ड प्रोग्राम को देखा और सोचा कि, अब यह बहुत अधिक कुशल है, क्या मैं अच्छा हूं? jks jks

9

यहां खराब प्रोग्रामिंग के कुछ वास्तविक जीवन उदाहरण हैं। बेशक, समान कोड सभी जगहों पर 100 स्थानों पर कॉपी / पेस्ट किया गया था। लड़के को निकाल दिया गया, लेकिन मैंने सुना है कि उसे फिर से एक अच्छी नौकरी मिल गई है। का आनंद लें:

ए)

if (! TableObject.loadList("sql condition").isEmpty()) {  
    List<TableObject> myList = TableObject.loadList("sql condition");  
    ...  
}

ख)

public static Type getInstance() {  
    if (instance == null) {  
        return new Type();  
    }  
    return instance;  
}

सी)

getForeignKeyObjectProperty1() {  
    return ForeignKeyObject.loadByPrimaryKey(foreignId).getProperty1();  
}  

getForeignKeyObjectProperty2() {  
    return ForeignKeyObject.loadByPrimaryKey(foreignId).getProperty2();  
}  

...

getForeignKeyObjectPropertyN() {
    return ForeignKeyObject.loadByPrimaryKey(foreignId).getPropertyN();
}

घ)

public boolean isHasImage() throws SQLException {
    StringBuilder query = new StringBuilder();
    query.append("select user_name");
    query.append(" from user");
    query.append(" where has_image = 1");
    query.append(" and user_name ='"+getUserName()+"' and user_image is not null");
    Connection c = Database.getInstance().getConnection();
    Statement st = c.createStatement();

    try {
        ResultSet rs = st.executeQuery(query.toString());
        if (rs.hasNext()) {
            return true;
        } else {
            return false;
        }
    } finally {
        st.close();
    }
}

यदि आप इस तरह का कोड बनाते हैं, तो प्रोग्रामिंग बंद कर दें। यदि आपको इस कोड में कुछ भी अजीब नहीं दिख रहा है, तो प्रोग्रामिंग बंद कर दें। अन्यथा आप बुरे नहीं हैं, इसलिए आप भी अच्छे हो सकते हैं :)

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

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


11
कोई भी मनमाना कोड पोस्ट कर सकता है और दावा कर सकता है कि जो लोग इसे नहीं समझते हैं वे मूर्ख हैं। मैं डंबल लाइन में खड़ा हो जाऊंगा।

20
एक अच्छे प्रोग्रामर ने अपने सहकर्मी को यह समझाने के लिए समय (2 मिनट शायद?) लिया होगा कि कोड के साथ क्या गलत था।

4
सहमत, एक अच्छे प्रोग्रामर ने बताया होगा कि यह कोड 'खराब' क्यों है और इससे उनके साथी को उनका मजाक उड़ाने के बजाय बेहतर बनने में मदद मिलेगी।

7
मुझे उम्मीद है कि उस व्यक्ति को एक नौकरी मिली जहां उसके सहकर्मियों ने उसे धोखा देने के बजाय बढ़ने में मदद की।
रॉबर्ट एस।

8
@ मॉर्फ: instanceफ़ील्ड को कभी भी एक Typeउदाहरण नहीं दिया जाता है और इसलिए हमेशा रहता है null=)
लापताफैक्टर

8

कुछ चीजें हैं जो आप आजमा सकते हैं, आप कैसे ढेर कर सकते हैं का एक बेहतर गेज पाने के लिए।

  • कोड समीक्षा की तुलना करें। देखें कि किसकी समीक्षा में अधिक समस्याएं सामने आईं।
  • पूछें कि आखिरी बार उन्होंने किताबें कब पढ़ी थीं जो उनके सामान्य अध्ययन के लिए परिधीय थीं। फिर खुद से वही बात पूछें।
  • खुद से पूछें कि कंपनी में नए विचारों को कौन लाता है (और वे कितनी अच्छी तरह काम करते हैं)।
  • अंतिम और सबसे कम), क्या कंपनी की मान्यता का कोई रूप है?

(मैंने वह आखिरी डाल दिया क्योंकि मेरी आखिरी कंपनी में, एक प्रोग्रामर को तीन साल में दो बार "डेवलपर ऑफ द ईयर" मिला था। उसके चले जाने के बाद, हमें कम से कम 20 TDWTF- योग्य कोड स्निपेट्स मिले। उसने कोड को तेजी से विकसित किया , लेकिन जरूरी नहीं कि अच्छी तरह से। प्रबंधन केवल अंतर नहीं जानता था।)


1
"कोड समीक्षा की तुलना करें" के लिए +1। यह एक उपन्यास जैसा लगता है और बहुत ही व्यावहारिक बात है।
j_random_hacker

6

अन्य डेवलपर्स को अनुमति दें, जिनके साथ आप काम करते हैं या अपना कोड देखते हैं।

क्या लोग वास्तव में आपको जो पसंद है उसका उपयोग करते हैं और देखते हैं कि वे क्या सोचते हैं

- केविन फेयरचाइल्ड


6

क्या आप इसे समझ सकते हैं?

if(rp->p_flag&SSWAP) {
	rp->p_flag =& ~SSWAP;
	aretu(u.u_ssav);
}

:-)


नीचे modled ??!?!?!?! कोई अपना इतिहास नहीं जानता। :-)
इयान होल्डर

5
आपको यह समझने की उम्मीद नहीं है

क्या यह किसी चीज का संदर्भ है? किसी भी स्थिति में, यदि यह C / C ++ कोड है, तो आप शायद 2 पंक्ति में "= &" के बजाय "& =" का अर्थ करेंगे। (मैं "शायद" कहता हूं, क्योंकि C ++ में ऑपरेटर ~ () को ओवरलोड करके आप उपरोक्त संकलन कर सकते हैं ... लेकिन मुझे पूरा यकीन है कि आपका जो इरादा है वह नहीं है।)
j_random_hacker

1
@j_random_hacker मुझे संदेह है कि = और यह सही है क्योंकि यह कोड डेनिस रिची द्वारा लिखा गया था। Cm.bell-labs.com/who/dmr/odd.html
Iain Holder

1
@IMMH, dmr भी मानते हैं कि यह छोटी गाड़ी थी।

4

बस मात्र ने सोचा कि आपको आत्म-मूल्यांकन करने की आवश्यकता है जो आपको बाकी हिस्सों से ऊपर काट देता है।

एक तरह से मैं हमेशा खुद को आंकता हूं कि मेरे सहकर्मियों का मेरे बारे में क्या कहना है। ट्रिक सही लोगों को खोजने में है।


4

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


4

मेरे लिए बहुत अच्छे प्रोग्रामर कभी काम की तलाश में नहीं हैं। उनके पास अपनी प्रतिष्ठा के आधार पर नए पदों के लिए प्रस्ताव हैं। इसलिए एक अच्छा प्रोग्रामर के पास पिछले नियोक्ताओं के पास लौटने के लिए प्रस्ताव हो सकते हैं, यदि वे चाहें। या एक अच्छे प्रोग्रामर ने पूर्व सहकर्मियों से एक नई कंपनी में उनके लिए काम करने के बारे में पूछताछ की होगी।

ताकत / कमजोरियों के संदर्भ में, आप शायद उन्हें पहले से ही जानते हैं। यदि नहीं, तो अपनी टीम के किसी वरिष्ठ व्यक्ति से पूछें। इसका डेवलपर होना भी जरूरी नहीं है। एक अच्छा प्रोजेक्ट मैनेजर प्रोग्रामर की ताकत / कमजोरियों को जानता है। इसके अलावा, अच्छे प्रोग्रामर को परिभाषित करने वाले लक्षण केवल कोड तक सीमित नहीं हैं। व्यापार को समझना, संचार कौशल, निर्णय, आदि सभी आपके आईडीई के बाहर किए जाते हैं।


2
आप एक महान प्रोग्रामर और भयानक व्यक्ति हो सकते हैं। क्या आप एक अच्छे व्यक्ति के साथ काम करेंगे जो शायद इतना नहीं जानता हो, लेकिन सीखने के लिए या कुल झटका के साथ तैयार है जो हर तरह से एक शानदार प्रोग्रामर है? तो जो आप वर्णन करते हैं वह एक अच्छा कर्मचारी बनाता है, न कि एक अच्छा प्रोग्रामर। ;)

2
मुझे समझ नहीं आ रहा है कि यह टिप्पणी कहां से आ रही है। जिन दो मुख्य प्रश्नों को मैं संबोधित कर रहा हूँ, वे हैं 'अगर मैं एक अच्छा प्रोग्रामर हूँ तो मुझे कैसे पता चलेगा?' और 'मैं अपनी ताकत / कमजोरी कैसे जानूं?' झटके और भयानक लोगों के बारे में यह सब क्या है। मेरी उन बातों पर राय है, लेकिन मुझे नहीं लगता कि वे मेरी प्रतिक्रिया से संबंधित हैं।

2
प्रतिष्ठा प्राप्त करना अक्सर पीआर और आत्मविश्वास की वास्तविक क्षमता की तुलना में अधिक होता है।
डेविड थॉर्नले

"क्षमता" को तकनीकी क्षमता मान लें तो एक अच्छा प्रोग्रामर होना "वास्तविक क्षमता" से कहीं अधिक है। तकनीकी योग्यता केवल पहेली का एक टुकड़ा है।

3

मुझे लगता है कि यह सोचने जैसा है कि आप कैसे जान सकते हैं कि आप एक अच्छे इंसान हैं।

मुझे लगता है, दुर्भाग्य से, इसका उत्तर यह है कि केवल अन्य विश्वसनीय लोग ही आपको बता सकते हैं। मुझे नहीं लगता कि यह कुछ ऐसा है जिसे आप अपने लिए सही ढंग से निर्धारित कर सकते हैं (कम से कम यह बहुत मुश्किल है - लेकिन मुझे लगता है कि यह असंभव हो सकता है)।


3

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


3

सभी प्रोग्रामर के 95% को लगता है कि वे शीर्ष 5% प्रोग्रामर में से हैं, अन्य 5% प्रबंधक हैं। इसलिए यदि आप एक प्रबंधक हैं, तो आप शायद एक अच्छे प्रोग्रामर नहीं हैं, अन्यथा आप शायद हैं।


... और 25% जानते हैं कि वे शीर्ष 1% में हैं;)

3

मुझे लगता है कि आप अपने प्रोग्रामिंग कौशल के साथ क्या करते हैं, यह अधिक बात है। एक शानदार प्रोग्रामर होना ठीक है, लेकिन अगर आपको पूरे दिन बैंक सॉफ्टवेयर कोडिंग करने में कोई दिक्कत नहीं है तो क्या बात है। यह सिर्फ जोड़ नहीं है।

वास्तव में अपने आप को साबित करने के लिए कि आप एक अच्छे प्रोग्रामर हैं, एक दिलचस्प कठिन प्रोजेक्ट पर जाएं। यह कुछ चीजें दिखाता है: आप अपने खाली समय पर प्रोग्रामिंग में रुचि रखते हैं और वास्तव में इस विषय का आनंद लेते हैं - यह एक अच्छा प्रोग्रामर होने के लिए आवश्यक है। यह बहुमुखी प्रतिभा दिखाता है कि आप अपने काम के माहौल में अपने कौशल का विस्तार कर सकते हैं। यह प्रेरणा और रचनात्मकता को दर्शाता है: आपने स्वयं एक समस्या को परिभाषित किया है और इसे हल करने के लिए कदम उठा रहे हैं।

ये सभी पहलू मेरे लिए एक अच्छे प्रोग्रामर को परिभाषित करते हैं।


3

मेरा जवाब राजनीतिक रूप से गलत होगा। हालांकि, मैं वास्तव में एक स्टार्ट अप का संस्थापक हूं और मेरा काम सबसे अच्छे प्रोग्रामर को किराए पर देना है।

मुझे कैसे पता चलेगा कि कौन से लोग अच्छे प्रोग्रामर होंगे या अच्छे प्रोग्रामर हो सकते हैं?

1 शब्द: बुद्धि।

आईक्यू प्रोग्रामिंग के लिए है क्योंकि ऊँचाई बास्केट बॉल खिलाड़ियों के लिए है।

मैं गणित के कौशल को एक और राजनीतिक रूप से सही संकेतक के रूप में रखूंगा। मेरे कंप्यूटर विज्ञान के शिक्षकों ने मुझे बताया कि एक मानदंड है जो सही ढंग से भविष्यवाणी करता है कि प्रोग्रामिंग पाठ्यक्रमों में कौन सफल होगा। हाई स्कूल मैथ स्कोर। वे वैसे भी प्रभावी रूप से बुद्धि हैं।

यह एक आश्चर्य के रूप में आ सकता है। हमें बताया गया है कि प्रोग्रामिंग एक कॉलेज की डिग्री का काम है। क्या लगता है, मैं डिग्री के बारे में परवाह नहीं है। मुझे केवल 3 चीजों की परवाह है।

  1. प्रोग्रामिंग कौशल (जो परीक्षण किया जा सकता है)।
  2. योग्यता।
  3. सामान्य ज्ञान (बहुत कम नहीं) लोगों का कौशल।

दुर्भाग्य से IQ केवल एक चीज को मापता है। इसलिए मैं कुछ परीक्षण करता हूं।

मैं लोगों से सवाल पूछता हूं। सरल प्रश्न मुझे उम्मीद है कि प्राथमिक विद्यालय के बच्चे को उत्तर देने में सक्षम होना चाहिए।

मैं सवाल पूछता हूं जैसे:

  1. 7:35 पर घड़ी के छोटे और लंबे हाथ के बीच की दूरी क्या है
  2. अगर मैं जकार्ता से सेमारंग जाऊं और 60 किमी / घंटा की रफ्तार बनाए रखना चाहता हूं। फिर पहले 2 घंटे पर मैं 100 किमी / घंटा ड्राइव करता हूं। बाकी यात्रा के लिए मुझे कितनी तेजी से जाना चाहिए ताकि मेरी AVERAGE की गति 60 किमी / घंटा हो जाए?

यदि आप ध्यान से देखते हैं तो उन प्रश्नों को रचनात्मकता की आवश्यकता नहीं है। केवल सामान्य ज्ञान। बुद्धि के साथ कोई भी प्राथमिक स्कूली बच्चे इसका जवाब दे सकते हैं।

MOST कॉलेज स्नातक नहीं कर सकता। अब सोचिए कि क्या कोई इसका जवाब नहीं दे सकता है? क्या वह कार्यक्रम कर सकता है? इसके बारे में सोचो। आपको कितनी बार यह निर्दिष्ट करना होगा कि उसे क्या करना चाहिए?

आप Microsoft जैसे प्रश्न भी पूछ सकते हैं जिनमें रचनात्मकता की आवश्यकता होती है। आप एक बैलेंस स्केल में 8 गेंदों का वजन कैसे करें, यह जानने के लिए सवाल पूछ सकते हैं कि कौन सा सबसे भारी है। ऐसे सवालों के साथ समस्या यह है कि इसमें भाग्य शामिल है। हालांकि, कुछ काफी आसान हैं यह एक न्यूनतम आवश्यकता होनी चाहिए।

एक भयानक प्रोग्रामर प्राप्त करने से अन्य प्रोग्रामर की नैतिकता में सुधार हो सकता है। एक कानूनन प्रोग्रामर होने से बाकी सभी का मनोबल कम हो सकता है।

लोगों द्वारा उस तरह के सवालों का जवाब देने के बाद, जो बहुत आसान है, मैं उन्हें कुछ Google जाम कोड लिखूंगा।

अच्छे प्रोग्रामर Google जाम कोड को हल कर सकते हैं और भविष्यवाणी कर सकते हैं कि कौन सी समस्याएं आसान हैं।


2

imho तुम एक अच्छे प्रोग्रामर हो अगर

-आपमें एक ध्वनि प्रधान पृष्ठभूमि है। पहिये को सुदृढ़ करने के साथ-साथ एक एल्गोरिथ्म या एक रूपरेखा समय की बर्बादी है, अधिकांश समय।

-आप कभी-कभी तिरछी नजरिए से चीजों और समस्याओं को देख सकते हैं। यह आपको अभिनव समाधान खोजने के लिए ला सकता है।

-आप सबसे अच्छा उपकरण और सबसे अच्छा कौशल अद्यतन करने के लिए समय पैसा और प्रयास खर्च करते हैं।

-आपका कोड संशोधित करना आसान है। यदि आप स्वच्छ, सुरुचिपूर्ण और समझने योग्य कोड डिजाइन करते हैं, तो इसे संशोधित करना दर्दनाक नहीं होगा।

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

-आप के आसपास के लोग जानते हैं कि आप यह निर्णय लेने में मदद कर सकते हैं कि क्या करना है

-आप विभिन्न उपकरणों का उपयोग करके समस्याओं को हल कर सकते हैं। बुरे प्रोग्रामर जो भी समस्या आती है, उसी टूल का उपयोग करते हैं (चाहे वह भाषा हो या तकनीक या आर्किटेक्चर वगैरह)

-आप सीखते रहिए, आप उत्सुक हैं।

-तुम इन सभी वर्षों के बाद, मजेदार प्रोग्रामिंग है


2

"सर, मैं इसके माध्यम से अल्फा से ओमाहा तक गया हूं, और मैं आपको बताता हूं कि कम आदमी जानता है कि वह जितना बड़ा शोर करता है और वह जितना अधिक वेतन कमाता है।" मार्क ट्वेन

... मेरा निष्कर्ष यह है कि अच्छे प्रोग्रामर कम वेतन कमाते हैं और थोड़ा शोर करते हैं ... :)


2

बेस्ट प्रोग्रामर: समय पर सबसे कम कोड स्टेटमेंट के साथ कार्य को पूरा करें।


1

आपके कोड में प्रति मीट्रिक कितने कीड़े हैं? (यानी प्रति पंक्ति बग) नई सुविधाओं को जोड़ने की आवश्यकता होने पर आपके कोड में से कितना कोडित किया जाना है? क्या आपके सहकर्मियों के पास आपके कोड को संशोधित करने के मुद्दे हैं?

अंत में, यह सवाल असंभव है कि यह जवाब दिया जाना असंभव है कि "गुणवत्ता कोड क्या है" का प्रश्न इन सभी वर्षों के बाद भी एक गर्म बहस वाला विषय है।


1

मुझे वास्तव में पसंद है जो एडम वी ने ऊपर कहा था।

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


1
"लेकिन ये गरीब आवश्यकताओं के संकेतक भी हो सकते हैं।" यहाँ शायद हमारा मामला। गरीब आवश्यकताओं ने हमें एक पूरे मॉड्यूल को फिर से लिखना है।

1

आत्म-मूल्यांकन करना बहुत कठिन है। अक्षम लोगों को अपनी क्षमताओं के बेतहाशा बढ़े हुए मूल्यांकन का अनुभव होता है।

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


1

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

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