- MemSQL (अब SingleStore) में 2013 में मिला DB-संबंधित प्रोग्रामिंग असाइनमेंट
→ "Memcached जैसे key-value store में incr / decr जैसी शैली का mult कमांड जोड़िए। मैं आपको 1 घंटा दूँगा।"
- यह सवाल एक बेहतरीन तकनीकी इंटरव्यू समस्या है, क्योंकि यह उम्मीदवारों को साफ़ तौर पर 3 तरह में बाँट देता है
- टाइप 0: वे लोग जो इस बात से ही चौंक जाते हैं कि उन्हें असली कोड छूना होगा। वास्तव में वे यहाँ तक पहुँचते ही नहीं, लेकिन इन्हें नहीं चुनना चाहिए
→ उस समय MemSQL, C++11 में विकसित किया गया था, इसलिए C में लिखे Memcached को छूना इस उद्देश्य के लिए बिल्कुल उपयुक्त था।
- टाइप 1: वे लोग जो समस्या देखकर कहते हैं, "गुणा तो जोड़ का दोहराव है, इसलिए शायद मौजूदा चीज़ को दोहराने से काम हो जाएगा! लेकिन lock भी संभालना पड़ेगा.."
→ काफ़ी देर तक भटकने के बाद भी वे काम करने वाला कोड नहीं बना पाते और असफल हो जाते हैं। इन्हें भी नौकरी नहीं मिलती
- टाइप 2: "गुणा, जोड़ जैसा ही है; बस जहाँ
+ होता है वहाँ * करना है" ऐसा कहकर Copy&Paste करते हैं और जल्दी से + को * में बदल देते हैं
→ इस समूह के लोगों के चुने जाने की संभावना बहुत अधिक होती है
- सबसे अच्छे उम्मीदवारों के पास तो.. काफ़ी समय बच जाता है, इसलिए वे अपने output को और निखार सकते हैं, formatting एकसमान है या नहीं देख सकते हैं, unit test भी जोड़ सकते हैं, और "design decisions" की फिर से समीक्षा भी कर सकते हैं
निष्कर्ष
- मुझे यह प्रोग्रामिंग असाइनमेंट इसलिए पसंद है क्योंकि यह असली प्रोग्रामिंग का एक लघुरूप है
- बड़े codebase को maintain करते समय अक्सर ऐसा कोड या अनावश्यक idiom मिलते हैं जिन्हें आप पूरी तरह समझते नहीं हैं
- यह समस्या इंटरव्यू के लिए बिल्कुल सही है, क्योंकि इसमें सिर्फ़ एक सही जवाब है:
bool incr को int opcode में बदलना
- अभी दो arithmetic operation commands (
incr/decr) हैं, और इसे तीन commands तक बढ़ाना है
- यह असाइनमेंट अयोग्य उम्मीदवारों को छाँटने और योग्य उम्मीदवारों को सही रास्ते पर ले जाने के लिए बहुत अच्छी तरह बनाया गया है
3 टिप्पणियां
यहाँ असली बात शायद यह होगी कि संबंधित कोड को कितनी जल्दी ढूँढा जा सकता है।
मुझे लगता है कि यह इस लिहाज़ से बेहतर है कि इसमें ज़मीन से पूरा प्रोग्राम फिर से लिखने के बजाय, मौजूदा कोड में—और वह भी पहले से अच्छी तरह जाना-पहचाना और व्यापक रूप से इस्तेमाल होने वाला open source project—फ़ीचर जोड़े जाते हैं।
HN पर भी हमेशा की तरह... मूल इंटरव्यू सवाल पूछने वाला व्यक्ति खुद सामने आकर AMA कर रहा है.
https://news.ycombinator.com/item?id=31065143