वास्तविक नौकरी में लागू किए गए विशिष्ट साक्षात्कार प्रश्नों में कौशल का उपयोग कैसे किया जाता है? [बन्द है]


13

एसक्यूएल और सी # ऐप देव नौकरियों के लिए, साक्षात्कारकर्ता आमतौर पर शुद्ध सी और पॉइंटर्स का उपयोग करके पेड़, ग्राफ और लिंक्ड सूची ट्रैवर्स के बारे में सवाल पूछते हैं। मैंने अपनी नौकरी में 3 साल बिताए हैं, मैंने वास्तव में कभी नहीं किया

दिए गए नोड के दाईं ओर 1 नोड का मार्ग खोजें जो दिए गए नोड का एक बहु है

उदाहरण के लिए

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


5
यदि आप सबसे बुनियादी डेटा संरचनाओं के साथ संघर्ष करते हैं, तो आप अधिकांश समय प्रोग्रामिंग का संघर्ष करेंगे।
मर्ट अक्काया

1
संभावित डुप्लिकेट: प्रोग्रामर.स्टैकएक्सचेंज.
com

जवाबों:


15

नीचे जोएल के कुछ जवाब पढ़ें।

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

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

http://www.joelonsoftware.com/articles/ThePerilsofJavaSchools.html

http://www.joelonsoftware.com/articles/fog0000000319.html

"... मशीन के करीब होने वाला कम से कम एक सेमेस्टर खर्च करते हैं या आप कभी भी उच्च स्तरीय भाषाओं में कुशल कोड नहीं बना पाएंगे। ..."

"... आप अंधविश्वास पर आधारित प्रोग्रामिंग कर रहे हैं, जहां तक ​​मेरा सवाल है: एक मेडिकल डॉक्टर जो बुनियादी शरीर रचना विज्ञान नहीं जानता है, फार्मा सेल्स बेब ने जो काम किया है उसके आधार पर नुस्खे बताएंगे।"

http://www.joelonsoftware.com/articles/CollegeAdvice.html


22

वे नहीं हैं। कई साक्षात्कार ऐसे लोगों द्वारा किए जाते हैं जो कुशल डेवलपर्स की तलाश करना नहीं जानते हैं, और यह नहीं जानते कि उन्हें क्या सवाल पूछने चाहिए या क्या नहीं।

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

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

अच्छे (तकनीकी) प्रश्न, बुरे प्रश्न

साक्षात्कार के दौरान, आप बहुत अच्छे से लेकर बेहद बुरे तक के प्रश्नों का सामना कर सकते हैं:

  1. (हानिकारक) "उस भाषा में लिखे गए सबसे लंबे समय तक काम करने वाले कार्यक्रम की पंक्तियों में लंबाई क्या है?"

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

    यह उदाहरण निरर्थक लेकिन औसत दर्जे की चीजों से अलग है, जिन्हें मैंने अपने उत्तर की शुरुआत में उद्धृत किया है। इधर, साक्षात्कारकर्ता यह भी दर्शाता है कि उसके पास मेट्रिक्स की सबसे बुनियादी समझ नहीं है, जो कि हानिकारक होने के लिए प्रसिद्ध है।

  2. (बुरा) "कौन डेनिस रिची है?"

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

  3. (अच्छा) ".NET 4.5 की नई विशेषताएँ क्या हैं?"

    यह सवाल डेनिस रिची के बारे में बहुत दिलचस्प है। यदि उम्मीदवार .NET 4.5 में नई सुविधाओं के बारे में बात नहीं कर सकता है, तो वह खुद को C # डेवलपर क्यों कहता है? ऐसे ज्ञान की कमी:

    • दिखाता है कि व्यक्ति को न तो प्रोग्रामिंग भाषा में दिलचस्पी हो सकती है, न ही .NET समुदाय,

    • इंगित करता है कि व्यक्ति को C # /। NET की सुविधाओं के बारे में कुछ महत्वपूर्ण ज्ञान की कमी हो सकती है। अन्य डेवलपर्स यदि दैनिक नहीं, तो कम से कम अक्सर उपयोग करते हैं।

    जेरी कॉफिन के उत्तर को भी देखें जिसमें इस तरह के प्रश्नों का अधिक विस्तृत विश्लेषण है।

  4. (औसत) "कौन सा तेज है, एसएसडी या रैम?"

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

  5. (औसत) "कैसे स्टैक और कतार लागू की जाती हैं?"

    इस तरह के प्रश्नों के बारे में आप बात करते हैं। वे सैद्धांतिक हैं, शायद बहुत सैद्धांतिक भी, लेकिन यह जानना कि हुड के तहत क्या हो रहा है, बेहतर कोड लिखने में मदद कर सकता है।

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

  6. (अच्छा) "आप पुनरावृत्ति का उपयोग किए बिना एक पेड़ से कैसे चल सकते हैं?"

    यदि उम्मीदवार इस सवाल का जवाब देता है, तो फिलो / एफआईएफओ के बारे में बात करना और ट्री ट्रैवर्सल के लिए एक पुनरावृत्ति बनाम स्टैक का उपयोग करने के लाभों और कमियों के बारे में, यह वास्तव में कोई फर्क नहीं पड़ता कि वह पिछले प्रश्न का उत्तर देने में असमर्थ था।

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

