साक्षात्कारकर्ता आवेदक को कुछ कोड पढ़ने के लिए क्यों नहीं कहते हैं? [बन्द है]


13

मैंने अपने जीवन में एक दर्जन साक्षात्कार लिए (मैं स्नातक होने वाला हूं) और मुझे आश्चर्य है कि मुझे केवल एक बार कुछ कोड पढ़ने और समझाने के लिए क्यों कहा गया था। मोटे तौर पर, 90% नौकरियां ज्यादातर मौजूदा प्रणालियों को बनाए रखने के बारे में हैं। IMO किसी और के कोड को पढ़ने की क्षमता एक महत्वपूर्ण कौशल है।

साक्षात्कारकर्ता इसकी जाँच क्यों नहीं करते हैं? *

* मेरे दोस्तों में मैं केवल एक ही हूँ जो कुछ कोड की समीक्षा करने के लिए कहा गया था।


4
मुझे एक साक्षात्कार में कुछ सी कोड को एक बार पढ़ने के लिए कहा गया था, और मैंने कोड में कई खराब प्रथाओं को इंगित किया: स्मृति को यहां आवंटित किया गया और वहां से मुक्त किया गया, आदि यह उनका उत्पादन कोड था। मुझे कोई प्रस्ताव नहीं मिला।
केविन क्लाइन

1
केवल इसलिए बंद करने के लिए मतदान किया क्योंकि हम जवाब नहीं देते कि अन्य लोगों ने कुछ किया या क्यों नहीं किया। सभी के लिए हम जानते हैं कि वह सोर्सिंग-कोड रीडिंग चरण में आने से पहले हायरिंग प्रक्रिया से समाप्त हो गया था। यदि इसे 'साक्षात्कारकर्ताओं की आवश्यकता होनी चाहिए ...' में बदल दिया गया था, तो यह एक उपयुक्त प्रश्न हो सकता है।
ग्रैंडमास्टरबी

1
@GrandmasterB साक्षात्कारकर्ता भी इस साइट पर दिखाई देते हैं। यदि वे जानबूझकर कोड-पढ़ने के कौशल की तलाश नहीं करते हैं, तो इसके लिए एक अच्छा कारण हो सकता है।
इज़काता

कृपया टिप्पणियों में विस्तारित चर्चा से बचें। यदि आप इस प्रश्न के गुणों पर आगे चर्चा करना चाहते हैं, तो कृपया मेटा पर एक प्रश्न खोलें जहां ऐसी चर्चा है। धन्यवाद।
maple_shaft

मैं जोड़ना चाहूंगा कि मुझसे पहले कोड पढ़ने और खराब प्रथाओं और किसी भी त्रुटि को इंगित करने के लिए कहा गया है।
एंडी

जवाबों:


10

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


4

लघु संस्करण

यदि नौकरी में किसी एप्लिकेशन को बनाए रखना होता है, तो इंटरव्यू के दौरान आपको जो कौशल परीक्षण करने की आवश्यकता होती है, वह हैं:

  • बड़े कोडबेस को उसके डॉक्यूमेंटेशन, यूनिट टेस्ट आदि के साथ समझने की क्षमता ।

  • कोड को फिर से भरने और सब कुछ तोड़ने के बिना परिवर्तन लाने की क्षमता ।

लोगों को कोड पढ़ने के लिए कहने से आपको उन क्षमताओं का मूल्यांकन करने में मदद नहीं मिलेगी।

दीर्घ संस्करण

क्या आपने राइटिंग कोड पूछा था? यदि हाँ, जैसा कि साइन ने उनके उत्तर में उल्लेख किया है , यह पर्याप्त है। यदि हम थोड़ा सामान्य करते हैं, तो एक व्यक्ति जो स्पष्ट रूप से लिखता है, स्रोत कोड को समझना आसान है, अन्य लोगों द्वारा लिखे गए स्रोत कोड को पढ़ने में सक्षम होगा।

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

रखरखाव कार्य के लिए कोड पढ़ने के लिए नहीं कहने के लिए कुछ और कारण हैं:

1. मज़बूती से करना मुश्किल है

अगर आप एक साक्षात्कारकर्ता हैं, तो आप क्या करेंगे? अपने उम्मीदवारों को कुछ कोड पढ़ें। क्या कोड है? किस भाषा में? कितनी अच्छी या बुरी तरह से लिखी गई? टिप्पणियों के साथ या बिना? प्रलेखन के साथ या बिना?

