अच्छी साक्षात्कार प्रोग्रामिंग परियोजनाएं [बंद]


26

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

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

किसी के पास कोई अच्छा सुझाव है?


ACM प्रोग्रामिंग प्रतियोगिता प्रश्न आप यहां उन सवालों का एक संग्रह पा सकते हैं ।
whatsisname

1
क्या ये प्रोग्रामिंग पहेली साइटें आपके लिए दिलचस्प होंगी? programmers.stackexchange.com/questions/756/programming-patalog/…
grokus

जवाबों:


43

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

उनकी पसंद की परियोजना आपको किसी भी घंटे के कार्य से अधिक बताती है। और फिर आप इसे और भी अधिक जानने के लिए चर्चा करने में एक घंटा लगा सकते हैं।


4
मुझे याद है कि एक कंपनी में इंटरव्यू लिया जा रहा है और काफी सरल (15-20 लाइन) फंक्शन दिया जा रहा है और पूछा जा रहा है कि "यह क्या करता है?" मैंने उन्हें बताया, फिर पूछा "क्या कोई गलत है?" मुझे बताया गया था कि जिन लोगों का उन्होंने साक्षात्कार लिया था, उनमें से अधिकांश जवाब नहीं दे सके। हो सकता है कि यह एक त्वरित विकल्प हो (मैं किसी को नहीं जानता जो कोड पढ़ सकता है जो इसे नहीं लिख सकता है, लेकिन शायद मैं अभी गलत लोगों से नहीं मिला हूं)।
टीएमएन

4
@ टीएमएन - ओह, हम ऐसा ही करते हैं। लेकिन मैं ऐसे लोगों से मिला हूं जो कोड पढ़ सकते हैं और इसे अच्छी तरह से नहीं लिख सकते हैं ।
पीडीआर

@TMN स्वयं को पढ़ाया जा रहा है, मैंने इसे पढ़ने से कहीं बेहतर होने के बिंदु पर कोड पढ़ने में महत्वपूर्ण समय बिताया । यह हो सकता है और होता है, लेखन में कुशलता लाने के लिए बस समय और अभ्यास होता है।
जिमी हॉफ

28

मैं इस मनमौजी बकवास से बहुत थक गया हूँ। मैं उन जगहों पर गया हूँ, जिन्होंने मुझसे कोड सैंपल माँगे, उन्हें अलग किया, और फिर मुझे उनके सिस्टम से उदाहरण कोड समझाने के लिए कहा, जो ऐसा लग रहा था जैसे 2 साल के बच्चों को फटकारा गया था। मुझे अस्पष्ट प्रकार के अल्ग्रोथम्स, नेटवर्क सेवाओं, गुईस, डेटा संरचनाओं (हमेशा एक पेड़ या एक जुड़ी हुई सूची) को लागू करने के लिए कहा गया है। इंटरव्यू लेने वाले को लगता है कि प्रोग्रामिंग का सबसे महत्वपूर्ण हिस्सा है।

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


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

+1 @ जेर। पिछली बार जब मैंने एक प्रोग्रामर के लिए साक्षात्कार लिया था, आठ में से छह उम्मीदवार सबसे बुनियादी कार्यों (यहां तक ​​कि Google और एसओ के साथ) को पूरा नहीं कर सके। कोई तरीका नहीं है कि मैं उन्हें पाँच मिनट के लिए अपने वास्तविक कोडबेस के पास जाने दूं, अकेले 30 दिन।
जूलिया हेवर्ड

2
@ जूलियाहवर्ड: मैं किसी से अपेक्षा करूंगा कि वह वेब / डॉक्यूमेंटेशन को दिए गए एक्सेस के साथ किसी प्रोजेक्ट को पूरा करने में सक्षम हो। समस्या तब पैदा होती है जब कोई व्यक्ति इंटरनेट पर पहुंच के बिना buzzwords और अस्पष्ट तरह के algorhythms फेंकना शुरू कर देता है , झूठी धारणा के तहत जो विभिन्न प्रकार की तकनीकों को याद रखता है या जो हर दिन नौकरी के प्रदर्शन के लिए महत्वपूर्ण है।
शैतानिकपुपी 15

12

