वेब या SQL डेवलपर्स के लिए कुछ FizzBuzz प्रकार के प्रश्न क्या हैं? [बन्द है]


10

थोड़ी देर के बाद, हम फिर से काम पर रख रहे हैं, और मैं प्रोग्रामर के लिए परीक्षणों की समीक्षा कर रहा हूं; उनमें से कुछ पुराने हैं। वेब डेवलपर और SQL के लिए FizzBuzz प्रकार के कुछ प्रश्न क्या हैं ? अर्थात्, बहुत तुच्छ नहीं है, लेकिन फिर भी कलम और कागज के साथ और Google के बिना पांच से दस मिनट में हल करने योग्य है?

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


2
वेब डेवलपर में आप क्या कौशल देखते हैं?
उल्लू

मुझे लगता है कि मैं HTML / CSS / JSON / HTTP की समझ के लिए देख रहा हूँ; रेचल के रूप में उल्लेख किया, FizzBuzz जावास्क्रिप्ट / PHP / etc के परीक्षण के लिए ठीक है।
डोमची

जवाबों:


12

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

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

SELECT Table1.Name, Table2.Name
FROM Table1 
INNER JOIN Table2 ON Table1.Id = Table2.Id
WHERE Table1.Name LIKE 'A%' OR Table2.Name LIKE 'A%'

एक वेब डेवलपर के लिए मैं उनसे सिर्फ FizzBuzz पूछूंगा। सिर्फ इसलिए कि आप वेब के लिए प्रोग्रामिंग कर रहे हैं इसका मतलब यह नहीं है कि आपको बुनियादी प्रोग्रामिंग तर्क करने की क्षमता की कमी होनी चाहिए

यदि आप वास्तविक साक्षात्कार प्रश्नों की तलाश कर रहे हैं, तो ऑनलाइन बहुत सारे अच्छे हैं जो आप एक त्वरित खोज के साथ पा सकते हैं। मुझे Google के साथ 10 सेकंड का समय लगाकर मैंने सूची से अधिक पाया।


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

@CCR अधिकारी मैं सहमत हूं। और अगर आप एक उन्नत SQL डेवलपर के लिए साक्षात्कार कर रहे हैं, तो मैं वास्तव में उस के लिए एक ग्रुप आवश्यकता भी जोड़ूंगा, क्योंकि मैंने SQL के साथ काम करने से पहले मुझे पूरी तरह से समझा कि समूहों का क्या मतलब है और वे कैसे काम करते हैं
राहेल

सेल्फ-ज्वाइन करने की आवश्यकता पर विचार करें: "TATE EMPLOYEE (ID NUMBER, NAME TEXT, MANAGER_ID NUMBER)" तो "मैं कर्मचारियों और उनके प्रबंधकों की सूची कैसे बना सकता हूं?"
केविन क्लाइन

किस प्रकार के डेटाबेस / एसक्यूएल स्थिति के लिए आप (और डेवलपर पृष्ठभूमि / आपके पर्यावरण) पर काम कर रहे हैं, इस पर निर्भर करते हुए, आप वास्तविक 'फ़िज़बज़्ज़' का जवाब पूछ सकते हैं ।
घड़ी की कल-संग्रहालय

और इसका अतिरिक्त लाभ यह है कि यह एक खराब कल्पना है, इसलिए यह परीक्षण करता है कि उम्मीदवार कोड लिखने से पहले आवश्यकताओं को स्पष्ट करता है या नहीं।
पीटर टेलर

4

यहाँ एक उत्तर है जो मैंने एक बहुत ही समान (संभवतः डुप्लिकेट) प्रश्न के लिए दिया था जो इस साइट पर बंद था

बेहद आसान स्तर: कॉलम एम्पिड, फर्स्टनाम, लास्टनाम, हायरडेट और टर्मिनेशनडेट के साथ कर्मचारियों की तालिका को देखते हुए : कंपनी के लिए अभी भी काम कर रहे सभी कर्मचारियों को वापस लाने के लिए एक क्वेरी लिखें जिसमें अंतिम नाम "स्मिथ" के साथ शुरू होने वाले अंतिम नाम के साथ काम कर रहे हैं।

आसान स्तर ऊपर दिए गए कर्मचारी तालिका को देखते हुए, साथ ही कॉलम एम्पिड और रिव्यूडेट के साथ एक नई तालिका "एनुअल रीव्यू", और उन सभी कर्मचारियों को वापस करने के लिए एक प्रश्न लिखें, जिनकी कभी भी समीक्षा नहीं की गई है।

मध्यम स्तर
ऊपर दिए गए कर्मचारी तालिका को देखते हुए, कंपनी के लिए अभी भी काम कर रहे सबसे कम और कम कार्यकाल वाले कर्मचारी के बीच अंतर (दिनों में) की गणना करने के लिए एक प्रश्न लिखें?

हार्ड लेवल ऊपर दिए गए कर्मचारी की तालिका को देखते हुए, सबसे लंबी अवधि (दिनों में) की गणना करने के लिए एक प्रश्न लिखें कि कंपनी किसी को काम पर रखे या बिना किसी को बताए चली गई है।

