हर अच्छे .NET डेवलपर के सवालों के जवाब देने में सक्षम होना चाहिए? [बन्द है]


246

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

आपको क्या लगता है कि एक अच्छे .NET प्रोग्रामर को क्या जवाब देना चाहिए ?

मैं इसे खुद के लिए एक चेकलिस्ट के रूप में भी देखूंगा , ताकि यह देखने के लिए कि मेरी खुद की कमी है (कई हैं ...)

वैकल्पिक शब्द

* अद्यतन: यह स्पष्ट करना चाहते हैं कि हम केवल .NET ज्ञान के लिए परीक्षण नहीं कर रहे हैं, और यह समस्या को हल करने की क्षमता और सामान्य प्रोग्रामिंग कौशल हमारे लिए और भी महत्वपूर्ण हैं।

जवाबों:


171

बुनियादी सवालों में शामिल हैं:

मुझे लगता है कि यह आमतौर पर आपके आवेदकों को एक सरल कोडिंग अभ्यास पूरा करने के लिए कहने में मदद करता है जैसे:

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

अगला, विशिष्ट तकनीकी जानकारी के लिए देखें:

  • (ईवेंट हैंडलर) एक कस्टम ईवेंट हैंडलर के साथ एक क्लास बनाएं, एक अन्य क्लास बनाएं जो कस्टम इवेंट हैंडलर पर हुक करता है।
  • (XML) एक XML दस्तावेज़ लोड करें और गुण x, y और z के साथ सभी नोड्स का चयन करें।
  • (फंक्शनल प्रोग्रामिंग) एक फंक्शन बनाएं जो दूसरे फंक्शन को एक पैरामीटर के रूप में स्वीकार करता है। एक मैप या फोल्ड फ़ंक्शन इसके लिए वास्तव में अच्छा काम करता है।
  • (परावर्तन) एक फ़ंक्शन लिखें जो निर्धारित करता है कि किसी वर्ग का कोई विशेष गुण है या नहीं।
  • (रेगेक्स) एक नियमित अभिव्यक्ति लिखें जो HTML के ब्लॉक से सभी टैग हटाती है।

इनमें से कोई भी विशेष रूप से उत्तर देने के लिए एक कुशल C # प्रोग्रामर के लिए कठिन प्रश्न नहीं हैं, और उन्हें आपको अपने आवेदक विशेष शक्तियों का एक अच्छा विचार देना चाहिए। आप कुछ प्रश्नों / कोड नमूने में भी काम करना चाह सकते हैं जो विशिष्ट डिज़ाइन पैटर्न का उपयोग करते हैं।

[स्पष्टीकरण के लिए संपादित करें] :

लगता है कि बहुत सारे लोग समझ नहीं पाते हैं कि मैं इस प्रकार के प्रश्न क्यों पूछूंगा। मुझे कुछ लोगों की टिप्पणियों पर स्पर्श करने दें (मैं सीधे उद्धृत नहीं कर रहा हूं, बल्कि इसके बजाय)


प्रश्न: पिछली बार कब किसी ने वाष्पशील या कमजोर संदर्भों का उपयोग किया था?

A: जब मैं तकनीकी साक्षात्कार देता हूं, तो मैं यह देखना चाहता हूं कि कोई व्यक्ति .NET की उच्च-स्तरीय और निम्न-स्तरीय विशेषताओं को समझता है या नहीं । वाष्पशील और कमजोर संदर्भ .NET द्वारा प्रदान की जाने वाली दो निम्न-स्तरीय विशेषताएं हैं - भले ही इन सुविधाओं का व्यवहार में अक्सर उपयोग नहीं किया जाता हो, इन सवालों के जवाब बेहद खुलासा करते हैं:

  • वाष्पशील की एक अच्छी समझ यह दर्शाती है कि एक व्यक्ति समझता है कि संकलक अनुकूलन कैसे कोड की शुद्धता को बदलते हैं, कैसे धागे साझा राज्य की स्थानीय प्रतियां रखते हैं जो किसी भी समय सिंक से बाहर हो सकते हैं, और कम से कम मल्टीथ्रेडेड कोड की कुछ जटिलताओं के बारे में जानते हैं ।

  • कमजोर संदर्भों की एक अच्छी समझ यह दर्शाती है कि एक व्यक्ति कचरा कलेक्टर के अंतरंग विवरण के बारे में जानता है और यह कैसे तय करता है कि स्मृति को कब मुक्त करना है। ज़रूर, आप उम्मीदवारों से पूछ सकते हैं "कचरा कलेक्टर कैसे काम करता है", लेकिन कमजोर संदर्भों के बारे में पूछने से बहुत बेहतर, अधिक विचारशील उत्तर मिलता है।