अच्छे तकनीकी प्रश्न कैसे पूछें?

kojiro की टिप्पणी दिलचस्प है और एक लंबे समय के उत्तर की हकदार है:

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

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

यहां तीन संकेत दिए गए हैं जो मदद कर सकते हैं:

  1. एक दोस्त / सहयोगी आप कुशल होना करने के लिए विश्वास करते हैं और पूछने का पता लगाएं उसे समीक्षा करने के लिए। इसके लिए काफी भरोसे की जरूरत होती है, लेकिन इससे आपकी कंपनी को काफी फायदा हो सकता है।

  2. एक सलाहकार की तलाश करें जिसे आप कुशल मानते हैं और उसे आपकी सहायता करने के लिए कहें या साक्षात्कार का तकनीकी हिस्सा करें।

  3. Google में "साक्षात्कार प्रश्न" टाइप करें। यह बहुत अच्छी तरह से काम करता है, और आमतौर पर संभावित उत्तर समझाता है। उदाहरण:

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

    • एसक्यूएल डेव पिनल द्वारा, हमेशा की तरह उत्कृष्ट।

    • C # : थोड़ा बहुत बुनियादी, लेकिन फिर से, वे 95% उम्मीदवारों को फ़िल्टर करेंगे,

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

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


¹ कुछ डेवलपर्स हैं जो यह समझाने में सक्षम नहीं होंगे कि बी-ट्री क्या है (एक तरफ यह "कुछ डेटा संरचना" है), लेकिन अभी भी सही तरीके से विकसित करने में सक्षम हैं।


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

या आप एक सलाहकार या किसी ऐसे व्यक्ति से सहायता मांग सकते हैं, जिस पर आप विश्वास करते हैं, ताकि आप अन्य डेवलपर्स को नियुक्त कर सकें। बेशक, यह एक सवाल उठता है: आप कैसे जानते हैं कि सलाहकार / मित्र इस कार्य के लिए पर्याप्त योग्य हैं।
आर्सेनी मौरज़ेंको

"कॉलेज में बिताए गए वर्षों की संख्या (अधिक बेहतर है)" ... यह कैसे अच्छा है? इसलिए अगर स्नातक की डिग्री प्राप्त करने में 15 साल लगते हैं तो मैं किसी ऐसे व्यक्ति से बेहतर हूं जो इसे 3 साल में मिला है? "असफल छात्रों" को उन लोगों पर प्राथमिकता नहीं दी जानी चाहिए जो नियमित समय में कॉलेज खत्म कर सकते हैं (मैंने यहां से "असफल छात्र" शब्द लिया , उम्मीद है कि अनुवाद सही है।) यदि आपका मतलब यह नहीं है, तो शायद आपको स्पष्ट करना चाहिए। क्योंकि यह स्पष्ट नहीं है कि आप वहां क्या करना चाहते हैं।
बाकुरिउ

@ बकुरीउ: वास्तव में, इसका मतलब यह है कि मेरा क्या मतलब है। मैंने इसका उत्तर स्पष्ट करने के लिए संपादन किया।
आर्सेनी मूरज़ेंको