किसी को अपने समय पर एक व्यावहारिक परियोजना करने की अनुमति देना जरूरी नहीं है कि यह वह है जो इसे करता है।

हर कोई साक्षात्कार के लिए जल्दी पहुंचता है (ठीक है, कम से कम)। जब तक हम उन्हें देखने के लिए तैयार नहीं होते हैं, तब तक उनके पास काम करने के लिए हमारे पास 'प्रतीक्षा करते समय' शीट होती है। इसमें आठ (8) प्रश्न हैं जो आवेदक के ज्ञान का परीक्षण करते हैं जिस भाषा में हम मुख्य रूप से उपयोग करते हैं।

हम सभी के जवाबों की तलाश नहीं कर रहे हैं, क्योंकि कोई भी उनके सामने कंप्यूटर के साथ मिल सकता है। हम प्रक्रिया की तलाश कर रहे हैं, क्या वे इस सवाल का भी प्रयास करते हैं कि वे अपने जवाब कैसे दें।

जब हम साक्षात्कार में आते हैं तो हम उनके साथ जाते हैं और उनके पास मौजूद किसी भी प्रश्न का उत्तर देते हैं जिससे उन्हें सही उत्तर मिल सके। यह हमें यह पूछने की अनुमति भी देता है कि उन्हें कैसे उत्तर मिले जिनके साथ वे आए थे।

यह पिछले काम के साथ संयुक्त है, हम पाते हैं, उम्मीदवारों को छानने का सबसे अच्छा तरीका है।

UPDATE 2016/06/15

हमने अपनी प्रक्रिया को महत्वपूर्ण रूप से बदल दिया है कि हम डेवलपर्स को कैसे किराए पर लेते हैं।

चरण 1: 15 मिनट का फोन साक्षात्कार जहां हम 7 प्रश्न पूछते हैं। पहले 2 हैं "सबसे मजेदार चीज क्या है जिस पर आपने काम किया है?" (संबंधित प्रोग्रामिंग करने की ज़रूरत नहीं है) और "आप अपने खाली समय में मनोरंजन के लिए कोड क्या करते हैं?"।

चरण 2: एक मिनी परियोजना जिसे वे अपने समय पर पूरा करते हैं। हम फिर उनके साथ एक स्क्रीन शेयर करते हैं और वे हमें दिखाते हैं कि उन्होंने क्या बनाया है। स्क्रीन शेयर के दौरान हम उन्हें अपने प्रोजेक्ट में दो बदलाव करने के लिए भी प्राप्त करते हैं और फिर उन्हें इसके माध्यम से काम करते हुए देखते हैं और इसे काम करते हुए प्राप्त करते हैं।

चरण 3: व्यक्ति साक्षात्कार में।

यह प्रक्रिया हमें तुरंत (चरण 1) संस्कृति को फिट करने की अनुमति देती है। यदि वे काम कर सकते हैं और वास्तव में उनकी बात (चरण 2) चल सकती है। अंत में, सुनिश्चित करें कि हम जो खोज रहे हैं, उसके साथ उनके मूल्य इनलाइन हैं (चरण 3)।


1
यह शानदार है। मुझें यह पसंद है!
दाविदस्किंस

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

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

@ जॉन। सहमत, यह नहीं हो सकता "ओह, तुम वहाँ एक अल्पविराम भूल गए"। जैसा कि मैंने उल्लेख किया है कि यह कैसे चीजों को समझने और अगर वे भाषा को समझते हैं, तो एक समझ प्राप्त करना है। यदि वे जानते हैं कि उनका सामान निश्चित रूप से बड़ी चीजों की ओर बढ़ता है।
आरडीएल

2
@RDL, हमारी अधिकांश साक्षात्कार प्रक्रिया को उस तरह के मज़ेदार के लिए डिज़ाइन किया गया है जिस तरह के डेवलपर की हम तलाश कर रहे हैं और बाकी के लिए नरक। आप जानते हैं कि अच्छे देव एक चुनौती का विरोध नहीं कर सकते।
पीडीआर

4

आप जॉन जैगर के शानदार साइबर-डोजो को देखना चाहते हैं ।