.NET एक काफी अमूर्त भाषा है, लेकिन स्टार डेवलपर्स को लगभग हमेशा CLR की गहरी समझ और .NET के रनटाइम के निम्न-स्तरीय विवरणों की जानकारी होती है।


प्रश्न: किसी को अपने स्वयं के हैशटेबल या लिंक्ड सूची को लागू करने की आवश्यकता क्यों होगी?

A: मैं यह नहीं मान रहा हूं कि डिक्शनरी क्लास हीन है या कि लोगों को अपने स्वयं के हैशटेबल को रोल करना चाहिए। यह एक मूल प्रश्न है जो परीक्षण करता है कि क्या किसी व्यक्ति को डाटासट्रक्चर की न्यूनतम समझ है। Thats क्या इन सवालों के लिए परीक्षण: नंगे न्यूनतम समझ।

आप डेटा स्ट्रक्चर्स 101 के पहले दिन इन हैशटेबल्स और लिंक्ड लिस्ट्स के बारे में सीखते हैं। यदि कोई हैशटेबल या स्क्रैच से लिंक्ड लिस्ट नहीं लिख सकता है, तो उनके तकनीकी ज्ञान में बहुत बड़ा अंतर है।


प्रश्न: ये प्रश्न इतने क्रूड ओरिएंटेड क्यों हैं?

A: क्योंकि इस धागे का शीर्षक "प्रश्न हर अच्छे .NET डेवलपर को जानना चाहिए"। प्रत्येक .NET डेवलपर अपने कैरियर की शुरुआत क्रूड एप्स से करता है, और 90% सभी एप्लिकेशन डेवलपमेंट लोग जो एक जीवनयापन के लिए करते हैं, वह लाइन-ऑफ-बिजनेस एप्लिकेशन से संबंधित है।

मुझे लगता है कि लाइन-ऑफ-बिजनेस ऐप्स के ज्ञान का परीक्षण करने वाले प्रश्न ज्यादातर मामलों में उपयुक्त होते हैं, जब तक कि आप बहुत विशिष्ट निचे के डेवलपर्स की तलाश में न हों, जैसे कंपाइलर डेवलपमेंट, गेम-इंजन डेवलपमेंट, प्रमेय-प्रूविंग, इमेज प्रोसेसिंग इत्यादि। ।


8
मुझे लगता है कि आपकी सूची ताकत और कमजोरियों की जांच करने का एक अच्छा तरीका है लेकिन यह "बुनियादी" ज्ञान नहीं है। जैसा कि ग्रेग बताते हैं, मुझे "शॉर्ट सर्कुलेटेड" ऑपरेटरों द्वारा फंसाया गया था, भले ही वे सरल हों और मैं अक्सर उनका उपयोग करता हूं: मैं सिर्फ नाम भूल गया था। क्या वह मुझे अयोग्य ठहराएगा?
मार्क ब्रिटिंघम

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

24
इस प्रकार, मैं आवश्यक रूप से आपकी सूची से असहमत नहीं हूं - मैं सिर्फ "मूल" के रूप में ज्ञान वस्तुओं के आपके लक्षण वर्णन से असहमत हूं। कोई भी कठिन अवधारणा नहीं है - लेकिन कुछ बहुत विशिष्ट हैं और आवेदकों की अच्छी संख्या से परिचित नहीं होंगे। फिर भी - फिर - कृपया मेरी क्षमायाचना स्वीकार करें।
मार्क ब्रिटिंघम

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

15
(Regex) Write a regular expression which removes all tags from a block of HTML.- मैं
SMELL

135

मुझे ये सूची स्कॉट हैनेलमैन के ब्लॉग पर मिली :

