2009-07-09 4 views
9

हम जल्द ही एक .NET डेवलपर को काम पर रखने रहे हैं, और मैं एक परीक्षण है, जो aprox ले जाएगा बनाने के लिए सौंपा गया था: हल करने के लिए 1 घंटे। एक परीक्षण जो प्रोग्रामर ज्ञान (मुख्य रूप से) सी # और एएसपी.नेट में परीक्षण करेगा।प्रोग्रामिंग किराये परीक्षण - टेस्ट सी # में एक डेवलपर्स ज्ञान/ASP.NET

  • उपयोग परियोजना # 1 निर्दिष्ट URL और आउटपुट सभी लिंक (एंकर) युक्त लंगर का नाम "XXXXXXXXX" से डेटा (एचटीएमएल) को पढ़ने के लिए:

    यह वही है मैं अब तक के साथ आ गया है। आप तृतीय पक्ष पुस्तकालयों का उपयोग करने के लिए स्वतंत्र हैं। यहां मेरा मुख्य विचार यह जांचना था कि डेवलपर समस्या को हल करने के बारे में कैसे जाएगा। उदाहरण के लिए:

    • एक regex जो सभी डेटा की जरूरत को पार्स हैं बनाएँ।
    • एक डोम-पेड़ बनाएं और सभी एंकर नोड्स को खोजने के लिए XPATH का उपयोग करें।
    • संपूर्ण स्ट्रिंग को इटरेट करें और मैन्युअल स्ट्रिंग तुलना करें।
  • एक नया समाधान बनाएं जहां आप .NET मास्टरपेज का उपयोग प्रदर्शित करते हैं।
    • ******** डेटाबेस का हल कनेक्ट करें। और "******** _ ग्राहकों" तालिका से सभी ग्राहकों को आउटपुट करें।
    • एक नया बटन बनाएं जो AJAX का उपयोग कर सभी उपयोगकर्ताओं को रीफ्रेश करता है।

      सुंदर मूलभूत सामान। हालांकि, मैंने नीचे दिया गया एक भी जोड़ा। मुख्य रूप से डेवलपर्स ओओ ज्ञान का परीक्षण करने के लिए। क्या आपको लगता है कि यह भी "ओवरकिल" है, या आप किस तरह का परीक्षण सुझाएंगे? यदि आप एएसपी.नेट डेवलपर को किराए पर लेना चाहते थे, तो आपका मुख्य ध्यान क्या होगा? ADO.NET? आईओ? स्ट्रिंग हैंडलिंग?
  • फैक्टरी, फैक्टरी विधि, कमांड या सजावटी पैटर्न की कार्यक्षमता का प्रदर्शन करने वाला इंटरफेस/अमूर्त वर्ग कार्यान्वयन बनाएं। आपको किसी भी कार्यक्षमता को लागू करने की आवश्यकता नहीं है, बस अपनी अमूर्त कक्षा में टिप्पणियों का उपयोग करें।

अग्रिम धन्यवाद!

+0

Overkill ??? क्या मैं इस तरह की चीजों से अधिक हो सकता हूं? कृप्या???? } :) – Shimmy

+0

एचटीएमएलएजिलिटीपैक और एएसपी.नेट गतिशील डेटा! – sisve

+1

क्या आप इस बारे में और बता सकते हैं कि व्यक्ति अपने काम में क्या कर रहा है? –

उत्तर

0

पहला परीक्षण आप एक बुनियादी देव के लिए 10min-40min लेना चाहिए सुझाव दिया - मैं एक वेब क्रॉलर मैं अपने पुस्तकालय में है कि XML करने के लिए HTML में कनवर्ट करता है तो आसानी से प्रयोग करेंगे एक्सएमएल के लिए Linq का उपयोग करें।

मैं लैम्ब्डा अभिव्यक्तियों के लिए परीक्षण करता हूं, प्रदर्शन पैटर्न फाइलों को बनाए रखता है, या कई फ़ाइलों को गतिशील रूप से ऑब्जेक्ट लिखता हूं।

शायद तुम unmanged कोड, संकेत आदि परीक्षण करना चाहते हैं

मैं donno, im सिर्फ लेखन-jabbering जबकि बातें मेरे मन अप करने के लिए आ रहे हैं, मैं चीजें हैं जो मुश्किल था मेरे को लागू करने के लिए लिखा था।

+0