यह एक वेब आधारित एकीकृत करने के लिए डिज़ाइन वातावरण है जानबूझकर अभ्यास की टेस्ट प्रेरित विकास और टीम की गतिशीलता के बारे में सीखने। इसमें कई छोटे प्रोग्रामिंग कार्य (काटा) हैं और पायथन और रूबी से जावा और सी ++ तक कई भाषाओं का समर्थन करते हैं।

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

सबसे अच्छी बात यह है कि एक काटा करने के बाद आप वापस जा सकते हैं और प्रत्येक काटा के लाल / हरे रंग की प्रगति (या शायद नहीं तो वे TDD * 8 ') नहीं करते हैं। प्रत्येक संकलन / परीक्षण, परीक्षण के परिणामों के साथ एक गिट रिपॉजिटरी में परिवर्तन करता है।

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

यदि आप अपना खुद का साइबरडोजो सर्वर चाहते हैं, तो पूरा प्रोजेक्ट जीथब में पाया जा सकता है और वहां से टर्नकी लिनक्स उपकरण वर्चुअल मशीन भी जुड़ी हुई है, जिसका अर्थ है कि आपके पास पहले से ही VMware प्लेयर या वर्चुअलबॉक्स स्थापित है, आप ऊपर और अंदर चल सकते हैं उपकरण डाउनलोड करने के कुछ मिनट!


3

मैंने केवल एक बार कंपनी के साथ साक्षात्कार किया है जिसने यह किया है। उन्होंने 6 या 7 समस्याओं का प्रश्न पत्र दिया। निर्देश थे कि प्रत्येक समस्या को हल करने के लिए एक विधि बनाई जाए।

कार्य का एक हिस्सा यह महसूस करना था कि आप कोड का पुन: उपयोग कर सकते हैं। समस्याएं अन्य समाधानों से कोड का उपयोग कर सकती हैं। यह या तो अनुक्रमिक नहीं था। उदाहरण के लिए, प्रश्न 5 के लिए प्रयुक्त विधि का उपयोग करके प्रश्न 3 लिखा जा सकता है।

मैं सुझाव दूंगा कि ऐसा कुछ हो।

सवालों के लिए के रूप में? प्रोजेक्ट यूलर साइट पर कुछ शुरुआती सवाल अच्छे हैं।

आप एक सरल गेम भी आज़मा सकते हैं यदि आप यह देखना चाहते हैं कि वे कैसे एक परियोजना को एक साथ रख सकते हैं।

या, यदि आप किसी चीज़ के साथ नहीं आना चाहते हैं, तो उन्हें अंतिम परियोजना से कुछ कोड में भेजने के लिए कहें।


3

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

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

आप इस प्रश्न के साथ क्या देख रहे हैं? इसे हल करने के कितने तरीके हैं, और प्रत्येक दृष्टिकोण आपको उस व्यक्ति के बारे में बताता है जिसने उत्तर लिखा था? क्या इस प्रश्न के प्रभावी उत्तर द्वारा कौशल का प्रदर्शन किया जाता है वही कौशल जो आपके व्यवसाय के लिए सबसे महत्वपूर्ण हैं?

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


क्षमा करें आपका समय बर्बाद हुआ है।
Bigtang

1
@ बीगटांग, ऐसा बिल्कुल नहीं है। क्षमा करें यदि उपरोक्त एक शेख़ी के रूप में आता है - मैं देख सकता हूं कि यह कैसे हो सकता है - लेकिन मेरा लक्ष्य उन कौशल के आधार पर अपना खुद का प्रोजेक्ट बनाने के लिए था जो आप नए काम के लिए देख रहे हैं। आप लगभग किसी भी चीज़ से थोड़ा सा प्रोजेक्ट बना सकते हैं, लेकिन आपको और साक्षात्कारकर्ताओं दोनों के लिए इसे सार्थक बनाने के लिए, आवश्यकताओं को उन कौशलों द्वारा संचालित किया जाना चाहिए जिन्हें आप सबसे अधिक महत्व देते हैं।
कालेब

पहले वाक्य को पूरी तरह से हटा दिया (सम्मानपूर्वक, यदि आप अपने दम पर एक अच्छी परियोजना के साथ आने के लिए पर्याप्त चतुर नहीं हैं, तो आपको क्या लगता है कि आप उम्मीदवारों की प्रस्तुतियाँ का मूल्यांकन करने के लिए पर्याप्त चतुर हैं?)) क्या वास्तव में कोई जोड़ नहीं रहा था। मूल्य और थोड़ा रान्टिश लगता है।
माइकल ड्यूरेंट

