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