FizzBuzz और परे की प्रभावशीलता [बंद]


38

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

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

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

हमने पाया कि 65% से अधिक उम्मीदवारों (38 का नमूना आकार) जो कि FizzBuzz से गुजरता है, FizzBuzz v2.0 पूरी तरह से विफल रहा है आम तौर पर इन उम्मीदवारों का पता बाद में प्रक्रिया में लगाया जाएगा, लेकिन यह पता लगाने का एक अच्छा तरीका है उन्हें जल्दी।

मेरा सवाल यह नहीं है कि FizzBuzz पुराना है या नहीं, बल्कि यह है कि FizzBuzz v2 प्रश्न को विफल करने वाले अभ्यर्थियों की इतनी अधिक संख्या में क्या योगदान हो सकता है।

  • सवाल बहुत अस्पष्ट है?
  • क्या एक साक्षात्कार के माहौल के तनाव से लोगों को गंभीर रूप से सोचने की क्षमता कम हो जाती है कि इस तरह के तुच्छ कार्य को पूरा करने में सक्षम नहीं है?

सवाल:

अपनी पसंदीदा प्रोग्रामिंग भाषा में एक रूटीन लिखिए जो इनपुट के रूप में स्ट्रिंग्स की एक सूची लेगा, और सूची में प्रत्येक स्ट्रिंग के लिए निम्न में से एक करेगा:

  1. यदि स्ट्रिंग में A अक्षर है तो केवल Fizz प्रिंट करें
  2. केवल बज़ को प्रिंट करें यदि स्ट्रिंग में अक्षर बी शामिल है
  3. केवल बज़ बज़ प्रिंट करें यदि स्ट्रिंग में ए और बी दोनों शामिल हैं
  4. केवल FizzFizz को प्रिंट करें यदि स्ट्रिंग में ए और बी दोनों शामिल नहीं हैं
  5. केवल FizzBuzz को प्रिंट करें यदि स्ट्रिंग में केवल A और केवल B शामिल हैं

उम्मीदवारों द्वारा पूछे गए कुछ सामान्य प्रश्न हैं:

  • क्या यह संवेदनशील होना चाहिए?
  • क्या "ए और बी शामिल हैं" का अर्थ है कि ए को बी से पहले आना चाहिए
  • यदि कोई भी अंक नहीं मिला है तो क्या मुद्रित किया जाना चाहिए?
  • यदि एक से अधिक शर्तों को पूरा किया जा सकता है तो क्या होना चाहिए?

हमने पाया कि जिन उम्मीदवारों ने सफलतापूर्वक सवाल पूरा कर लिया, उनमें से अधिकांश ने ऐसा कुछ भी नहीं पूछा, जैसा उन्होंने FizzBuzz किया था।


26
प्रश्न को थोड़ा अस्पष्ट छोड़ दें। इस तरह आप देख सकते हैं कि किन संभावनाओं को स्पष्ट करने के लिए पर्याप्त गम है (जो अपने आप में विकास की कुंजी है)।
थॉमस एडिंग

17
सही उत्तर संभावित डेवलपर के लिए बीए को 'इन भयानक आवश्यकताओं को ठीक करने के लिए' बताने के लिए है।
कर्क ब्रॉडहर्स्ट

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

13
@ GradeinarPfeffernüsse किसी भी प्रश्न को नहीं पूछने वाले उम्मीदवार इस परीक्षा को सफलतापूर्वक कैसे पूरा कर सकते हैं? यह असंभव है क्योंकि आवश्यकताएं विरोधाभासी हैं; स्पष्टीकरण के बिना यह अभ्यास बस नहीं किया जा सकता है!
एंड्रेस एफ।

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

जवाबों:


31

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

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

यहां परीक्षण का हिस्सा नियमों का प्राथमिकता क्रम है। आप इसे निर्दिष्ट नहीं करते हैं। इनपुट "एबीसी" फ़िज़, बज़, बज़ बज़ या फ़िज़बज़ को प्रिंट कर सकता है - इनमें से कोई भी एक सही है

जिस उम्मीदवार को मैं ले जाऊंगा, वह वही है जो (ज्यादातर) सही है, लेकिन बहुत सारे सवाल पूछे और, आदर्श रूप से, सफेद बोर्ड पर बहुत सारे "डोडलिंग" किए।