यहां मुझे लगता है कि श्रेणियों में विभाजित इन पदों से सबसे महत्वपूर्ण प्रश्न हैं। मैंने उन्हें संपादित किया और फिर से व्यवस्थित किया। सौभाग्य से इनमें से अधिकांश सवालों के लिए स्टैक ओवरफ्लो पर पहले से ही एक अच्छा जवाब है। बस लिंक का पालन करें (मैं उन्हें सभी ASAP अद्यतन करेगा)

प्लेटफ़ॉर्म स्वतंत्र .NET प्रश्न

ASP.NET


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

मैं उम्र, सैफ। लेकिन दूसरी ओर, यदि आप विवरण नहीं जानते हैं, तो आप "अवधारणाओं" को सही ढंग से लागू नहीं कर पाएंगे।
splattne

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

3
क्या आप उन अवधारणाओं का वर्णन करने में सक्षम हैं जो आमतौर पर एक साक्षात्कार की स्थिति में 2 पन्नों या एक पुस्तक के एक अध्याय को एक स्पष्ट तरीके से लेते हैं। मैं उन्हें पहले से रिहर्सल किए बिना नहीं कर सकता
क्रिस एस

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

94

यह वह नहीं हो सकता है जो आप सुनना चाहते हैं, लेकिन मैं संकीर्ण प्रौद्योगिकियों पर ध्यान केंद्रित नहीं करने की सलाह दूंगा, लेकिन सामान्य प्रोग्रामिंग और समस्या सुलझाने के कौशल पर। ठोस डेवलपर सीख सकते हैं कि आप उन्हें जल्दी से जो करना चाहते हैं।

उदाहरण के लिए, मैं एक कॉम्पैक्ट फ्रेमवर्क आदमी नहीं हूं, इसलिए यदि आप उस दिशा में गए तो मैं आपका साक्षात्कार विफल कर सकता हूं। लेकिन अगर मुझे इसका उपयोग करने की आवश्यकता है तो मैं कुछ शोध कर सकता हूं और सही तरीके से कूद सकता हूं।

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


हो सकता है कि हायरिंग प्रक्रिया का हिस्सा कार्डस्पेस में एक समस्या हो या कुछ ऐसा हो जो उन्होंने कभी नहीं देखा हो !!
जेनिफर

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

अगर मैं उन दो लोगों के बारे में चुन सकता हूं जिनके पास सामान्य प्रोग्रामिंग और समस्या सुलझाने के कौशल हैं, तो व्यावहारिक कारणों से मुझे बेहतर .NET ज्ञान और अनुभव के साथ एक को चुनना होगा।
प्रातः

.NET ज्ञान निश्चित रूप से, लेकिन जब यह संकीर्ण प्रौद्योगिकियों के लिए नीचे आता है, तो मुझे लगता है कि आप प्रोग्रामर के साथ समस्या निवारण कौशल के साथ जा सकते हैं।
जेनिफर

5
हां, हम सभी को "संकीर्ण प्रौद्योगिकियों" के टन को जानना होगा। लेकिन हर एक के लिए हम जानते हैं, वहाँ एक गुच्छा है कि हम नहीं जानते (आमतौर पर क्योंकि हम उन्हें जरूरत नहीं है)। मैं कह रहा हूं कि आप SharePoint को नहीं जानने के लिए एक महान डेवलपर को याद नहीं करना चाहते हैं, बहुत जल्द ही वह आपका सबसे अच्छा SharePoint लड़का हो सकता है।
ब्रायन मैकके

66

मुझे लगता है कि अगर मैं कोई है जो LINQ अनुभव था साक्षात्कार कर रहे थे, मैं संभवतः चाहते हैं बस उन्हें पूछना LINQ समझाने के लिए। यदि वे आस्थगित निष्पादन, स्ट्रीमिंग, IEnumerable / IEnumerator इंटरफेस, फ़ॉरच, इट्रेटर ब्लॉक, अभिव्यक्ति पेड़ (बोनस अंक के लिए, वैसे भी) समझा सकते हैं, तो वे शायद बाकी के साथ सामना कर सकते हैं। (निश्चित रूप से वे "ओके" डेवलपर्स हो सकते हैं और "लिनक्यू" नहीं मिल सकते हैं - फिर भी मैं वास्तव में उस मामले के बारे में सोच रहा हूं जहां उन्होंने इसे एक उचित प्रश्न बनाने के लिए पर्याप्त LINQ जानने का दावा किया है।)

