मेरी कंपनी में मेरे अनुभव से जहां मैंने कई साक्षात्कार किए, एक अच्छा मौका है कि साक्षात्कार करने वाले व्यक्ति को यह ठीक से करने का कोई सुराग नहीं है। इसलिए उन्होंने तकनीकी प्रश्नों का एक सेट तैयार किया और उस के एक अंक की गणना की और अपना रिज्यूम बनाया। हालांकि इसमें कई कमियां हैं और निम्नलिखित कारणों से नहीं किया जाना चाहिए:
आप बिंदु ज्ञान पूछें। यदि प्रोग्रामर उस क्षेत्र में कभी कुछ करने के लिए नहीं होता है, तो वह अभी भी एक उत्कृष्ट सहकर्मी हो सकता है, लेकिन बस उस विशेष उत्तर को नहीं जानता है। इसके विपरीत: यदि किसी ने साक्षात्कार के लिए तैयारी की थी और नेट पर उस विशेष प्रश्न का उत्तर पाया था, तो आपको सही उत्तर मिल जाएगा, लेकिन उस व्यक्ति के पास वास्तविक विषय के बारे में कोई सुराग नहीं हो सकता है।
नौकरी के साक्षात्कार में लोग घबरा जाते हैं। मस्तिष्क में घबराहट होने पर कई उच्च-स्तरीय क्षेत्रों (जैसे तर्क) को बंद करने की यह महान विशेषता है, जिसका अर्थ है: यदि आप घबराए हुए हैं, तो आप दिन-प्रतिदिन की स्थिति में आपके द्वारा दिए गए उत्तरों की गुणवत्ता प्रदान नहीं कर सकते हैं। कुछ लोग एक साक्षात्कार जैसी तनावपूर्ण स्थिति से निपट सकते हैं, कई नहीं कर सकते हैं।
एक एकल, सही उत्तर के साथ, आप उस विशेष उत्तर को खोजने के लिए उस व्यक्ति के कौशल का परीक्षण करते हैं। यह कई कौशलों में से एक है, जिसकी सहकर्मी को जरूरत होती है, लेकिन केवल एक को ही नहीं। इसलिए उन प्रश्नों में से एक या दो ज्ञान के उस क्षेत्र का परीक्षण करने के लिए पर्याप्त होना चाहिए, और फिर अन्य कौशलों को क्वियर किया जाना चाहिए। एक साक्षात्कार जिसमें केवल समस्या-समाधान वाले प्रश्न होते हैं, एक ही कौशल को बार-बार परखते हैं।
अच्छा प्रोग्रामिंग कार्य प्रश्न क्या हैं?
उन प्रसिद्ध "आप एक छोटा कार्यक्रम लिख सकते हैं" प्रश्नों में बहुत बड़ी समस्या है कि अधिकांश प्रोग्रामर अपनी आईडीई की मदद के बिना कोड की एक भी पंक्ति नहीं लिख सकते हैं। लेकिन वह दिन-प्रतिदिन की कार्य स्थितियों में कोई समस्या नहीं है, क्योंकि प्रोग्रामर के पास हमेशा उसकी आईडीई की मदद होती है। तो "त्रुटि का पता लगाएं", "कोड की 50 पंक्तियां लिखें ..." जैसी चीजों को पूछते हुए या सरल प्रश्नों को भी ध्यान में रखने की आवश्यकता है, कि आवेदक के पास अपने उपकरण (आईडीई, Google) उपलब्ध नहीं हैं।
उदाहरण के लिए मैं आपको मूल रूप से 1 मिनट के भीतर किसी भी प्रश्न का उत्तर दे सकता हूं अगर मुझे Google मेरी मदद कर रहा है, लेकिन इंटरनेट कनेक्शन के बिना मैं असहाय दिखाई देता हूं। मैं उस आउटसोर्स मेमोरी को कॉल करता हूं, और मुझे बाधा डालने के बजाय, यह मुझे इस बात पर ध्यान केंद्रित करने में मदद करता है कि वास्तव में क्या महत्वपूर्ण है - अंडरलेइंग मैकेनिक्स को समझना - क्योंकि बाकी सब कुछ देखा जा सकता है। लेकिन मुझे किसी भी यादृच्छिक एपीआई से विवरण के बारे में न पूछें, क्योंकि मैं उन लोगों को नहीं जानता, मेरे पास इसके लिए Google है।
उस ने कहा, एक अच्छा प्रोग्रामिंग कार्य प्रश्न को एपीआई, या विशेष कोडिंग कौशल जानने पर ध्यान केंद्रित नहीं करना चाहिए जब तक कि यह नौकरी के लिए पूर्ण आवश्यकता न हो। ज्ञान प्राप्त किया जा सकता है, इसलिए यह पता लगाना बेहतर है कि उस व्यक्ति को ज्ञान प्राप्त करने में कितना अच्छा है, यह पूछने के लिए कि वह पहले से ही क्या जानता है।
एक प्रोग्रामिंग कार्य के लिए एक अच्छा प्रश्न छोटा, सरल होना चाहिए, हर भाषा में कोड की केवल कुछ पंक्तियों के साथ कोडित होने में सक्षम होना चाहिए और यह - विशेष रूप से - आपको जितना संभव हो उतना बताना चाहिए कि व्यक्ति कैसे काम करता है और उत्तर पाता है। उदाहरण:
"अपनी पसंद की भाषा में एक फ़ंक्शन लिखें, जो पूर्णांकों की एक सरणी लेता है और उन्हें इस तरह से फिर से आदेश देता है कि पहला पूर्णांक बाद में होता है, और अन्य सभी तदनुसार बदलते हैं।"
किसी भी आवेदक को इस बिंदु पर पूछना चाहिए: "क्षमा करें ... क्या आप कार्य को समझा सकते हैं?"। क्योंकि किसी भी प्रोग्रामर को यह स्पष्ट विवरण नहीं दिया गया है कि उसे क्या करना है। इसके बाद स्पष्टीकरण दिया गया है, कि सवालों के कोड को सरणी के कंटेंट की बाईं-शिफ्ट को ओवरफ्लो के साथ दाईं ओर जोड़ा जाना चाहिए।
यह कार्य इतना सरल है, कि जिसने भी प्रोग्रामिंग स्तर के किसी भी रूप में स्नातक किया है, वह ठीक से उत्तर देने में सक्षम होना चाहिए। यह ध्यान में रखता है कि प्रोग्रामर को अपने उपकरणों के बिना काम करना पड़ता है और यह नर्वस होने से तार्किक रूप से सोचने की क्षमता कम हो जाती है। हालांकि यह अभी भी आपको बताता है कि लोग प्रश्नों को हल करने के तरीके से समस्याओं का समाधान करते हैं और जिस तरह से लोग इसे कैसे संपर्क करते हैं, सिर्फ इसलिए कि एक बाएं-शिफ्ट आम 'लेफ्ट-टू-राइट' वृत्ति के खिलाफ है और लोगों को सोचने के लिए मजबूर करता है एक पल।
इस सवाल के कई संभावित उत्तर हैं, इसलिए कोड विकसित करने के तरीके पर करीब से नज़र डालना महत्वपूर्ण हिस्सा है, न कि अगर समाधान वास्तव में काम करेगा। क्या आवेदक शून्य के लिए परीक्षण करता है? अतिप्रवाह कैसे संग्रहीत किया जाता है? क्या एक लूप या एक मेम-सेट का उपयोग किया जाता है? आवेदक कोड शुद्धता की पुष्टि कैसे करता है? यह एक सरल प्रश्न आपको पूरी जीवनी बताता है कि वह व्यक्ति कैसे काम करता है।
सामान्य ज्ञान के अच्छे प्रश्न क्या हैं?
अच्छे प्रश्नों का उत्तर देना आसान है, बड़ी मात्रा में उत्तरों (तथाकथित 'खुले प्रश्न') की अनुमति दें और आपको आवेदक के बारे में जितना संभव हो उतना सीखने की अनुमति दें, जितना आपके पास कम समय है।
उदाहरण:
(C ++ प्रोग्रामर से पूछते हुए): "C ++ के अलावा और कौन सी भाषाएं जानते हैं?"
यह एक प्रवेश स्तर का प्रश्न है, जो आवेदक को इस समय जमानत देने का उचित मौका देता है, क्या उसे पूछे गए विषय के बारे में कुछ भी पता नहीं होना चाहिए। इस बिंदु पर एक 'नहीं' उसे / उसे कई और सवालों से परेशान करने से बेहतर है कि वह / वह सभी के साथ जवाब दें: "क्षमा करें, मुझे उसके बारे में कुछ नहीं पता है।"
इसके अलावा मैं आपको सबसे पहले बताता हूं कि वह कौन सी अन्य भाषाएं जिन्हें वह व्यक्ति जानता है, इसके अलावा आप सीखते हैं कि उस व्यक्ति को प्रोग्रामिंग दुनिया के बारे में अधिक व्यापक दृष्टिकोण प्राप्त करने में कितनी दिलचस्पी है, या यदि आपके पास केवल एक विलक्षण भाषा (और इसलिए सुविधा / तकनीक) है ) राय।
(उसके बाद अगला, वह जावा को बताता है): अपने ओपिनियन में सी ++ और जावा के बीच शीर्ष तीन अंतर क्या हैं?
यह एक खुला प्रश्न है जो कई उत्तरों की अनुमति देता है, इसलिए आवेदक के पास कम से कम तीन खोजने का एक अच्छा मौका है। (व्यक्तिगत राय) शीर्ष तीन के लिए पूछना न केवल संभावित उत्तरों को सीमित करता है, बल्कि आवेदक को प्राथमिकता के आधार पर छाँटने के लिए भी बाध्य करता है। फिर भी इसका जवाब देना आसान है (या होना चाहिए)।
यह एक सरल प्रश्न है जो विभिन्न प्रोग्रामिंग भाषाओं के बारे में बहुत सारे गहन ज्ञान का परीक्षण करता है। उन विषयों का ज्ञान वास्तव में कितना गहरा है? उन उत्तरों से आप प्रोग्रामिंग भाषाओं के अंडरलेइंग मैकेनिक्स के ज्ञान और वास्तविक समझ के बारे में बहुत कुछ बता सकते हैं। उस व्यक्ति ने गंदे विवरणों के साथ कितना खर्च किया, या यदि वह / वह सिर्फ एक व्यक्ति है जो विभिन्न एपीआई कार्यों को एक साथ जोड़ता है कोई वास्तविक सुराग नहीं है जो उनके नीचे होता है।
प्रवेश स्तर के प्रश्नों की इस अवधारणा को सरल और गहन ज्ञान के सवालों के बाद इस्तेमाल किया जा सकता है। हमेशा इस योजना में: जमानत आउट प्रश्न, सत्यापन प्रश्न, गहन प्रश्न। एक अन्य उदाहरण (जावा साक्षात्कार से):
- "आप मल्टी-थ्रेडेड विकास के साथ अपने अनुभव को कैसे रेट करेंगे?"
- "कृपया ध्यान दें कि बहु थ्रेडेड एप्लिकेशन को विकसित करते समय आपके विचार में शीर्ष तीन सबसे महत्वपूर्ण बातें क्या हैं।"
- "कृपया जावा एपीआई से तीन वर्गों का नाम लें जो आपको उन अनुप्रयोगों को विकसित करने में मदद कर सकते हैं और उन पर एक संक्षिप्त विवरण दे सकते हैं जो उनके लिए उपयोग किए जाते हैं।"
ये तीन प्रश्न आपको किसी भी तकनीकी प्रश्न से अधिक बताएंगे, जो आवेदक उन विषयों के बारे में वास्तव में जानता है, जबकि बिंदु-ज्ञान और तनाव के स्तर पर विचार करने के लिए उचित है।
तो अगली बार जब कोई आपसे 20 प्रश्न पूछ रहा है, तो आप जानते हैं कि उसे मूल रूप से यह पता नहीं है कि किसी का सही तरीके से साक्षात्कार कैसे करें। ;)