उदाहरण के लिए, मैं आपको नमूने ग्रंथों की एक श्रृंखला देकर उन आवश्यकताओं की मेरी समझ का पता लगाऊंगा, और आपसे पूछूंगा कि आपसे क्या छपने की उम्मीद है, और क्यों। - मेरे "एबीसी" उदाहरण इनपुट पर चर्चा से आपको कुछ उपयोगी जानकारी मिल सकती है।

FIZZBUZZ की तरह ही, इस परीक्षा का परिणाम केवल उतना ही अच्छा है जितना कि आपके द्वारा किया गया परिणाम कैसे प्राप्त किया गया था - परिणाम अप्रासंगिक है।

मैं इसे थोड़ा मोड़ दूंगा - बस इसे और अधिक रोचक बनाने के लिए - 'केवल' को बाहर ले जाऊंगा। यह ऊपर की रेखा में कवर किया गया है ("निम्नलिखित में से एक प्रिंट करें"), और देखें कि कितने लोग इसके बारे में पूछते हैं। यदि उम्मीदवार "केवल" याद करता है और आपके पास समय है, तो उसे इंगित करें और देखें कि क्या होता है। यदि वह "केवल" से संबंधित है, तो इसे आवश्यकता से हटा दें और कोड बदलने के लिए उन्हें प्राप्त करें।


16
यह मुझे लगता है जैसे कि ओपी इस परीक्षण के साथ बहुत अधिक करने की कोशिश कर रहा है। FizzBuzz का मतलब है कि उम्मीदवार को कोड में कम से कम कुछ लिखने के लिए दिखाने के लिए एक त्वरित परीक्षा होगी। ऐसा लगता है कि ऐसा करने की कोशिश कर रहा है और यह भी देखने की कोशिश कर रहा है कि उम्मीदवार अस्पष्ट आवश्यकताओं के साथ प्रक्रिया को कैसे डिजाइन करते हैं।
जे.के.

6
+1 के लिए "इन परीक्षणों के साथ शुरू करने के लिए साक्षात्कार में बहुत कम मूल्य है।" और अगर मैं इसे फिर से +1 कर सकता / सकती हूं "इससे कोई फर्क नहीं पड़ता कि कार्यक्रम तकनीकी रूप से हर पहलू में परिपूर्ण है, तो संभव है कि वह उस तरह का लड़का हो जो" मैं इसकी परवाह नहीं करता कि आप क्या करते हैं। चाहता था, वही जो तुमने माँगा था। "
शिवन ड्रैगन

7
आप सभी लोग जो इन परीक्षणों को बेकार पाते हैं, उनके साथ बहुत अधिक प्रयास करने की कोशिश कर रहे हैं ... FizzBuzz और इसके समकक्ष केवल एक ही उद्देश्य के लिए मौजूद हैं: 90% आवेदकों को खरपतवार करने के लिए जो बिल्कुल भी प्रोग्राम करना नहीं जानते हैं
रॉबर्ट हार्वे

@ रोबर्टहवे: सिवाय इसके कि ऐसे लोग हैं जो कार्यक्रम कर सकते हैं, लेकिन एक बिंदु पर विभिन्न कारणों से फ़िज़बज़ के साथ कठिनाई हो सकती है। (खुद उनमें से एक होने के नाते)।
जेम्स पी। राइट

3
@ जेम्सपी। बिल्कुल गलत नकारात्मक साक्षात्कारकर्ता के लिए एक समस्या है साक्षात्कारकर्ता नहीं। जब तक झूठे सकारात्मक की संख्या कम हो, तब तक FizzBuzz की तरह एक परीक्षण साक्षात्कारकर्ताओं के लिए उपयोगी हो सकता है।
जे.के.

27

आपकी आवश्यकताओं में "केवल" शब्द सभी प्रश्नों में विरोधाभास पैदा करता है।

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

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

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

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


6
क्या आप वास्तव में किसी ऐसे व्यक्ति को नियुक्त करना चाहते हैं जो अस्पष्ट आवश्यकताओं को स्पष्ट नहीं करता है क्योंकि वह सवाल पूछकर किसी को नाराज करने से डरता है?
हंस-पीटर स्टॉर