अतीत में मैंने पहले से सूचीबद्ध कई प्रश्न पूछे हैं, और कुछ अन्य:

  • संदर्भ और मूल्य प्रकारों के बीच अंतर
  • संदर्भ द्वारा पास बनाम मान से पास
  • IDisposable और फाइनल
  • तार, अपरिवर्तनीयता, चरित्र एन्कोडिंग
  • तैरनेवाला स्थल
  • प्रतिनिधियों
  • जेनेरिक्स
  • अशक्त प्रकार के

1
हां, मैं इस तरह का जवाब देखना चाहता था। स्वीकार किए जाने के लिए अच्छा उम्मीदवार। कोई बेहतर है?
प्रात:

5
@splattne: मूर्ख मत बनो, यह एक जॉन स्कीट जवाब है, इसलिए इसे स्वीकार करें। यह अपरिहार्य है।
स्टीवन ए। लोवे

3
मैं बस कहने के लिए था ... wt ... आप स्कीट पर सवाल मत करो!
सैफ खान

1
यह स्वीकार किए जाते हैं की तुलना में एक बेहतर जवाब है। यह समझने में आपकी सहायता करता है कि क्या किसी को कथित विशेषज्ञता के क्षेत्र में गहरा ज्ञान है, जबकि भाषा की विशेषताओं का ज्ञान भी है जो काफी व्यापक सरगम ​​चलाते हैं।
मार्क ब्रिटिंघम

1
यह उत्तर 'अपनी खुद की लिंक्ड सूची डिज़ाइन, "रेसेक्सपी के साथ HTML को पार्स करें" या "असेंबली, जीएसी, आदि के बारे में कितना जानते हैं ..." के कारण पैंट बंद हो जाता है क्योंकि यह उन उपकरणों और अवधारणाओं को संबोधित करता है जो आप चाहते हैं। वास्तव में विकास के दौरान उपयोग करें। LINQ का अंतरंग ज्ञान भी आवश्यक है। मैंने इस साइट पर कई उदाहरण देखे हैं जहां लोग संग्रह के लिए यूनियन डिस्टिंक्ट और कॉनैट के अपने स्वयं के संस्करण को रोल करने की कोशिश कर रहे हैं क्योंकि वे LINQ को नहीं समझते हैं।
इवान प्लाइस

42

मैं उन लोगों के साथ हूं, जो '101 शीर्ष .NET साक्षात्कार Qs और As' से आप जिस तरह की चीज़ों को देख और याद कर सकते हैं, उसके बजाय समस्या-समाधान क्षमताओं की तलाश कर रहे हैं।

बस अपने आप को एक उदाहरण के रूप में उद्धृत करने के लिए, मैं उन चीजों को 'जानना' चाहता हूं जिन्हें मुझे दिन-प्रतिदिन उपयोग करने की आवश्यकता है। मैं भूल जाता हूं (और बाद में उन चीजों को फिर से देखना पड़ता है) जिन्हें मैं शायद ही कभी इस्तेमाल करता हूं।

यदि आप एक साक्षात्कार में मुझे यात्रा करना चाहते हैं, तो यह बहुत आसान होगा।

फिर भी, मैंने अपने WinForms और ASP.NET अवतारों के लिए समान व्यावसायिक ऑब्जेक्ट्स और डेटा लेयर्स का उपयोग करने वाली प्रणाली के लिए बहुत सारे अवसंरचना और कोडित किए हैं, और हमारा कोडबेस 20+ का समर्थन और विकास करने में सक्षम होने के लिए पर्याप्त मजबूत और पुन: प्रयोज्य है। WinForms एप्लिकेशन की वेब साइट के अलग-अलग कॉन्फ़िगर किए गए संस्करण और साथ ही बढ़ती संख्या (वर्तमान में 5) ...

... दो की एक विकास टीम के साथ।

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

... सिवाय कोड लिखने के कि या तो आवश्यकताओं को पूरा किया, या खुद को छोड़कर किसी को भी समझा जा सकता है। जब मैंने अंततः पीएम को अपने अनुबंध को नवीनीकृत नहीं करने के लिए राजी किया, तो उनके द्वारा लिखी गई हर एक चीज को फिर से लिखना पड़ा।

समझदारी से अपने साक्षात्कारों की संरचना करें ...


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

