आप इस बात पर कैसे विचार करेंगे कि एक प्रोग्रामर जो कुछ कर रहा है उसमें वह खराब है?
यदि संभव हो तो ... उसे कैसे सुधार करना चाहिए?
आप इस बात पर कैसे विचार करेंगे कि एक प्रोग्रामर जो कुछ कर रहा है उसमें वह खराब है?
यदि संभव हो तो ... उसे कैसे सुधार करना चाहिए?
जवाबों:
जब वे अपनी गलतियों से और साथियों की समीक्षाओं से सीखने में असफल हो जाते हैं।
हम सभी कुछ बिंदु पर हरे हैं; हालाँकि, यदि आप बेहतर नहीं हो रहे हैं या बेहतर होने का प्रयास कर रहे हैं तो आप एक खराब प्रोग्रामर हैं।
एक प्रोग्रामर जो नहीं जानता है कि वह क्या नहीं जानता है और यह पता लगाने में बिल्कुल भी दिलचस्पी नहीं है।
एक बड़ा चेतावनी संकेत यह है कि यदि वे "कार्गो पंथ" प्रोग्रामर हैं - जिसका अर्थ है कि वे चीजें करते हैं, लेकिन यह नहीं जानते कि वे उन चीजों को क्यों करते हैं (यह सिर्फ "जादू" है)। यहां एरिक लिपर्ट द्वारा शानदार पोस्ट ।
लेख से:
प्रोग्रामर जो समझते हैं कि कोड क्या करता है, लेकिन यह कैसे नहीं करता है।
मेरे लिए एक बड़ी बात यह है कि जब वे आपसे या अन्य प्रोग्रामर से विकास के सवाल पूछते हैं, जो स्पष्ट रूप से दिखाते हैं कि उन्होंने अपने दम पर इसका पता लगाने के लिए बिल्कुल शून्य प्रयास किया है।
एक कोरोलरी तब होती है जब वे एक ही प्रोग्रामिंग प्रश्न पूछते हैं कई बार संकेत करते हैं कि वे जानकारी को आंतरिक नहीं कर रहे हैं।
जब FizzBuzz समस्या को हल करने में उन्हें लंबा समय लगता है।
प्रोग्रामर जो नई तकनीकों / भाषाओं को सीखने से इनकार करते हैं, और जो वे पहले से जानते हैं, उससे चिपके रहने पर जोर देते हैं।
परिशिष्ट: (टिप्पणी में नीचे डैश ने क्या कहा)
इसका एक विस्तार ऐसे लोग हैं जो कुछ प्रौद्योगिकी की कार्यक्षमता का सबसेट जानते हैं, लेकिन इसके बारे में अधिक जानने के लिए कोई इच्छा नहीं दिखाते हैं। प्रोग्रामिंग भाषा, संपादक, अन्य उपकरण ...
जब एक टीम का सदस्य नकारात्मक उत्पादक निर्माता होता है ।
|# Lines Written| - |# Lines of bugs introduced| - |# Lines of rework required| < 0
मतलब आपकी बाकी टीम को खराब डेवलपर की वजह से ज्यादा काम करना पड़ता है। NNPP
जब वे चीजों का उत्पादन करते हैं जो नियमित रूप से द डेली डब्ल्यूटीएफ पर निर्भर करते हैं।
जब वे जानते हैं कि चीजों को करने के बेहतर तरीके हैं लेकिन फिर भी समय होने पर भी उन्हें करने से मना कर दिया जाता है।
व्यक्तिगत रूप से मुझे लगता है कि कोई भी प्रोग्रामर जो अपने कोड को देख सकता है, जो उन्होंने कुछ समय पहले लिखा था और इसमें कुछ गलत नहीं मिला, यह अच्छा नहीं है। "थोड़ी देर" अनुभव के साथ पैमाने पर कर सकते हैं ... मैं कुछ हफ़्ते के बीच एक या एक साल तक कहूँगा।
जब मैं एक छोटी सी दुकान में एक टीम लीडर था, तो कई लोग थे जिन्हें मुझे आश्वस्त करना पड़ा (न तो मेरे या मेरे प्रत्यक्ष पर्यवेक्षक के पास एक टन रेड टेप और प्रलेखन के ढेर के बिना समाप्ति की क्षमता थी ।) या कोई अनुबंध नहीं होने के लिए। वर्तमान सगाई के अंत में। कुछ प्रकार के प्रगणित भी अन्य टीम के नेताओं के लिए काम करते थे, और उन्होंने बहुत ही समान दृश्य लिया। चीजें जो लोगों को मेरी पुस्तक में "खराब प्रोग्रामर" श्रेणी में ले गईं:
ये सिर्फ कुछ बुरे चरित्र हैं जिनके साथ मुझे काम करना था ...।
/ एस / बेजेंटसॉफ्ट
ज्ञान / क्षमता की स्पष्ट कमी के अलावा, एक प्रोग्रामर एक बुरा है, अगर उनका कोड पढ़ने और / या उससे अधिक बनाए रखने के लिए कठिन है।
जब कोई और उसका कोड नहीं पढ़ सकता है। इससे कोई फर्क नहीं पड़ता कि आप कितने उज्ज्वल हैं; कोई प्रोग्रामर एक द्वीप नहीं है।
मेरे लिए प्रोग्रामर के लिए दो श्रेणियां हैं - सोलो और टीम।
खराब सोलो प्रोग्रामर हैं
खराब टीम प्रोग्रामर वे हैं जो खराब सोलो प्रोग्रामर श्रेणी में आते हैं, जिनमें शामिल हैं
स्वीकार करने के लिए तैयार नहीं वे जवाब और / या चीजों को देखने के लिए तैयार नहीं जानते हैं।
यदि आप इसे नहीं जानते हैं, तो हार न मानें - इसे समझें और इसे पूरा करें।
मेरे अनुभव में एक बड़ा चेतावनी संकेत है, जब वे अपनी हैक की टिप्पणी नहीं करते हैं ...।
आप जानते हैं कि मेरा क्या मतलब है: जब आप कुछ बहुत ही हैक करने के लिए मजबूर होते हैं क्योंकि ऐसा करने का कोई बेहतर तरीका नहीं है।
अच्छे प्रोग्रामर ऐसा करने से नफरत करेंगे और इनलाइन टिप्पणियों में कहेंगे कि उन्हें उस तरह के हैक में डालने से कितना नफरत है, लेकिन कोई विकल्प नहीं है। खराब प्रोग्रामर सिर्फ हैक में डालेंगे और टिप्पणी नहीं करेंगे।
स्पष्ट रूप से जब कोई प्रोग्रामर A LOT कोड लिखता है। बहुत बड़े फ़ंक्शंस, शायद कॉपी / पेस्ट लाइन्स या कोड ब्लॉक, जिस तरह से अधिक इफ़्स का उपयोग करना आवश्यक हो, आदि। यह इसलिए हो सकता है क्योंकि प्रोग्रामर एक मानक फ़ंक्शन को यह जानने के लिए करता है कि वह क्या चाहता है, लेकिन बहुत समय नहीं है।
मैं अपना जवाब यहाँ एक बंद डुप्लिकेट विषय से ले रहा हूँ जिसने पूछा कि क्या आप पहचान सकते हैं कि क्या आप एक खराब प्रोग्रामर हैं? अन्य विषय को बंद किया जा रहा था क्योंकि मैं अपनी प्रतिक्रिया तैयार कर रहा था। मेरा उत्तर अधिक प्रश्न को सीधे संबोधित करता है क्योंकि यह अन्य पूछने वाले द्वारा प्रकाशित किया गया था और यदि आप समझते हैं कि यह बेहतर होगा।
आह! मेरे हिस्से में यह पहले से व्यस्त विषय को जोड़ना नहीं चाहता था, लेकिन मेरा दूसरा भाग जीत गया! यह क्यों जीता; मैं इस विशेष बहुभाषी में अभी और शब्द जोड़ने के लिए क्यों परेशान हूँ? खैर, क्योंकि, कुछ हद तक, मैं पिछले कई टिप्पणीकारों की तुलना में इस पर थोड़ा अलग हो सकता हूं।
कंप्यूटर में द्विआधारी महान काम करता है: यह '1' या '0', "ऑन" या "ऑफ" है। हम उन प्रसिद्ध दो राज्यों का उपयोग करके बहुत सी जानकारी को सार और सांकेतिक शब्दों में बदल सकते हैं। लेकिन, यह मानव मामलों के लिए इतना अच्छा काम नहीं करता है: "अच्छा" या "बुरा," "समझदार" या "पागल," "अच्छा" या "बुरा," "स्मार्ट" या "बेवकूफ," "वसा" या "पतला," "जीवित" या "मृत?" इस प्रकार के ध्रुवीकरण के मूल्यांकन ने हमेशा ही देखभाल करने वाले मानव को बुरी तरह असंतुष्ट छोड़ दिया है। मैं जो भी माप योजनाओं को लागू करने के लिए चुनता हूं, मैं आमतौर पर यह पाता हूं कि इस तरह के स्टार्क विरोधाभासों के जवाब वास्तव में एक ऐसे ध्रुव और दूसरे के बीच एक निरंतरता के साथ कहीं झूठ होते हैं, न कि अंत में।
मैं काफी समय से, ध्रुवीकरण की दिशा में इस प्रवृत्ति से लड़ रहा हूं, और मेरा व्यक्तिगत समाधान यह है कि मैं ऐसे किसी भी मूल्यांकन के लिए तीन शब्दों को लागू करना कहीं अधिक उपयोगी समझता हूं: " किस हद तक!"
तो, आपके प्रश्न का मेरा उत्तर यह सुझाव देना है कि आप इसे फिर से लिखें और अपने आप से यह पूछें: "मैं किस डिग्री के लिए एक बुरा प्रोग्रामर हूं?" या, और भी बेहतर, इसे दूसरी दिशा में पूछने के लिए: "मैं किस डिग्री के लिए एक अच्छा प्रोग्रामर हूं?" यदि आप सच्चाई का पीछा करते हैं, तो आप शायद "खराब" प्रोग्रामर और "अच्छा" एक होने के बीच एक निरंतरता के साथ कहीं न कहीं खुद का पता लगाएंगे। फिर, एक बार जब आप लगभग यह पता लगाने का प्रबंधन करते हैं कि आप इस रास्ते पर कहाँ हैं, तो आप शायद "अच्छे" अंत के करीब एक बिंदु की पहचान कर सकते हैं — एक बिंदु जहाँ आप निकट भविष्य में खुद को खोजना चाहेंगे।
यदि आप उस बिंदु को बहुत दूर सेट नहीं करते हैं, तो आप शायद अपने हिंद अंत को गियर में पा सकते हैं और इसे उस दिशा में आगे बढ़ाना शुरू कर सकते हैं। यदि आप इसे कई बार सरल हेयोरिस्टिक एल्गोरिदम को पुनरावृत्त करने का प्रबंधन करते हैं, तो आप जल्द ही इस प्रश्न को फिर से पूछने के लिए अपने आप को बहुत व्यस्त प्रोग्रामिंग पा सकते हैं! ओह, और यदि आप किसी कुंजीपटल पर कोडिंग कोड जितनी जल्दी और जितनी बार आप कर सकते हैं, उतनी तेजी से प्रगति करेंगे; और, यदि आप अभी और फिर थोड़ा ब्रेक लेते हैं, तो अपने साथियों द्वारा लिखे गए कुछ उच्च गुणवत्ता वाले कोड को पढ़ें! गतिशील ओपन सोर्स विकास के इन दिनों में, आपके पास सीखने के लिए स्वतंत्र और अति सुंदर कोड की कोई कमी नहीं है!
इसलिए, मैं आपको दृढ़ता से सलाह देता हूं कि आप मेरे तीन छोटे शब्दों की कोशिश करें, "किस हद तक", और देखें कि वे आपको कितनी अच्छी दिशा में ले जा सकते हैं!
कोई है जो कहता है "यह नहीं किया जा सकता है"।
मेरी राय में यह समस्या हल करने के बारे में है, उपकरण वास्तव में काम करने की तुलना में बहुत कम प्रासंगिक होना चाहिए। यदि मुझे MS-Access या असेंबली भाषा का उपयोग करके इसे हल करना है, तो यह समय और धन की बात है, "यह नहीं हो सकता है"
एक चेतावनी संकेत बहुत कुछ करने के शैक्षणिक और "उचित" तरीके पर केंद्रित है, और काम पूरा करने पर पर्याप्त ध्यान नहीं है।
एक तात्कालिक मान्यता संकेत है कोई कह रहा है: "मुझे समझ नहीं आता कि यह काम क्यों नहीं करता है। मैंने सब कुछ ठीक किया।"
एक बात जो एक नौसिखिया प्रोग्रामर से एक खराब प्रोग्रामर को अलग करती है, वे जिस भी भाषा और एपीआई में काम कर रहे हैं, उसमें अपने पसंदीदा सिस्टम को लागू करने की जिद है।
मुझे एक बार एक ऐसी प्रणाली विरासत में मिली थी, जहां पूर्व डेवलपर ने (जावा में) फिर से लागू किया, एशटन टेट डीबीएस III + एपी का एक बड़ा सेट कस्टम डीबीएफ एक्सेस लाइब्रेरी के शीर्ष पर था। जावा संग्रह ढांचे में से कोई भी उपयोग नहीं किया गया था।
ऐसा इसलिए था कि वह एक जावा / स्विंग ऐप लिख सकता था जो डीबीएएस III + (या संभवतः क्लिपर) ऐप की तरह दिखता और काम करता था।
इस प्रणाली में उसने जो एप्स लिखे थे, उनमें लाइट-बार मेन्यू थे और विकल्प पर लाइट-बार को खोलने पर नीचे की तरफ बटन के साथ एक पूर्ण विंडो फॉर्म खुलेगा। यह 1980 के दशक में एक छोटी टाइम मशीन की तरह था।
वह व्यक्ति स्पष्ट रूप से एक कुशल डेवलपर था। वह पर्याप्त जानता था कि वह उस परियोजना के समय सीमा में स्वयं उस पूरे सिस्टम को लिखने में सक्षम था। वह इसे कुछ अन्य आंतरिक प्रणालियों पर फिर से उपयोग करने में सक्षम था।
लेकिन वह एक भयानक प्रोग्रामर थे कि उनके कोड ने उन प्रणालियों की सुविधाओं का दुरुपयोग किया, जिन पर उन्होंने काम किया था। वह जावा / स्विंग / एसक्यूएल सीखने की तुलना में संदिग्ध लाभ के कस्टम दायित्व पर 3 महीने बिताने के लिए तैयार था।