2
@ हॉस्टेरो, शायद नहीं लेकिन एक साक्षात्कार एक यथोचित दबाव वाली स्थिति है।
ए। गिलफ्रिन

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

16

हमने पाया कि जिन उम्मीदवारों ने सफलतापूर्वक सवाल पूरा कर लिया, उनमें से अधिकांश ने ऐसा कुछ भी नहीं पूछा, जैसा उन्होंने FizzBuzz किया था।

आवश्यकताओं की अस्पष्टता के साथ कोई भी प्रश्न पूछे बिना v2.0 को सही ढंग से समाप्त नहीं कर सकता है।


2
+1 ... जैसा कि यह खड़ा है, आवश्यकताओं को परस्पर विरोधाभासी है इसलिए बहुत कम से कम किसी प्रकार के टाई-ब्रेक को निर्दिष्ट करना होगा।
कोनराड रुडोल्फ

4
दिलचस्प है, नियमों ने आदेश की भावना दी (सामान्य मामलों से विशेष मामलों तक) और मैंने लगभग सहज रूप से इसे उलट क्रम में करने का फैसला किया। अगर मैं इस तरह की परीक्षा में हूं, तो मुझे अस्पष्टता महसूस नहीं होगी लेकिन मैं अपनी वृत्ति का पालन करूंगा।
कोडिज्म

4
@Codism दुर्भाग्य से एक प्रोग्रामर के रूप में आपकी वृत्ति उपयोगकर्ता जो चाहता था, उसके ठीक विपरीत हो सकता है।
स्टीफन

@Stefan: एक विस्तार के लिए, स्पष्टीकरण पर कोई अंत नहीं है। हर कोई अनुभव, सामान्य ज्ञान और आदि जैसे कारकों के एक सेट के आधार पर तर्क करना बंद कर देता है। यहां तक ​​कि अगर आप अभी के लिए आवश्यकता को स्पष्ट कर सकते हैं, तो आप कैसे गारंटी दे सकते हैं कि वे कल नहीं बदलते हैं? तो मेरे लिए मूल आवश्यकता पर, हां, यह काफी समझदार है और मैं इसे पांच मिनट में लागू करूंगा।
संहिता

1
@KonradRudolph: जब तक आप "निम्नलिखित में से एक" के बारे में बिट की व्याख्या करने का चयन नहीं करते हैं, इसका मतलब यह है कि यह कोई फर्क नहीं पड़ता। इसके बारे में सोचने पर, मैं वास्तव में स्वीकार्य उत्तर के रूप में देख सकता हूं। आपको दूसरों को कोड करने की भी आवश्यकता नहीं है, यह देखने के लिए सिर्फ एक परीक्षा है कि क्या आप उनमें से कोई भी कर सकते हैं। आखिरकार, वास्तव में एक के बाद एक समाधान के लिए किए गए व्यापार का मामला नहीं है, यह एक साक्षात्कार का सवाल है जो अंततः मानक से कम उपयोगी है एक स्ट्रिंग प्रश्न को उल्टा।
जोर्मेनो

4

यदि आप किसी अस्पष्टता को दूर करना चाहते हैं, तो आप आवश्यकताओं को बदल सकते हैं:

अपनी पसंदीदा प्रोग्रामिंग भाषा में एक रूटीन लिखें, जो इनपुट के रूप में स्ट्रिंग्स की एक सूची लेगा, और सूची में प्रत्येक स्ट्रिंग के लिए निम्न कार्य करें:

  1. "Fizz" प्रिंट करें यदि स्ट्रिंग में वर्ण '$' है और 'नहीं' है? '।
  2. "बज़" को प्रिंट करें यदि स्ट्रिंग में चरित्र है? ' और इसमें '$' शामिल नहीं है।
  3. "FizzBuzz" प्रिंट करें यदि स्ट्रिंग में ठीक एक '$' और ठीक एक '?' हो।
  4. "बज़ बज़" प्रिंट करें यदि स्ट्रिंग में ठीक एक '$' और एक से अधिक हो? '।
  5. "बज़ बज़" प्रिंट करें यदि स्ट्रिंग में बिल्कुल एक है? ' और एक से अधिक '$'।
  6. "FizzFizz" प्रिंट करें यदि स्ट्रिंग में '$' नहीं है और 'नहीं' है? '।