हार्डर लेवल
फिर से एक ही टेबल का उपयोग करते हुए, एक क्वेरी लिखें जो प्रत्येक कर्मचारी को लौटाए और प्रत्येक पंक्ति / कर्मचारी में उन कर्मचारियों की सबसे बड़ी संख्या शामिल हो, जिन्होंने अपने कार्यकाल के दौरान किसी भी समय कंपनी के लिए काम किया था और पहली तारीख जो अधिकतम पहुंच गई थी। कर्सर का उपयोग नहीं करने के लिए अतिरिक्त अंक।


1
दिलचस्प सवाल। हालांकि, "हार्ड" / "हार्डर" स्तर वास्तव में मेरे लिए कठिन लगता है। यहां तक ​​कि सभ्य SQL अनुभव के साथ, मेरा मानना ​​है कि साक्षात्कार स्थिति में हल करना बहुत मुश्किल है। हो सकता है कि अगर आप उम्मीदवार को आधे या एक घंटे के लिए अकेला छोड़ दें।
sleske

मैं "कठिन" प्रश्न बता सकता था जब मुझे एहसास हुआ कि मुझे वास्तव में पता नहीं है कि एक कर्सर क्या है ... और मैंने हर दिन MySQL का उपयोग किया! : - /
thesunneversets

@Johnfx कृपया उर समस्याओं के लिए इन उत्तरों को देख सकते हैं जो मैंने कल दिन के बाद साक्षात्कार किया है, docs.google.com/document/d/…
mr_eclair

आपको मुझे इसे देखने की आवश्यकता क्यों है। आप स्वयं इसका परीक्षण कर सकते हैं और देख सकते हैं कि क्या आपको सही उत्तर मिलेगा।
जॉन एफएक्स 21'13

3

कैसे fizzbuzz के बारे में ही? यहाँ एक Oracle संस्करण है:

select case when mod(level,35) = 0 then 'fizzbuzz'
            when mod(level,7) = 0 then 'buzz'
            when mod(level,5) = 0 then 'fizz'
            else to_char(level) end fizzbuzz
from dual connect by level <= 100

1
Awesomeness के लिए +1, लेकिन मुझे लगता है कि वर्चुअल नंबर टेबल हर किसी के एसक्यूएल टूल बॉक्स में होने के लिए पर्याप्त नहीं होते हैं। आपको उन्हें हाजिर करना होगा
कॉनराड फ्रैक्स

0

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

कुछ इस तरह:

भाग 1: एक फ़ंक्शन बनाएँ जो किसी दिए गए महीने में Nth या पिछले सप्ताह के दिन की गणना करेगा - अर्थात; अगले महीने में पहला, तीसरा, आखिरी मंगलवार।

भाग 2 (यदि वांछित हो): आवर्ती अनुसूची के लिए अस्थायी भाव रखने के लिए डिज़ाइन तालिका। शेड्यूल "किसी एक या अधिक महीने के Nth कार्यदिवस" ​​या "एक या अधिक महीनों के Nth दिन" या "तारीख से हर N दिन" में से कोई भी हो सकता है।

उदाहरण, हर महीने की 15 तारीख, हर मार्च का आखिरी बुधवार, हर महीने का आखिरी दिन, 2 दिसंबर, 2008 से हर 17 दिन आदि।


2
-1: समय के साथ काम करना और इसे सही रूप में हासिल करना वास्तव में कठिन है। लगता है कि क्यों JodaTime जैसे पुस्तकालय मौजूद हैं और सॉफ्टवेयर के कुछ तुच्छ टुकड़े नहीं हैं।
sebastiangeiger

@sebastiangeiger मैं सहमत हूं। मैं लगभग रोजाना SQL के साथ काम करता हूं और हालाँकि मैं SQL के दिनांक कार्यों का कुशलता से उपयोग कर सकता हूं, मैं Google की सहायता के बिना इस तरह से या आसानी से कुछ नहीं कर पाऊंगा। वास्तव में, मुझे कुछ महीने पहले ऐसा करने की आवश्यकता थी और कुछ मिनटों के बाद इसे एसक्यूएल में जानने की कोशिश करने के बाद, मैंने इसे गॉगल किया और कुछ स्क्रिप्ट मिलीं जिनका उपयोग मैं कुछ संशोधनों के साथ अपनी आवश्यकताओं के अनुरूप करता हूं।
राहेल

मुझे परेशानी वाले क्षेत्रों की तलाश नहीं है; मैं किसी ऐसे औसत डेवलपर की तलाश कर रहा हूं जो दैनिक आधार पर काम कर रहा हो और बिना किसी समस्या के और अपरिचित वातावरण (कोई कंप्यूटर उपलब्ध न हो) को याद कर सके। हालांकि आपका उदाहरण इतना कठिन नहीं है, लेकिन यह एक समस्या है कि मैं किसी के सामने कोडिंग करूं कि वह कैसा सोच रहा है।
डोमची

1
@ मुझे लगता है कि FizzBuzz को तदनुसार हल / कोड किया जाना अपेक्षित है।
एरोन मैकिवर

1
मुझे नहीं लगता कि भाग 2 एक अच्छा प्रश्न है। वास्तव में इस विषय का एक अजीब समाधान है जो व्यापार में किसी भी अन्य डेटाबेस डिजाइन समस्या में लगभग नहीं होता है। जवाब न जानना खराब SQL ज्ञान का संकेत नहीं है।
NoChance
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.