-नियंत्रित - "स्कंक कार्य" के 4 महीने के प्रयास के बाद उन्होंने टीम के साथ .... उनके स्थानांतरण पत्र दूसरे विभाग को सौंपे - और कोई कोड नहीं। बाकी टीम को टुकड़े उठाने थे।
मार्क ब्रिटिंगम

1
निचला रेखा, हालांकि: मैं वास्तव में आपके अवलोकन को पसंद करता हूं कि कोडिंग कंस्ट्रक्शंस का विशिष्ट ज्ञान ग्राहक की जरूरत वाले काम करने वाले सॉफ़्टवेयर बनाने की क्षमता की गारंटी नहीं है।
मार्क ब्रिटिंगम

34

जॉन स्कीट कौन है?


11
या बेहतर: क्या आप जॉन स्कीट हैं? ;-)
splattne

यह वास्तव में C # पदों के लिए अच्छा प्रश्न है। यह देखते हुए कि जॉन स्कीट अब C # संबंधित के लिए stackoverflow / google खोजों का मालिक है। यदि आप नहीं जानते कि वह अब तक कौन है, तो आप या तो जॉन स्कीट हैं या आप C # में प्रोग्रामिंग नहीं कर रहे हैं।
लुबोस हैस्को

2
जॉन स्कीट के लिए कोई अपराध नहीं है - लेकिन मुझे लगता है कि रिक
स्ट्राल

1
@ [एंड्रयू थेकेन]: मैं उस एक पर प्रतिशत खेलता हूँ; "रिक स्ट्राल" के लिए गूगल 38,500 हिट, "जोंन स्कीट" पैदावार 144,000 देता है। इसके अलावा, रिक Strahl SO AFAIK पर पोस्ट नहीं करता है।
स्टीवन ए। लोव

1
दोनों लोग महान हैं कि वे क्या करते हैं ... हमारा लाभ।
जीआर 7

33

मेरे द्वारा पूछे गए अच्छे प्रश्न हैं

  • आपको क्या लगता है कि .NET के बारे में क्या अच्छा है?
  • आपको क्या लगता है कि .NET के बारे में क्या बुरा है?

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


18

मैं हमेशा अपने आप को नरम कौशल की तलाश करूंगा - कोई भी इरादा नहीं। इतना अच्छा OO डिजाइन, परीक्षण संचालित विकास, एक अच्छी बहु (प्रोग्रामिंग) भाषाई पृष्ठभूमि और सभी गोल सामान्य स्मार्टनेस (और हो रही चीजें-नेस मुझे लगता है!)।

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

मुझे उन्हें कुछ कोड लिखना होगा - यह जानने का सबसे अच्छा तरीका कि वे क्या जानते हैं और कैसे काम करते हैं। कोई भी 'एक संदर्भ प्रकार और एक मूल्य प्रकार के बीच अंतर क्या है?'


2
सटीक। रटे हुए सवाल पूछना मुसीबत के लिए पूछ रहा है। मैं जिस कंपनी के लिए काम करता हूं वह पुराने तकनीकी प्रश्न पूछती है, लेकिन ज्यादातर यह है: मेरे पास ये समस्याएं हैं, यहां एक व्हाइटबोर्ड है, मुझे बताएं कि आप उन्हें कैसे हल करेंगे। डरावना लेकिन प्रभावी।
क्रिस ब्रूक्स

4
... लेकिन यदि आप उन्हें साक्षात्कारकर्ता की अपेक्षा से हल नहीं करते हैं, तो आप असफल हो जाते हैं।
gbjbaanb

1
@ जीबीजबान कभी-कभी। लेकिन अगर ऐसा है तो आप वहां काम नहीं करना चाहेंगे। याद रखें, आप कंपनी का साक्षात्कार भी कर रहे हैं। मैंने कुछ कंपनियों को जाना है जो साक्षात्कार में असफल रहीं!
टोनी एननिस

13

ईमानदारी से?

".NET क्या है?"

यदि वे आपको एक स्पष्ट उत्तर दे सकते हैं कि .NET क्या है और क्या नहीं है, इसका उपयोग कैसे किया जाता है, यह किन तत्वों से बना है, आदि ... यदि वे आपको समझा सकते हैं कि वे जानते हैं कि यह क्या है, तो संभावना है कि वे यह अच्छी तरह से पता है।