2
FWIW मैं आपको .NET 4.5 की सभी नई विशेषताओं के करीब कहीं भी नहीं बता सकता था और मैंने उनमें से कुछ को लिखा था। अगर मैं उस सामान को जानना चाहता हूं, तो मैं एक खोज इंजन में ".NET 4.5 की नई विशेषताएं" टाइप करता हूं और यह मुझे एक सूची देता है।
एरिक लिपर्ट

6

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

  • आप बिंदु ज्ञान पूछें। यदि प्रोग्रामर उस क्षेत्र में कभी कुछ करने के लिए नहीं होता है, तो वह अभी भी एक उत्कृष्ट सहकर्मी हो सकता है, लेकिन बस उस विशेष उत्तर को नहीं जानता है। इसके विपरीत: यदि किसी ने साक्षात्कार के लिए तैयारी की थी और नेट पर उस विशेष प्रश्न का उत्तर पाया था, तो आपको सही उत्तर मिल जाएगा, लेकिन उस व्यक्ति के पास वास्तविक विषय के बारे में कोई सुराग नहीं हो सकता है।

  • नौकरी के साक्षात्कार में लोग घबरा जाते हैं। मस्तिष्क में घबराहट होने पर कई उच्च-स्तरीय क्षेत्रों (जैसे तर्क) को बंद करने की यह महान विशेषता है, जिसका अर्थ है: यदि आप घबराए हुए हैं, तो आप दिन-प्रतिदिन की स्थिति में आपके द्वारा दिए गए उत्तरों की गुणवत्ता प्रदान नहीं कर सकते हैं। कुछ लोग एक साक्षात्कार जैसी तनावपूर्ण स्थिति से निपट सकते हैं, कई नहीं कर सकते हैं।

  • एक एकल, सही उत्तर के साथ, आप उस विशेष उत्तर को खोजने के लिए उस व्यक्ति के कौशल का परीक्षण करते हैं। यह कई कौशलों में से एक है, जिसकी सहकर्मी को जरूरत होती है, लेकिन केवल एक को ही नहीं। इसलिए उन प्रश्नों में से एक या दो ज्ञान के उस क्षेत्र का परीक्षण करने के लिए पर्याप्त होना चाहिए, और फिर अन्य कौशलों को क्वियर किया जाना चाहिए। एक साक्षात्कार जिसमें केवल समस्या-समाधान वाले प्रश्न होते हैं, एक ही कौशल को बार-बार परखते हैं।

अच्छा प्रोग्रामिंग कार्य प्रश्न क्या हैं?

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

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

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

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

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

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

यह कार्य इतना सरल है, कि जिसने भी प्रोग्रामिंग स्तर के किसी भी रूप में स्नातक किया है, वह ठीक से उत्तर देने में सक्षम होना चाहिए। यह ध्यान में रखता है कि प्रोग्रामर को अपने उपकरणों के बिना काम करना पड़ता है और यह नर्वस होने से तार्किक रूप से सोचने की क्षमता कम हो जाती है। हालांकि यह अभी भी आपको बताता है कि लोग प्रश्नों को हल करने के तरीके से समस्याओं का समाधान करते हैं और जिस तरह से लोग इसे कैसे संपर्क करते हैं, सिर्फ इसलिए कि एक बाएं-शिफ्ट आम 'लेफ्ट-टू-राइट' वृत्ति के खिलाफ है और लोगों को सोचने के लिए मजबूर करता है एक पल।

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

सामान्य ज्ञान के अच्छे प्रश्न क्या हैं?

अच्छे प्रश्नों का उत्तर देना आसान है, बड़ी मात्रा में उत्तरों (तथाकथित 'खुले प्रश्न') की अनुमति दें और आपको आवेदक के बारे में जितना संभव हो उतना सीखने की अनुमति दें, जितना आपके पास कम समय है।

उदाहरण:

(C ++ प्रोग्रामर से पूछते हुए): "C ++ के अलावा और कौन सी भाषाएं जानते हैं?"

यह एक प्रवेश स्तर का प्रश्न है, जो आवेदक को इस समय जमानत देने का उचित मौका देता है, क्या उसे पूछे गए विषय के बारे में कुछ भी पता नहीं होना चाहिए। इस बिंदु पर एक 'नहीं' उसे / उसे कई और सवालों से परेशान करने से बेहतर है कि वह / वह सभी के साथ जवाब दें: "क्षमा करें, मुझे उसके बारे में कुछ नहीं पता है।"