0

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

वे किस भाषा में इसे लिखेंगे? यदि वे ऐसे स्कूल से बाहर आ रहे हैं जो C पर बहुत अधिक ध्यान केंद्रित करता है, तो यह लिखना उतना जल्दी नहीं होगा जितना कि Python / Perl / Ruby आदि को सिखाता है ... या जावा या C # भी। बहरहाल, यह एक अच्छा परीक्षण है।

मैं साक्षात्कार के दौरान वास्तव में कुछ आसान सुझाव देता हूं। कोई ट्रिक सवाल नहीं। मैं इस पर TMN के साथ हूं। उन्हें कुछ फ़ंक्शन दें जो बुनियादी कार्य करते हैं और पूछते हैं कि वे क्या करते हैं (अन्य लोगों के कोड को पढ़ना)। फिर उन्हें अपनी पसंद की भाषा में लिखने के लिए कुछ बुनियादी कार्य (<20 पंक्तियाँ) दें। यह जानने के लिए कि वे कोड कर सकते हैं या नहीं (प्रवेश स्तर की स्थिति में) प्रवेश स्तर के लिए पर्याप्त होना चाहिए। साक्षात्कार और जीपीए के साथ आपको एक अच्छा विचार देना चाहिए जो आपको जानना चाहिए।


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

सच कहूं, तो विभाजन () और सरणियों / सूचियों (पुश / एपेंड के साथ) के साथ कोई भी भाषा यह तुच्छ बना देगी। एक सी प्रोग्रामर को स्प्लिट () और लिस्ट को 'मानने' की अनुमति दें, और यह बहुत ही मामूली हो जाता है :-)
ChuckCottrill

-1

उन्हें उस भाषा के डिज़ाइन प्रतिमानों का उपयोग करके, जिस भी भाषा में आप देख रहे हैं, उसके लिए कॉनवे के गेम ऑफ़ लाइफ को लागू करें ।

एक जावा या सी # कॉनवे के जीवन का खेल वस्तु उन्मुख होना चाहिए, एलआईएसपी या एफ # कार्यात्मक होगा, आदि।


2
इसे पूरा करने के लिए आप उन्हें कितना समय देंगे?
जॉब

पूरे OO कार्यान्वयन के माध्यम से इसे प्राप्त करने में मुझे लगभग 4 घंटे लगते हैं, लेकिन मैंने इसे लगभग एक दर्जन बार किया है। यदि आप यह देखना चाहते हैं कि वे कैसे सोचते हैं और उन्हें कितना मिलता है (और वे परीक्षण योग्य कोड लिखते हैं या नहीं), तो उन्हें इससे कम समय दें। यदि आप इसे व्यक्तिगत रूप से करते हैं, तो उन्हें 45 मिनट दें और देखें कि उन्हें कितनी दूरी मिलती है और उन्होंने जो रास्ता चुना है, उसे क्यों चुना। यह उन समस्याओं में से एक है जो आप उन्हें समय से पहले के बारे में जानना चाहते हैं ताकि वे पूरी तरह से खो न जाएं, यहां तक ​​कि उन्हें अपने दम पर प्रयास करने के लिए प्रोत्साहित करें। यह एक प्रोग्रामर के बारे में बहुत कुछ बताता है।
जॉर्ज स्टॉकर

8
एक उम्मीदवार से कॉनवे के गेम ऑफ़ लाइफ़ को लिखने के लिए कहने का परीक्षण करता है कि हाल ही में वे कॉलेज में कैसे थे, या उस समस्या को लिखित और अध्ययन किया। आप @ जॉर्ज स्टॉकर को काम पर रखेंगे क्योंकि उन्होंने इसे एक दर्जन बार लिखा है। किसी भी वास्तविक दुनिया के विकास कार्य के लिए जीवन का खेल कितना सहसंबद्ध है?
ChuckCottrill
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.