कैसे स्कैला डेवलपर्स का साक्षात्कार लिया जा रहा है [बंद]


17

स्काला प्रोग्रामर का साक्षात्कार कैसे किया जा रहा है? एक स्केल डेवलपर का साक्षात्कार करते समय साक्षात्कारकर्ता को कौन से पहलू दिखते हैं?


10
सीढ़ी पर खड़े होने के दौरान उन्हें FizzBuzz कोड करना होगा।
जॉब

2
@Job अतिरिक्त अंक अगर FizzBuzz स्टेट और IO मोनैड का उपयोग करता है! :-)
डैनियल सी। सोबरल

मुझे स्काला डिवेलपर्स से कुछ सवाल मिले और उन्होंने खुद कुछ जवाब लिखने का फैसला किया। मामले में किसी को दिलचस्पी है: pedrorijo.com/blog/scala-interview-questions
pedrorijo91

जवाबों:


17

सबसे पहले, मैं कहूंगा, सोचिए कि आपको स्काला डेवलपर की आवश्यकता क्यों है। क्या यह वास्तव में स्काला है जिसकी आपको आवश्यकता है? इस बारे में सोचें कि स्काला (आईडीई, बिल्ड टूल्स, लिबास, जावा के ऊपर जटिलता की एक और परत ...) के साथ क्या आता है। वापस सवाल पर। यह दो पहलुओं में जाता है: सैद्धांतिक समझ और व्यावहारिक क्षमता। "सिद्धांत" चीज़ को आपको मूर्ख मत बनने दो। यह स्काला में उतना ही महत्वपूर्ण है जितना जावा में व्यावहारिकता महत्वपूर्ण है।

सैद्धांतिक

  • देखें कि क्या वे जानते हैं कि वास्तव में कौन से कार्यात्मक प्रतिमान हैं। उन्हें दर्शन और अभ्यास में दो प्रतिमानों (एफपी बनाम अनिवार्यता) की तुलना करने के लिए कहें। यदि वे एफपी के लिए पूर्ण या आंशिक समर्थन वाली भाषाओं से उदाहरण दे सकते हैं, तो यह उनके लिए एक प्लस है।

सिद्धांत और प्रथा

  • देखें कि क्या वे वास्तव में सही तरीके से कार्यात्मक प्रोग्रामिंग कर सकते हैं। उनसे सूची, नक्शे, ज़िपिंग और पुनरावृत्ति के बारे में पूछें। इसके बाद क्लोजर, लैम्ब्डा, रिडक्शन, हाई ऑर्डर फंक्शन और इम्युनिटी आती है।

व्यावहारिक

  • देखें कि क्या वे एक अनिवार्य कोड स्निपेट को एक अच्छे कार्यात्मक विकल्प में बदल सकते हैं (ऊपर देखें)। एक लूप आज़माएं जो इन पंक्तियों के साथ कुछ गणित या कुछ को लागू करता है।

  • कार्यात्मक बनाम अनिवार्य शैली के लिए उनके स्वाद का पता लगाएं। एक अधिक कार्यात्मक शैली के लिए ऑप्ट करें, लेकिन सावधानी बरतें कि यह डेवलपर की तरफ चरम सीमा तक नहीं पहुंचे।

  • देखें कि वे स्काला लिबास (जैसे लिफ्ट, प्रेषण आदि) और उपकरण (जैसे SBT, fsc, IDEA) के बारे में कितना जानते हैं।

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

सैद्धांतिक

  • उन्हें जावा (PHP, C ++, ऑब्जेक्टिव C या जो भी हो) से Scala की तुलना करने के लिए कहें और उन्हें आपको यह बताने की आवश्यकता है कि Scala के साथ क्या गलत है। देखें कि क्या वे समस्याओं के साथ-साथ फायदे को भी समझते हैं। जब स्कैला की कमियों से परेशानी हो सकती है (उदाहरण के लिए नए Joes के लिए मुश्किल है, तो यह अपरिपक्व है क्योंकि समर्थन जावा आदि की तुलना में बहुत सीमित है)