यह वही समाधान है जिसे हम देखना चाहते हैं! लेकिन इसे हल करने के बजाय, डेवलपर के ज्ञान का परीक्षण करने के लिए आप किस प्रकार का परीक्षण जोड़ देंगे? कुछ बुनियादी (बहुत बुनियादी नहीं) और .NET विशिष्ट। कोई विचार? –

+0

यदि आप बुनियादी सामग्री की तलाश में हैं तो मुझे लगता है कि फ़ाइलों को लिखना, LINQ व्यवहार एक अच्छा परीक्षण होगा। लेकिन ध्यान दें, आप उसे जो भी चाहें उसके 10 लाइन कोड लिख सकते हैं और फिर जांच सकते हैं कि उसका कोडिंग पैटर्न समझ में आता है या नहीं। स्ट्रिंग एक्स; x = "aaaaa"; यह नहीं है कि आप क्या देख रहे हैं ... मैंने आपको एक कठोर उदाहरण दिया लेकिन मुझे लगता है कि तुमने मुझे मिल गया। – Shimmy

+1

यही वह है जिसे मैं बाद में ढूंढूंगा। और जब मैं पूरी तरह से कोड का उपयोग कर आता हूं तो मैं बहुत कठोर हूं। लेकिन LINQ एक अच्छा सुझाव है! शायद कई चीजों को फिर से शुरू कर देगा :-) –

2

आपको GeekInterview -- a good source for interview questions पर सैकड़ों प्रश्न पूछना चाहिए।

+0

एक नज़र में उस साइट पर बहुत सारे सामान्य प्रकार के प्रश्न हैं जो आपको उम्मीदवार के बारे में ज्यादा नहीं बताएंगे गहरी क्षमताओं एक साक्षात्कारकर्ता के रूप में मैं बहुत सारे प्रश्नों की तलाश नहीं कर रहा हूं, लेकिन कुछ प्रभावी प्रश्न जो सूचनात्मक प्रतिक्रियाओं को प्रेरित करेंगे। – Richard

3

मैं सोचा होगा कि यह केवल एक परीक्षण है कि यह आसान आप अलग 'कौशल बकेट' में डेवलपर्स डाल करने के लिए होगा बनाने के लिए बेहतर होगा।

क्यों तीन या चार वर्गों या सुविधाओं है कि डेवलपर 'परत' शीर्ष पर सुविधाओं एक और उनकी प्रोग्रामिंग और डिजाइन कौशल दिखाने के लिए करना होगा नहीं।

  • भाग 1: एक्स आसान कठिनाई सुविधाओं को लागू करें।
  • भाग 2: एक्स मध्यम कठिनाई सुविधाओं को कार्यान्वित करें।
  • भाग 3: x कठिन सुविधाओं को कार्यान्वित करें।
  • भाग 4: एक्स बहुत मुश्किल सुविधाओं को लागू करें।

और डेवलपर को आवेदन लिखने के लिए 1 घंटा दें। इसे यथार्थवादी बनाएं कि वे दिए गए समय सीमा में सुविधाओं को लागू कर सकते हैं।

जोएल और जेफ स्टैक ओवरफ्लो पॉडकास्ट पर कहते हैं, डेवलपर कौशल और गति के बीच सीधा सहसंबंध है।

परीक्षाओं के तरीके के बारे में सोचें? यदि हम अनंत समय रखते हैं, लेकिन 1 घंटे में हम सभी परीक्षाओं में 100% प्रश्न सही कर सकते हैं?

इस तरह, यदि कोई डेवलपर आपका परीक्षण लेता है और केवल समय अवधि में धारा 2 तक सुविधाओं को लागू करता है, तो आपके पास एक सुरक्षित संकेत होना चाहिए कि वे नौकरी के लिए उपयुक्त नहीं हैं। धारा 3 की सभी सुविधाएं पूरी की गई हैं, तो वे काफी अच्छे हैं और धारा 4 पूर्ण संकेत देगा कि वे बहुत अनुभवी हैं और बाकी के ऊपर मामूली कटौती करते हैं।

हालांकि मैं डेवलपर द्वारा कोड को दी गई समग्र पॉलिश को भी देखता हूं। अगर उन्होंने धारा 4 तक सभी सुविधाओं को लागू किया है, लेकिन खराब है, तो वे भी आप चाहते हैं कि कोई भी नहीं होने जा रहे हैं। अगर एक डेवलपर केवल धारा 3 तक करता था लेकिन सबकुछ बहुत सुंदर ढंग से लागू करता था, तो मैं उन्हें किराए पर लेना चाहता था।