3

सवाल बहुत अस्पष्ट है?

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

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

यह अधिक संभावना है कि उम्मीदवार FizzBuzz "क्रैमिंग" का संकेत है: तनाव या नहीं, कार्यक्रम बहुत सरल है।

मुझे लगता है कि संशोधित FizzBuzz मूल एक के साथ तुलनीय नहीं है, क्योंकि इसका आदर्श समाधान अलग है: हालांकि if-then-elseस्वीकार्य श्रृंखला बनी हुई है, मुझे लगता है कि इस समस्या के लिए एक टेबल-आधारित समाधान अधिक उपयुक्त है:

static string[,] FB = new string[3,3] {
    {"FizzFizz", "Buzz", "Buzz"}
,   {"Fizz", "FizzBuzz", "BuzzBuzz"}
,   {"Fizz", "BuzzBuzz", "BuzzBuzz"}
};
static string FizzBuzz(string str) {
    return FB[
        Math.Min(str.Count(c => c == 'a'), 2)
    ,   Math.Min(str.Count(c => c == 'b'), 2)
    ];
}

समस्या स्थान का आकार है , ऐसा 3x3नहीं है 2x2, इसलिए यह मूल FizzBuzz की तुलना में बहुत आसानी से तालिका में मैप करता है। वास्तव में, मुझे मूल FizzBuzz समस्या को समझने के लिए एक तालिका-आधारित समाधान मिलता है

private static string[] FB = new[] {"{0}", "Fizz", "Buzz", "BizzBuzz"};
public static void Main() {
    for (var i = 1 ; i <= 100 ; i++) {
        Console.WriteLine(FB[(i%5==0?2:0)+(i%3==0?1:0)], i);
    }
}

2

यहाँ दो बातें:

  1. हाँ, मुझे लगता है कि ज्यादातर लोग फ़िज़ूल चर्चा को भुनाने लगते हैं और फिर जब वे इसका विस्तार करने की कोशिश करते हैं तो ठोकर खाते हैं
  2. बाहर की जाँच करें: http://dave.fayr.am/posts/2012-10-4-finding-fizzbuzz.html यह बताता है कि कैसे आप उपयुक्त सार का उपयोग करके फ़िज़ी बज़ को हल कर सकते हैं।

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

2

हमने पाया कि जिन उम्मीदवारों ने सफलतापूर्वक सवाल पूरा कर लिया, उनमें से अधिकांश ने ऐसा कुछ भी नहीं पूछा, जैसा उन्होंने FizzBuzz किया था।

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

मैंने इस fizzbuzz v2.0 के माध्यम से पढ़ा और मैंने वहां # 3 और # 5 आवश्यकता के बारे में पूछा। मैं अन्य लोगों के बारे में नहीं जानता, लेकिन मुझे लगता है कि मैं कोई भी सवाल नहीं पूछना चाहता, इसलिए मुझे लगता है कि मैं किसी भी अस्पष्टता नहीं चाहता। क्योंकि बाद में लाइन के नीचे (कोडित और सभी), मैं यह नहीं जानना चाहता कि मुझे एक धारणा बनाना था और यह गलत था।


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

2

शायद अस्पष्टता से बचने का सबसे आसान तरीका कुछ उदाहरण दिखाना है:

"ए" रिटर्न "फ़िज़" "एएबीए" "फ़िज़" "बी" रिटर्न "बज़" "ए बीबीबी" देता है "एबी "रिटर्न" फ़िज़फ़िज़ "


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

2

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

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

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

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


1

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

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

BTW: मुझे यह अजीब लगता है कि आप "सही समाधान" के बारे में बात कर रहे हैं। यदि आप इस तरह का सवाल उठाते हैं, तो "एबी" प्राप्त करने पर "फ़िज़", "बज़", "बज़ बज़" या "फ़िज़बज़्ज़" को प्रिंट करना वैध है। तो IMHO किसी भी प्रश्न के साथ कोई समाधान नहीं है सादा गलत है।

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