व्यावहारिक

  • देखें कि क्या वे समुदाय से जुड़े हैं। उनसे मार्टिन ओडस्की और डेविड पोलाक के बारे में पूछें। उन्हें कुछ स्काला प्रोजेक्ट्स का नाम देने और उन्हें आपको (फेसबुक, ट्विटर, फोरस्क्वेयर, डीबीपीडिया और डीबीपीडिया स्पॉटलाइट) बताने के लिए कहें। देखें कि क्या उन्हें पता है कि इन परियोजनाओं में स्काला का उपयोग कैसे किया जाता है। क्या उन्होंने लेख पढ़ा है, वीडियो देखा है, आदि?

  • उनसे किताबों के बारे में पूछें (कुछ ही हैं)। जितना अधिक वे बेहतर जानते हैं।

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

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

पुनश्च: यदि आपको एक अच्छा जो मिला है, तो कृपया सभी तरीकों से मुझे बताएं कि हमें कुछ की आवश्यकता है;)


@ डेव ब्रीसेट्टी, मुझे डेव से "समुदाय से जुड़ा" विचार मिला और विस्तार करने का फैसला किया और यह बहुत लंबे उत्तर के रूप में समाप्त हुआ। समुदाय का उल्लेख करने का श्रेय दवे को जाता है;)
अशकान ख। नाजरी

महान पद। तुम कौन हो?
डेव ब्रिकेट्टी

@ क्या, मैं वर्तमान में प्रमुख डेवलपर @ एवलिन हूं जो एनएलपी को स्काला तरीके से कर रहा है।
अशोकन ख। नाज़री

कुल मिलाकर शानदार उत्तर, लेकिन +1 विशेष रूप से "गलत कारणों" की छोटी सूची के लिए। समान विकृति C ++ कट्टरपंथियों में पाई जा सकती है।
डैरनव

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

8

एक वास्तविक दुनिया के साक्षात्कार में, केवल स्काला को जानना आधा युद्ध जीता है। एक अच्छा प्रोग्रामर किराए पर लेना हमेशा कठिन होता है, चाहे भाषा कोई भी हो!

स्काला प्रोग्रामर भाषा में आते हैं क्योंकि वे पहले से ही जावा में अपने खेल के शीर्ष पर थे और "इसे अगले स्तर पर ले जाना चाहते थे"।

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


1
मैं यह कहना चाहूंगा कि सभी स्काला डेवलपर्स जावा (या जो भी) में शीर्ष पर नहीं हैं, उनमें से कई सिर्फ "मैं अलग हूं" या "मैं स्मार्ट हूं" महसूस करते हैं कि स्काला उन्हें देता है। बहुतों को इस बात का जरा भी सुराग नहीं है कि स्काला वास्तव में क्या है। आप उन लोगों के साथ ;-) सावधान रहना चाहिए
Ashkan के.एच.। 3

@ ashy_32bit - यह आजकल बहुत तेजी से सच है, लेकिन जब 2011 में मैंने इसका जवाब दिया था, तब ऐसा नहीं था
केविन राइट

7

मैं इस तरह की छोटी समस्याओं का समाधान देखना पसंद करता हूं: दो छह-पक्षीय पासा फेंकने के परिणामों का एक हिस्टोग्राम 200 बार करें।

कुछ दिलचस्प जवाब के लिए यहां टिप्पणियां देखें: http://briccetti.blogspot.com/2011/01/dice-throw-simulation-in-java-and-scala.html

डैनियल सोबरल जैसे समाधान के साथ कोई, या केविन राइट से यह एक: http://ideone.com/8LFs3 करीब से देखने लायक होगा।

यदि उत्तर जावा कोड की तरह दिखता है, तो आवेदक के साथ बहुत दूर नहीं हो सकता है।

मैं यह भी देखना चाहूंगा कि वह व्यक्ति स्काला समुदाय से जुड़ा है: पुस्तकों, लेखकों, ओपन सोर्स डेवलपर्स, उपयोगकर्ता समूहों, दिलचस्प लोगों को जानता है।


यद्यपि यह 2 से दूर होने में हमारे उद्योग का औसत धड़कता है;;
डंकन मैकग्रेगर

4

मैंने कभी कोई स्कैला हायरिंग नहीं की है, लेकिन मैं यह समझने की कोशिश करूंगा कि इम्प्लांट कैसे काम करते हैं, क्लास पैटर्न, और कार्यात्मक प्रोग्रामिंग की मूल बातें।

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