मुझे यह भी लगता है कि 1 घंटा शायद थोड़ा लंबा है। मैं 10-40 मिनट का लक्ष्य रखता हूं जाहिर है कि आपको प्रस्तावित धारा 4 में कटौती करने की आवश्यकता हो सकती है।

+1

कभी-कभी एक अच्छा कोडर होता है लेकिन इसमें कोई कमी नहीं होती है, एक बड़ी कठिनाई का सामना करना पड़ता है: "नरक मैं क्या सोच सकता हूं, बस मुझे कार्य करें!" – Shimmy

+2

यदि उनके पास कोई कल्पना नहीं है, तो मैं उन्हें एक अच्छा प्रोग्रामर नहीं कहूंगा। प्रोग्रामिंग समस्या निवारण है और यदि आप मौलिक रूप से समस्याओं का समाधान नहीं कर सकते हैं तो मैं कहूंगा कि वहां कुछ समस्या है। –

1

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

22

आपके द्वारा दिया गया कार्य अनिवार्य रूप से एक दिन या दो कोडिंग कोडिंग है यदि आप उचित रूप से पठनीय कोड प्राप्त करना चाहते हैं। एक घंटे के भीतर मुझे लगता है कि मैं ऐसा करूँगा, लेकिन आपको कोड को पढ़ना होगा जिसमें कृत्रिम रूप से नामित विधियों, अपठनीय regexes, अजीब कॉलबैक, कोई त्रुटि हैंडलिंग और समग्र रूप से सुंदर बदसूरत है। इसे देखकर आप मुझे किराया नहीं देंगे।

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