इस तथ्य का तथ्य यह है कि बहुत से लोग वास्तव में नहीं जानते हैं कि .NET क्या है। यहां तक ​​कि जो लोग इसके लिए प्रोग्राम लिखते हैं।


11

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

यदि प्रश्न को संक्षिप्त वाक्य या दो में उत्तर दिया जाना काफी आसान है, तो यह आसान है कि आप किसी ऐसे व्यक्ति को बताएं जो नहीं जानता है। आपको अवधारणाओं की समझ और तर्क क्षमता की तलाश होनी चाहिए, न कि सवालों के जवाब देने की उनकी क्षमता "प्रत्येक .NET डेवलपर को जवाब देने में सक्षम होना चाहिए।"


10

संदर्भ और मूल्य प्रकार के बीच अंतर को जानें।

जानते हैं कि घटनाओं को हार्ड संदर्भ के रूप में संग्रहीत किया जाता है (यानी अपंजीकृत घटनाओं को याद रखें या एप्लिकेशन मेमोरी को लीक कर देगा)।

तार अपरिवर्तनीय हैं।


6

मार्टिन फाउलर मंच ज्ञान पर डिजाइन कौशल पसंद करते हैं । दूसरी तरफ आप एक प्रश्न पूछ सकते हैं जो इस तरह के डिजाइन पैटर्न और .NET प्लेटफॉर्म का ज्ञान दिखाएगा:

  • नाम डिज़ाइन पैटर्न और सिद्धांत जिन्हें आप जानते हैं और उनका उपयोग .NET फ्रेमवर्क में कैसे किया जाता है?

4

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


3

यहाँ कुछ प्रोग्रामर्स को फ़िल्टर करने का उपयोग किया गया है जो C # प्रोग्रामर के रूप में नौकरियों के लिए आवेदन कर रहे हैं:

एक संदर्भ प्रकार और एक मूल्य प्रकार के बीच अंतर क्या है?

आइडीएसोपायरी इंटरफ़ेस के बारे में बताएं कि किस C # भाषा के निर्माण के लिए इसकी आवश्यकता है और आप इसे कैसे लागू करेंगे।

यदि कोई नल एक विधि के तर्क के रूप में पारित हो जाता है तो आप किस अपवाद को फेंक देंगे जिसके पास एक अनुबंध है जो उस पैरामीटर के लिए नल की अनुमति नहीं देता है?


मेरा कोड आमतौर पर NullReferenceException को फेंक देगा।
जोशुआ

5
@Joshua, ArgumentNullException आप विफल रहे।
निकोलस डोरियर

3

"एएसपी में से कौन सा: जो भी नियंत्रण आप कभी भी उत्पादन में उपयोग करेंगे और क्यों?"

यह आपको जल्दी से बताएगा कि क्या आपके विषय ने वास्तव में लंबे समय तक एक बड़ी परियोजना का निर्माण और रखरखाव किया है जो डेटाग्रिड्स और लिंकबुटन द्वारा जलाए जाने के लिए पर्याप्त है, या वह अभी भी ड्रैग / ड्रॉप में है "खुद को 21 दिनों के चरण में सिखाएं"।

(उत्तर आकांक्षा है: पुनरावर्तक, आकांक्षा: प्लेसहोल्डर, एस्प: शाब्दिक और एस्प: सामग्री)



2

यह थोड़ा परिवर्तनशील प्रश्न है, और वास्तव में ऐसा नहीं होना चाहिए जिसका आप पूरी तरह से उत्तर देने में सक्षम हों, लेकिन एक ऐसा होना चाहिए जो आपको उत्तर देने में सक्षम हो:

"टास्क एक्स करने के लिए .NET फ्रेमवर्क क्या ऑफर करता है?"

या अधिक विशेष रूप से:

"क्या .NET फ्रेमवर्क में एक ऑब्जेक्ट शामिल है जो X करता है?"