इसके अलावा मैं आपको सबसे पहले बताता हूं कि वह कौन सी अन्य भाषाएं जिन्हें वह व्यक्ति जानता है, इसके अलावा आप सीखते हैं कि उस व्यक्ति को प्रोग्रामिंग दुनिया के बारे में अधिक व्यापक दृष्टिकोण प्राप्त करने में कितनी दिलचस्पी है, या यदि आपके पास केवल एक विलक्षण भाषा (और इसलिए सुविधा / तकनीक) है ) राय।

(उसके बाद अगला, वह जावा को बताता है): अपने ओपिनियन में सी ++ और जावा के बीच शीर्ष तीन अंतर क्या हैं?

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

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

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

  1. "आप मल्टी-थ्रेडेड विकास के साथ अपने अनुभव को कैसे रेट करेंगे?"
  2. "कृपया ध्यान दें कि बहु थ्रेडेड एप्लिकेशन को विकसित करते समय आपके विचार में शीर्ष तीन सबसे महत्वपूर्ण बातें क्या हैं।"
  3. "कृपया जावा एपीआई से तीन वर्गों का नाम लें जो आपको उन अनुप्रयोगों को विकसित करने में मदद कर सकते हैं और उन पर एक संक्षिप्त विवरण दे सकते हैं जो उनके लिए उपयोग किए जाते हैं।"

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

तो अगली बार जब कोई आपसे 20 प्रश्न पूछ रहा है, तो आप जानते हैं कि उसे मूल रूप से यह पता नहीं है कि किसी का सही तरीके से साक्षात्कार कैसे करें। ;)


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

5

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

अपने जवाब में, @MainMa ने वर्गीकृत किया ".NET 4.5 की नई विशेषताएं क्या हैं?" एक "अच्छा" प्रश्न के रूप में।

क्षमा करें मैं असहमत हूं। जैसा कि उन्होंने इसे व्यक्त किया है, मैं कहूंगा कि यह सबसे अच्छा सवाल है। एक अच्छा प्रश्न और अधिक पसंद आएगा: "आप जो कोड लिखते हैं वह आज आपके द्वारा एन साल पहले लिखे गए कोड से अलग कैसे है?" (अनुभव के वर्षों से कम एन के कुछ मूल्य के लिए फिर से शुरू पर सूचीबद्ध, अधिमानतः 3 से 5 के आसपास)।

जैसा कि उन्होंने इसे व्यक्त किया है, सवाल याद रखने के बारे में है। क्या इस उम्मीदवार ने फीचर सूची को पूरी तरह से याद किया है? अधिकारों के अनुसार, जो Microsoft की सूची को सबसे सटीक रूप से उद्धृत करता है, उसे विजेता होना चाहिए।

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

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

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


+1। मैं उम्मीद करता हूं कि उम्मीदवार नई विशेषताओं की सूची को नहीं बनाएंगे, लेकिन यह समझाने के लिए कि वे किन विशेषताओं का उपयोग करते हैं और क्यों; लेकिन मेरा जवाब यह पर्याप्त नहीं है, जबकि तुम्हारा करता है।
आर्सेनी मूरज़ेंको

@MainMa: यह मुझे आश्चर्यचकित नहीं करता है - इसलिए मैंने दोहराया "जैसा कि उन्होंने इसे दोहराया है" मेरे उत्तर में एक दो बार।
जेरी कॉफिन

3

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

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

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

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


2

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

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

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

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


1

ये सवाल उन लोगों की स्क्रीनिंग के लिए हैं जो प्रोग्राम नहीं कर सकते। कभी-कभी ऐसे लोग जो प्रोग्राम नहीं कर सकते हैं, लेकिन जानते हैं कि विकास कार्यों के लिए बहुत सारे सामान्य ज्ञान लागू होते हैं, और उन्हें कुछ लिखना होता है जो उपयोगी और गैर-तुच्छ है, एक साक्षात्कार के लिए बहुत समय लेने वाली है।


1

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

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

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


0

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

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

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