बुनियादी सवालों में शामिल हैं:
मुझे लगता है कि यह आमतौर पर आपके आवेदकों को एक सरल कोडिंग अभ्यास पूरा करने के लिए कहने में मदद करता है जैसे:
- अंतर्निहित कक्षाओं का उपयोग किए बिना अपनी स्वयं की लिंक की गई सूची वर्ग लिखें।
- अंतर्निहित कक्षाओं का उपयोग किए बिना अपने स्वयं के हैशटेबल वर्ग को लिखें।
- एक वर्ग लिखें जो एक बाइनरी ट्री का प्रतिनिधित्व करता है। एक विधि लिखें जो पेड़ के सभी नोड्स को ट्रेस करती है।
- बिल्ट-इन विधियों का उपयोग किए बिना एक सरणी पर एक द्विआधारी खोज करने के लिए एक विधि लिखें।
- एक ब्लॉग के लिए एक डेटाबेस स्कीमा ड्रा करें। प्रत्येक उपयोगकर्ता के पास केवल एक ब्लॉग होता है, प्रत्येक ब्लॉग में कई श्रेणियां होती हैं, प्रत्येक श्रेणी में कई पोस्ट होते हैं, और प्रत्येक पोस्ट एक से अधिक श्रेणी के हो सकते हैं। अपने आवेदक से पूछें कि वह विशिष्ट जानकारी को खींचने के लिए प्रश्न कैसे लिख सकता है।
अगला, विशिष्ट तकनीकी जानकारी के लिए देखें:
- (ईवेंट हैंडलर) एक कस्टम ईवेंट हैंडलर के साथ एक क्लास बनाएं, एक अन्य क्लास बनाएं जो कस्टम इवेंट हैंडलर पर हुक करता है।
- (XML) एक XML दस्तावेज़ लोड करें और गुण x, y और z के साथ सभी नोड्स का चयन करें।
- (फंक्शनल प्रोग्रामिंग) एक फंक्शन बनाएं जो दूसरे फंक्शन को एक पैरामीटर के रूप में स्वीकार करता है। एक मैप या फोल्ड फ़ंक्शन इसके लिए वास्तव में अच्छा काम करता है।
- (परावर्तन) एक फ़ंक्शन लिखें जो निर्धारित करता है कि किसी वर्ग का कोई विशेष गुण है या नहीं।
- (रेगेक्स) एक नियमित अभिव्यक्ति लिखें जो HTML के ब्लॉक से सभी टैग हटाती है।
इनमें से कोई भी विशेष रूप से उत्तर देने के लिए एक कुशल C # प्रोग्रामर के लिए कठिन प्रश्न नहीं हैं, और उन्हें आपको अपने आवेदक विशेष शक्तियों का एक अच्छा विचार देना चाहिए। आप कुछ प्रश्नों / कोड नमूने में भी काम करना चाह सकते हैं जो विशिष्ट डिज़ाइन पैटर्न का उपयोग करते हैं।
[स्पष्टीकरण के लिए संपादित करें] :
लगता है कि बहुत सारे लोग समझ नहीं पाते हैं कि मैं इस प्रकार के प्रश्न क्यों पूछूंगा। मुझे कुछ लोगों की टिप्पणियों पर स्पर्श करने दें (मैं सीधे उद्धृत नहीं कर रहा हूं, बल्कि इसके बजाय)
प्रश्न: पिछली बार कब किसी ने वाष्पशील या कमजोर संदर्भों का उपयोग किया था?
A: जब मैं तकनीकी साक्षात्कार देता हूं, तो मैं यह देखना चाहता हूं कि कोई व्यक्ति .NET की उच्च-स्तरीय और निम्न-स्तरीय विशेषताओं को समझता है या नहीं । वाष्पशील और कमजोर संदर्भ .NET द्वारा प्रदान की जाने वाली दो निम्न-स्तरीय विशेषताएं हैं - भले ही इन सुविधाओं का व्यवहार में अक्सर उपयोग नहीं किया जाता हो, इन सवालों के जवाब बेहद खुलासा करते हैं:
वाष्पशील की एक अच्छी समझ यह दर्शाती है कि एक व्यक्ति समझता है कि संकलक अनुकूलन कैसे कोड की शुद्धता को बदलते हैं, कैसे धागे साझा राज्य की स्थानीय प्रतियां रखते हैं जो किसी भी समय सिंक से बाहर हो सकते हैं, और कम से कम मल्टीथ्रेडेड कोड की कुछ जटिलताओं के बारे में जानते हैं ।
कमजोर संदर्भों की एक अच्छी समझ यह दर्शाती है कि एक व्यक्ति कचरा कलेक्टर के अंतरंग विवरण के बारे में जानता है और यह कैसे तय करता है कि स्मृति को कब मुक्त करना है। ज़रूर, आप उम्मीदवारों से पूछ सकते हैं "कचरा कलेक्टर कैसे काम करता है", लेकिन कमजोर संदर्भों के बारे में पूछने से बहुत बेहतर, अधिक विचारशील उत्तर मिलता है।
.NET एक काफी अमूर्त भाषा है, लेकिन स्टार डेवलपर्स को लगभग हमेशा CLR की गहरी समझ और .NET के रनटाइम के निम्न-स्तरीय विवरणों की जानकारी होती है।
प्रश्न: किसी को अपने स्वयं के हैशटेबल या लिंक्ड सूची को लागू करने की आवश्यकता क्यों होगी?
A: मैं यह नहीं मान रहा हूं कि डिक्शनरी क्लास हीन है या कि लोगों को अपने स्वयं के हैशटेबल को रोल करना चाहिए। यह एक मूल प्रश्न है जो परीक्षण करता है कि क्या किसी व्यक्ति को डाटासट्रक्चर की न्यूनतम समझ है। Thats क्या इन सवालों के लिए परीक्षण: नंगे न्यूनतम समझ।
आप डेटा स्ट्रक्चर्स 101 के पहले दिन इन हैशटेबल्स और लिंक्ड लिस्ट्स के बारे में सीखते हैं। यदि कोई हैशटेबल या स्क्रैच से लिंक्ड लिस्ट नहीं लिख सकता है, तो उनके तकनीकी ज्ञान में बहुत बड़ा अंतर है।
प्रश्न: ये प्रश्न इतने क्रूड ओरिएंटेड क्यों हैं?
A: क्योंकि इस धागे का शीर्षक "प्रश्न हर अच्छे .NET डेवलपर को जानना चाहिए"। प्रत्येक .NET डेवलपर अपने कैरियर की शुरुआत क्रूड एप्स से करता है, और 90% सभी एप्लिकेशन डेवलपमेंट लोग जो एक जीवनयापन के लिए करते हैं, वह लाइन-ऑफ-बिजनेस एप्लिकेशन से संबंधित है।
मुझे लगता है कि लाइन-ऑफ-बिजनेस ऐप्स के ज्ञान का परीक्षण करने वाले प्रश्न ज्यादातर मामलों में उपयुक्त होते हैं, जब तक कि आप बहुत विशिष्ट निचे के डेवलपर्स की तलाश में न हों, जैसे कंपाइलर डेवलपमेंट, गेम-इंजन डेवलपमेंट, प्रमेय-प्रूविंग, इमेज प्रोसेसिंग इत्यादि। ।