उदाहरण के लिए, मैंने हाल ही में एक ऐसी वस्तु विकसित करने में कुछ घंटे बिताए हैं जो बूलियंस की एक सरणी को संग्रहीत करने और उस पर काम करने के लिए अनुकूलित है, जैसे कि संग्रह-वार नहीं, या, XOR, और, सभी मान सेट करें, आदि। जब तक मैंने अपने सभी यूनिट परीक्षणों को लिखना और इसे सर्वश्रेष्ठ प्रदर्शन के लिए संभव नहीं बना दिया, तब तक मुझे पता चला कि मेरी "बूलर्रे" वस्तु को "बिटअरेयर" नाम के तहत .NET फ्रेमवर्क में पहले से मौजूद है।

यह एक कठिन उत्तर हो सकता है क्योंकि कई बार सबसे अच्छा उत्तर किस वस्तु / सहायकों का उपयोग करना है, यह वह है जिसे आप नहीं जानते हैं या पूरी तरह से समझते हैं। कितना अद्भुत .NET दुनिया होगी अगर हर कोई वास्तव में साधारण स्ट्रिंगबर्ल के बारे में जानता था, जो एक बुनियादी उपकरण है जो प्रदर्शन महत्वपूर्ण मात्रा बढ़ा सकता है।


2

मैं सुझाव दूंगा कि कुछ प्रश्न डॉटनेट का उपयोग करके प्रोग्रामिंग अवधारणाओं की समझ पर केंद्रित हैं

प्रबंधित और मानव रहित वातावरण के बीच अंतर क्या है? जीसी पेशेवरों और विपक्ष जेआईटी पेशेवरों और विपक्ष यदि हमें एप्लिकेशन विकसित करने की आवश्यकता है तो क्या हम डॉटनेट का उपयोग कर सकते हैं? क्यों? (यह पहचान करेगा कि वह डॉटनेट को कैसे देखता है)

मेरा सुझाव है कि छोटे तरीकों को भी लिखें और उनसे बेहतर डॉटनेट कक्षाओं या मानक तरीकों का उपयोग करके बेहतर प्रदर्शन के साथ उन्हें फिर से लिखने के लिए कहें। तार्किक या किसी भी के संदर्भ में गलत तरीके भी लिखें और उसे सही करने के लिए कहें।


2

मैं पहले से उल्लेख किए गए कुछ प्रश्नों के अलावा निम्नलिखित का प्रशंसक हूं:

  • एक प्रतिनिधि क्या है?
  • ऐप डोमेन क्या है?
  • आप लॉक कीवर्ड का उपयोग कब करेंगे?
  • क्या मानक पुस्तकालय सामान्य संग्रह कक्षाएं थ्रेड सुरक्षित हैं?
  • विस्तार विधि क्या है?
  • XmlDocument और XmlReader में क्या अंतर है?
  • आप एप्लिकेशन कॉन्फ़िगरेशन फ़ाइल से कॉन्फ़िगरेशन सेटिंग्स में कैसे पढ़ते हैं?

2

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

कुंद होने के लिए, मैं वास्तव में बहुत अधिक विशिष्ट प्रश्न नहीं पढ़ूंगा, जैसा कि अंतर्निहित प्रतिमान है ' आप अपने विचारों और समझ को कितनी अच्छी तरह से मुखर कर सकते हैं?', कि वास्तव में साक्षात्कारकर्ता की तलाश क्या है। संवादहीनता हमेशा मेरी सबसे बड़ी कमजोरी है क्योंकि मैं जिस तरह से हूं और बहुत आसानी से निराश हो सकता हूं।

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

आप आश्चर्यचकित होंगे कि वास्तव में कितने लोग वफ़ल करेंगे और इसके माध्यम से झांसा देंगे, जिसमें दिन के अंत में उनके 'पैंट डाउन' के रूप में स्पष्ट रूप से बोलना होगा।

मेरी 2 सेंट, सर्वश्रेष्ठ संबंध, टॉम।


2

थोड़ा और:

  1. आंशिक कक्षाएं। और इसकी सीमाएँ?
  2. सीलबंद कक्षाएं
  3. .NET में स्थानीयकरण कैसे किया जा सकता है?
  4. डेटाबेस कनेक्टिविटी
  5. विभिन्न विन्यास फाइल
  6. डेलीगेट्स बनाम इवेंट्स
  7. अप्रबंधित dll पहुँच
  8. कुछ विचार
  9. सामान्य वर्ग
  10. .NET 3.5 में सबसे अधिक
  11. यूनिट टेस्टिंग फ्रेमवर्क जिसका आपने उपयोग किया है।

2