इससे भी महत्वपूर्ण बात यह है कि यह उम्मीदवार के बारे में क्या बताता है? कोडबेस के साथ यह कितना अच्छा संबंध है?

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

अब आप इस कोडबेस को बनाए रखने के लिए एक डेवलपर को काम पर रख रहे हैं। एक साक्षात्कार के दौरान, क्या आप विरासत का एक टुकड़ा (बदसूरत अप्रयुक्त) कोड देंगे, या उस कोड का टुकड़ा जो पिछले डेवलपर द्वारा वापस ले लिया गया था?

क्या आप दस्तावेज देंगे? प्रलेखन पढ़ने के लिए, उम्मीदवार को कम से कम कुछ घंटे खर्च करने होंगे। यह एक साक्षात्कार के दौरान करना असंभव बनाता है।

2. कोड का छोटा टुकड़ा पढ़ना किसी परिचित प्रोजेक्ट के रीडिंग कोड के समान नहीं है

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

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

किसी व्यक्ति को खरोंच से कोड का एक छोटा टुकड़ा पढ़ने के लिए कहने से, आप यह परीक्षण नहीं कर रहे हैं कि यह व्यक्ति हजारों LOC के परिचित, दस्तावेज वाले कोडबसे से कैसे निपट पाएगा

3. सोर्स कोड को बनाए रखना केवल इसे पढ़ना नहीं है

जब आप एक कोडबेस बनाए हुए हैं, तो आप इसे संशोधित कर रहे हैं । एक डेवलपर जो सिर्फ कोड पढ़ता है वह अपनी कंपनी के लिए उपयोगी कुछ भी नहीं लाता है।

उपयोगी कौशल कोड को रिफलेक्टर करने की क्षमता है , इकाई परीक्षणों को जोड़ने के लिए , किसी परिवर्तन के प्रभाव की भविष्यवाणी करने के लिए , आदि आप साक्षात्कार के दौरान किसी व्यक्ति को कोड पढ़ने के लिए कहकर उन कौशल का परीक्षण नहीं करते हैं।


2

पढ़ना इस तथ्य पर आधारित एक धारणा है कि लेखन के लिए क्षमता मौजूद है। किसी भी भाषा में अवधारणा पर विचार करें। प्रोग्रामिंग मानव और मशीन के बीच संवाद करने के लिए सिर्फ एक भाषा है। मानव से मानव संचार पर विचार करें। यदि आप किसी को जापानी के लिए दुभाषिया बनने के लिए काम पर रख रहे हैं, तो क्या यह इस कारण से नहीं होगा कि यदि वे किसी विशेष विषय पर 1,000 शब्द का निबंध लिख सकते हैं तो वे उसे पढ़ पाएंगे?

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

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


इसे पढ़ें, हाँ, इसे समझें? ... जरूरी नहीं।
jmoreno

1
@ जोरमेनो: शायद नहीं, लेकिन यह देखते हुए कि कितना कीमती समय है, अगर आप किसी उम्मीदवार को कुछ ऐसा ही लिखने के लिए कहें, तो आप उससे अधिक ज्ञान प्राप्त कर सकते हैं, जितना आप उन्हें कुछ जटिल पढ़ते हुए देख सकते हैं।
जोएल एथर्टन

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

1
@DanMonego: मैं आपकी बात समझता हूं, और ऐसा नहीं है कि मैं इससे बिल्कुल असहमत हूं, लेकिन सवाल यह है कि अधिकांश साक्षात्कार में यह शामिल नहीं है कि पढ़ना क्या नहीं है, पढ़ने का मूल्य क्या है। अधिकांश साक्षात्कार में तुच्छ कार्यान्वयन से अधिक शामिल नहीं है चाहे वह समय की प्रकृति के कारण पढ़ना या सही हो।
जोएल एथरटन

1

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

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

इसलिए, खराब कोडर्स कोड पढ़ सकते हैं, लेकिन वे कोड को अच्छी तरह से नहीं लिख सकते हैं। उम्मीदवारों के काम के उदाहरण देखने के लिए या साक्षात्कार में कोड लिखने के लिए एक उम्मीदवार से पूछना उनके कौशल के बेहतर संकेतक हैं। यदि वे स्वच्छ संक्षिप्त कोड लिख सकते हैं, तो संभावना है कि वे पढ़ सकते हैं कि कोड अच्छी तरह से था।

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

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