उसने कहा, मुझे नहीं पता कि परीक्षण किसी के लिए भर्ती के लिए सबसे अच्छा विकल्प है या नहीं।कुछ साक्षात्कार ब्लॉगर्स अपने अनुभव के बारे में लिखा था साक्षात्कार के टन का आयोजन से आ रही: स्टीव येग द्वारा Spolksy

  • Truth about interviewing, Get that job at Google (और कई अन्य) योएल द्वारा

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

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

    अच्छे प्रोग्रामिंग प्रश्नों के कुछ स्रोत हैं जो कोडिंग और एल्गोरिदम के बीच कहीं हैं जो आपको प्रेरित कर सकते हैं। वे .NET का परीक्षण नहीं करते हैं, लेकिन स्मार्ट प्रोग्रामर के बहुत अच्छे संकेतक हैं।

  • +0

    "गैज़िलियन"! lol – Shimmy

    +1

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

    2

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

    मैं यह भी सिफारिश करता हूं कि आप प्रक्रिया के विभिन्न हिस्सों में उम्मीदवार के दो पहलुओं का पता लगाएं। मैं आम तौर पर ज्ञान के उम्मीदवार स्तर को मापने के लिए हमारे प्रोजेक्ट पर उपयोग किए जा रहे प्रौद्योगिकी ढेर के बारे में प्रश्न पूछता हूं क्योंकि यह उस ढेर से संबंधित है।

    फिर मैं उन्हें एक शुद्ध समस्या हल करने के सवाल पूछता हूं और मैं उन्हें समस्या का समाधान करने के लिए सबसे अधिक आरामदायक तकनीक का उपयोग करने की अनुमति देता हूं (तकनीक की उनकी पसंद एक महत्वपूर्ण संकेतक हो सकती है)।

    मुझे विशेष रूप से Graph Theory संबंधित समस्याएं पसंद हैं। उम्मीदवार समाधान आपको एक टन बताएंगे कि वे कैसे पहुंचते हैं, समस्याओं का समाधान करते हैं और साथ ही वे अपने समाधानों को कैसे मान्य करते हैं।

    समस्या साक्षात्कार के भाग को सुलझाने के हिस्से के रूप के लिए आप देख जाना चाहिए:

    • उचित डेटा संरचना डिजाइन
    • OO सर्वोत्तम प्रथाओं का कार्यान्वयन
    • उचित समाधान (कर सकते हैं वे समस्याओं को प्रभावी ढंग से डिबग। .. इसे देखने का एक शानदार तरीका यह है कि उन्हें कंप्यूटर का उपयोग करने, उन्हें व्हाइटबोर्ड पर कोड बनाने और उनके सिर में डीबग करने की अनुमति न दें)
    • उचित समाधान सत्यापन (क्या वे परीक्षण मामलों के साथ आते हैं)
    2

    मेरे 2 सेंट:

    हम आसान है कि मेरी कंपनी में एक प्रोग्रामिंग परीक्षण किया है।असल में, आपको ArrayList क्लास को विस्तारित श्रोता पैटर्न को कार्यान्वित करना होगा, इसके लिए यूनिट परीक्षण बनाएं (पर आधारित कम से कम जो हमें चाहिए), कोने के मामलों को दस्तावेज करें, प्रोग्राम को स्वयं दस्तावेज़ करें, और फिर परीक्षण भेजें हमारे पास वापस

    एक डेवलपर को उस परीक्षण को पूरा करने के लिए 48 घंटे हैं। हम परीक्षण में उत्पादन की गुणवत्ता के लिए पूछते हैं। हम निम्नलिखित मदों का परीक्षण करना चाहते हैं:

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

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

    लेकिन यदि आप कुछ ऐसी चीज मांगते हैं जो कि मुश्किल है और आप डेवलपर का साक्षात्कार कर रहे हैं, तो आप जांच सकते हैं कि वह समस्या को हल करने के लिए कैसे जा रहा है - मुझे नहीं लगता कि यह वास्तव में मायने रखता है अगर उसे 100% सही नहीं मिल रहा है जवाब दें, जब तक कि वह कोड पर मिली समस्याओं के बारे में बात कर सके और दिखाए कि वे वास्तव में जो भी आपने उन्हें समझाया है उन्हें समझते हैं।

    +0

    48 घंटे का मतलब है वास्तव में ?? – Neel

    +1

    आपका क्या मतलब है? यह पर्याप्त समय नहीं है, या यह बहुत अधिक समय है? –

    +0

    मेरे अनुसार जो बहुत अधिक समय है !!! – Neel

    4

    1 घंटे के भीतर आप केवल अपने प्रोग्रामिंग कौशल का परीक्षण कर सकते हैं, लेकिन कोड नमूना लिखना पर्याप्त नहीं है।

    इस सी # पर एक नजर डालें/ASP.NET MVC परीक्षण:

    http://tests4geeks.com/test/asp-net-mvc-c-sharp

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

    यदि आप अभी भी उसे कुछ कोड लिखना चाहते हैं। यह कुछ विचार है:

    छात्र और विषय हैं। कृपया 3 पेज (एएसपीनेट एमवीसी या वेब फॉर्म) लिखने के लिए कहें। पहले और दूसरे - छात्रों और विषयों के शब्दकोश को संपादित करने के लिए। तीसरा रूप तालिका होना चाहिए। छात्र बाएं कॉलम में हैं। विषय शीर्ष पंक्ति में हैं। अंक छेड़छाड़ पर हैं। प्रत्येक चिह्न को संपादित किया जा सकता है (टेक्स्ट बॉक्स) और सहेजा गया। बचत "सामान्य" बटन पर क्लिक करके कार्यान्वित किया जा सकता है। या यह अजाक्स का उपयोग कर स्वचालित रूप से प्रत्येक सेल को बचा सकता है।

    यह बहुत आसान उदाहरण है, लेकिन यह आपको दिखाएगा कि उपयोगकर्ता कोड कैसे लिखता है, वह किस तकनीक का उपयोग करता है।

    -2

    कुछ दिन पहले मुझे कौशल बॉक्स वेबसाइट पर सी # प्रोग्रामिंग परीक्षा पास करने के लिए आमंत्रित किया गया था, वहां 30 प्रश्नोत्तरी थी और इसे पास करने के लिए 45 समय थे। नीचे उनमें से कुछ हैं:

    1) प्रोग्राम चलाने से क्या मुद्रित किया जाएगा?

     
        #if DEBUG 
          Console.WriteLine("DEBUG"); 
        #else 
          Console.WriteLine("RELEASE"); 
        #endif 
    

    2) क्या SomeMethod() कॉल का परिणाम हो जाएगा:

     
    
        public static void SomeMethod() 
        { 
         string s1 = "a"; 
         string s2 = "b"; 
         Swap(ref s1, ref s2); 
         Console.WriteLine(s1); 
         Console.WriteLine(s2); 
        } 
    
        public static void Swap(ref Object a, ref Object b) 
        { 
         Object t = b; 
         b = a; 
         a = t; 
        } 
    

    यहाँ संदर्भ, मुझे लगता है कि आप और अधिक सी # पा सकते हैं के लिए एक कड़ी है quezzes वहाँ http://skillbox.io

    संबंधित मुद्दे