मैं उन "पाठ्यपुस्तक से कुछ नहीं जानता" सवाल पूछूंगा, लेकिन कुछ छेड़छाड़ करने वाले सामान की तरह पूछूंगा:

  • सादे C # में फॉरेस्ट लूप क्या करता है? (उसे इट्रेटर लूप लिखने की उम्मीद है।)
  • क्या एक सिंगलटन है?
  • उसे / उसे एक स्ट्रिंग टू डेटटाइम दें (कोशिश / पकड़ने के बजाय उसे TryParse का उपयोग करने की अपेक्षा करें)
  • सिंगलटन, रणनीति और कमांड पैटर्न को लागू करें
  • उसे / उसके रिफैक्टर को परीक्षण के लिए कोड का एक टुकड़ा दें। टेस्ट के तहत यूनिट से दूर बाहरी सेवाओं को अमूर्त करने और सेवा के अपने स्वयं के टेस्ट-डबल को लागू करने (कोई नकली रूपरेखा प्रदान करने) की अपेक्षा

ये 100% निश्चित नहीं हैं, व्यक्ति के आधार पर मैं उनसे पूछ सकता हूं:

  • उसे / उसे अशक्त इनपुट से एक विधि की रक्षा करने दें (उसे / उसे घोंसले को कम करने के लिए कई रिटर्न का उपयोग करने की उम्मीद करें)
  • कोई वस्तु इनिशियलाइज़र कैसे काम करती है (थ्रेड-सेफ असाइनमेंट लिखने के लिए उसे / उसकी अपेक्षा करना)

इसके अलावा मैं उससे पूछूंगा कि उसने अपना सामान कैसे सीखा है और वह क्या पढ़ रहा है (क्या ब्लॉग, किताबें)।


1

थोड़ा और:

कचरा संग्रहण की सीमाएँ क्या हैं।

फ़ाइनलीज़र और आइडीज़ोफ़ायरी के बारे में जानें।

थ्रेड पूल के बारे में पता होना चाहिए और इसका उपयोग कब करना है।

यदि आप GUI एप्लिकेशन कर रहे हैं - तो ध्यान रखें कि Windows GUI सिंगल थ्रेडेड है।

Foreach का प्रयोग करें (मुझे बहुत से लोग MoveNext इत्यादि करते हुए देखते हैं)


1
मुझे नहीं पता था, इसलिए मैंने कचरा संग्रहण की सीमाओं को देखा ।
MSpeed

1

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

मेरा एक बार साक्षात्कार हो चुका है और मुझे वह तरीका पसंद आया है जहाँ पहले नियोक्ता ने मुझे 30 मिनट में भरने के लिए एक तकनीकी प्रश्नावली दी थी। अगर कोई सफल होता है तो उसे 1 घंटे के इंटरव्यू के लिए बुलाया जाएगा जिसमें पर्सनैलिटी जजमेंट और कैरेक्टर के सवालों के साथ-साथ तकनीकी शब्दजाल भी होंगे।

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

इसके बाद अगले दिन उन्होंने प्रदर्शन में अड़चन वाले क्षेत्रों को कवर करने और डिजाइन और उपयोग किए गए एल्गोरिदम में सुधार पर 30 मिनट की चर्चा की। और एक विशिष्ट स्थिति के साथ पिछले चरण में विकसित अपने एल्गोरिथ्म को बेहतर बनाने के लिए 1 घंटे का वैकल्पिक परीक्षण।

इसलिए इसमें काफी समय लगता है लेकिन इस तरह से आप यह सुनिश्चित कर सकते हैं कि जिस व्यक्ति को आप काम पर रख रहे हैं, वह कम से कम उन अवधारणाओं को जानता है जो एक अच्छे डेवलपर के लिए आवश्यक हैं।


0

मैं उसे एक समस्या देना पसंद करूँगा और उससे पूछ सकता हूँ कि इसे आप .net की सुविधाओं का उपयोग करके हल करें और आपको क्यों लगता है कि यह सबसे अच्छा समाधान है।

यह एक समस्या को हल करने के लिए अपने दृष्टिकोण के साथ-साथ तकनीकी, विश्लेषणात्मक और समस्या को सुलझाने के कौशल के मामले में एक उम्मीदवार की लगभग सभी क्षमताओं को दरार कर देगा।

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