देव स्थिति के लिए एक प्राकृतिक वैज्ञानिक का साक्षात्कार कैसे करें? [बन्द है]


30

मूल प्रश्न

मैंने अपनी कंपनी के लिए पहले से ही कुछ साक्षात्कार किए, ज्यादातर कंप्यूटर वैज्ञानिक देव पदों के लिए लेकिन कुछ परीक्षक और परियोजना प्रबंधक भी। अब मुझे R & D विभाग (साइड नोट: "शोध" के भीतर हमारे शोध समूह में एक रिक्ति भरनी है, जिसका अर्थ है कि हम विश्वविद्यालयों, अन्य कंपनियों, अनुसंधान केंद्रों के साथ मिलकर अनुसंधान परियोजनाओं में सॉफ़्टवेयर का उपयोग करके अपने पेशेवर डोमेन / बाज़ार आला में समस्याओं को हल करने का प्रयास करते हैं। और अंत उपयोगकर्ता संगठनों। यह कंप्यूटर विज्ञान अनुसंधान नहीं है; हम पी = एनपी समस्या को हल करने के लिए नहीं जा रहे हैं)।

अब हमने रसायन शास्त्र में एमएससी करने वाले एक व्यक्ति (अपने सीवी में बहुत सारे भौतिकी के साथ) को आमंत्रित किया, जिसने कभी भी कंप्यूटर विज्ञान का पाठ नहीं पढ़ा था। मैंने पहले ही एक स्थानीय विश्वविद्यालय के कैरियर के दिनों में उनके साथ लगभग आधे घंटे बात की और इसमें कोई संदेह नहीं है कि लड़का स्मार्ट है। इसके अलावा उनके अंक बहुत अच्छे हैं और उन्होंने स्नातक की उपाधि प्राप्त की है। अपने बीएससी के लिए उन्हें मैथेमेटिका में खुद को प्रोग्रामिंग सिखाने की जरूरत थी और मुझे विश्वास है कि उन्हें प्रोग्रामिंग बहुत पसंद है। इसके अलावा उन्होंने कुछ भौतिक रसायन विज्ञान की समस्या को हल किया, जिसे मैं शायद अपने स्वयं के सॉफ्टवेयर का उपयोग करके नहीं समझता हूं, अपने एमएससी थीसिस के लिए गणितज्ञ में लागू किया गया है। इसमें GUI और 8,000 LoC का उल्लेखनीय आकार शामिल है। उन्हें लगता है कि हम अपने शोध समूह में जो कर रहे हैं उससे बहुत आकर्षित हो रहे हैं और ईमानदार होने के लिए हमारे जैसे एसएमई के लिए यह काफी मुश्किल है कि हमें अच्छे लोग मिलें। मुझे उसे काम पर रखने में भी बहुत दिलचस्पी है क्योंकि वह परियोजना प्रस्तावों, रिपोर्टों, प्रस्तुतियों आदि को लिखने में मेरी सहायता कर सकता है। वह शायद हमारी टीम के लिए भी फिट होगा।

एकमात्र सवाल यह है: मैं कैसे जांच कर सकता हूं कि क्या उसे प्रोग्रामिंग कौशल मिलेगा जो उसे हमारी परियोजनाओं में सॉफ्टवेयर कार्यान्वयन करने की आवश्यकता है क्योंकि यह नौकरी का एक महत्वपूर्ण हिस्सा होगा?

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

स्पष्ट होने के लिए: मैं किसी विशेष भाषा या प्रौद्योगिकी के ढेर में ज्ञान की तलाश में नहीं हूं। हम उत्पाद विकास में एक .NET शॉप हैं लेकिन मैं अपनी रिसर्च परियोजनाओं के लिए एक स्वतंत्र विकल्प रखना चाहता हूं। इसलिए मैं मेटा-काबिलियत में दिलचस्पी रखता हूं, जो वास्तव में जरूरी है, उसे सीखने में सक्षम है।

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

2011-12-01 तक दिए गए उत्तरों को प्रतिबिंबित करने के लिए अपडेट करें

मैंने क्या उत्तर स्वीकार किया और क्यों

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

इंटरव्यू के दौरान मैं उनसे क्या पूछने वाला हूं

  • मैं उसे कुछ सरल असाइनमेंट समझाता हूँ जैसे उदाहरण द कैमल हैज़ हम्प्स में क्रिस बर्ट-ब्राउन द्वारा उल्लिखित

  • मैं उनसे कुछ और उन्नत नियंत्रण प्रवाह की व्याख्या करने के लिए कहूँगा जो शायद चित्रमय अंकन में हो।

  • मैं एक गणित उदाहरण का उपयोग करके पुनरावृत्ति की उसकी समझ की जांच करूँगा।

  • मैं उसे प्राकृतिक भाषा में उसकी पसंद के एक एल्गोरिथ्म की व्याख्या करने देता हूँ।

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

  • उनकी प्रेरणा की जांच करने के लिए मैं उनके सॉफ्टवेयर विकास के आकर्षण के लिए पूछूंगा।

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

लगता है कि यह एक लंबा साक्षात्कार होने जा रहा है;)

साक्षात्कार 2011-12-09 के बाद अद्यतन करें

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


9
मुझे यह बहुत अच्छा लगता है कि कंपनियां अपने द्वारा उपयोग की जाने वाली तकनीक में बिना किसी ज्ञान के लोगों को नियुक्त करने के लिए तैयार हैं। काश, मैंने अपने करियर के लिए जो किया उससे पहले मुझे आपकी कंपनी मिल गई!
NoChance

इमामद: यही वह है जो मैंने समझाने की कोशिश की और "मेटा-काबिलियत" के साथ। जब मैं अब उत्कृष्ट C # प्रोग्रामर को नौकरी पर रखता हूं, जो जरूरत पड़ने पर Scala / Lift सीखने में सक्षम (या इच्छुक) नहीं है, तो मेरी कंपनी का लाभ कहां है? और ईमानदार होना: वास्तव में जर्मनी में अच्छे लोगों को प्राप्त करना काफी मुश्किल है। विशेष रूप से तब जब आप एक एसएमई जैसे ट्रेंडी महानगर में स्थित नहीं हो।
सिलास

2
उसे सरल नियंत्रण प्रवाह और एक विशिष्ट भाषा में अन्य बहुत बुनियादी तकनीकों पर थोड़ा शोध करने के लिए कहें। फिर जब वह आता है तो उससे उन समस्याओं का समाधान करने के लिए कहें।
डैरेन यंग

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

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

जवाबों:


21

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

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

लब्बोलुआब यह है: आप जिस कौशल के लिए उसे काम पर रख रहे हैं, उसके लिए उम्मीदवार की जांच करें, न कि उन आदर्शों के लिए जो आपको उम्मीद है कि वह हासिल करेंगे।


2
पूर्व वैज्ञानिकों के साथ प्रोग्रामर के साथ काम करने के बाद, यह केवल निम्न-स्तरीय विवरण नहीं है, जिससे वे अनभिज्ञ हैं, बल्कि उच्च-स्तरीय चीजें भी हैं। YMMV बेशक, लेकिन यह इस मुद्दे की गहराई की एक सामान्य कमी है। ऐसा नहीं है कि सभी नौकरियों की जरूरत है ...
डोनाल्ड फेलो

1
@ डोनल फेलो: मुझे संदेह नहीं है कि विशिष्ट प्रशिक्षण के साथ डेवलपर्स को ज्ञान की गहराई और गहराई दोनों का अभाव हो सकता है। यह भूमिका पर निर्भर करता है, और इन-हाउस प्रशिक्षण की मात्रा पर जो पेशकश की जा रही है।
प्रिंस गोलश

1
@DonalFellows: यह देखते हुए कि ओपी आवेदक की सीखने की क्षमता का निर्धारण करने में रुचि रखता है, न कि उसका वर्तमान ज्ञान ...

2
@ डॉनल फेलो: जैसा कि मैंने पहले कहा था, यह देखते हुए कि ओपी आवेदक की सीखने की क्षमता का निर्धारण करने में रुचि रखता है , न कि उसका वर्तमान ज्ञान ...

2
@ मर्क बैनिस्टर: एक अच्छा वैज्ञानिक सीख सकता है, यह एक उपयोगी प्रश्न नहीं है। एक अधिक उपयोगी प्रश्न यह होगा कि क्या वैज्ञानिक सीखेगा कि उसे क्या जानना है। यह एक व्यक्तित्व का मुद्दा है। क्या वैज्ञानिक को पता है कि वह सॉफ्टवेयर इंजीनियरिंग के बारे में नहीं जानता है या नहीं।
डेविड थॉर्नले

37

मैं कैसे जांच सकता हूं कि उसे प्रोग्रामिंग कौशल प्राप्त करने की आवश्यकता है या नहीं

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

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


8
+1 के लिए "वे दोनों जटिल पहेली को हल करने के लिए मूल रूप से आपके मस्तिष्क का उपयोग करने के लिए उबलते हैं।"
joshin4colours

1
आपका क्या मामला है? स्वर्ग के लिए, आदमी किराया! याद रखें कि प्रोग्रामर केवल उच्च तकनीक वाले खराद ऑपरेटर हैं। वह उत्साही, होशियार है, और बहुत से रसायन शास्त्र जानता है। अगर आप उसे नौकरी पर नहीं रखते हैं, तो अगली बार जब आप किसी को एक साल के लिए नौकरी पर जाते हैं, तो आप अपने गधे को लात मारेंगे जो आपने नहीं किया था।
पीट विल्सन

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

6

मेरे पास इस कागज की पुष्टि करने वाला कोई भी माध्यमिक स्रोत नहीं है, इसलिए मैं इसके लिए प्रतिज्ञा नहीं कर सकता लेकिन:

ऊंट के दो कूबड़ हैं
http://www.eis.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf

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


3
पेपर पढ़ने के बाद मुझे विश्वास है कि मुझे याद है कि मैंने इस अध्ययन के बारे में कुछ समय पहले पढ़ा है। बस इसे फिर से नहीं पा सकते हैं :( संपादित करें: यह कोडिंग हॉरर में उल्लेख किया गया था , अनुस्मारक के लिए धन्यवाद
सिलास

तुम मुझे यह करने के लिए हरा, मैं के बारे में कोडिंग डरावना लिंक @Silas साथ जवाब देने के लिए जोड़ा गया
Izkata

5

मैं कैसे जांच सकता हूं कि उसे प्रोग्रामिंग कौशल प्राप्त करने की आवश्यकता है या नहीं?

यह बहुत सरल है। उसे हुनर ​​दो।

अब, यह बहुत संतोषजनक जवाब नहीं है, लेकिन मुझे विस्तृत करने दें।

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

जिसने भी भौतिकी का अध्ययन किया है, उसने बुनियादी ढांचों के समाधान के लिए एक साथ मिलकर काम करने के लिए एक सहज दृष्टिकोण विकसित किया है।

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

सवाल तो यह हो जाता है कि "कितनी देर तक आप उसे गति के लिए इंतजार कर सकते हैं?"

tl; डॉ; आप टाइपिंग सिखा सकते हैं। आप स्मार्ट नहीं सिखा सकते।


+1, बहुत अच्छा जवाब। मैं चाहता हूं कि लोगों के पास व्यवसायों के बारे में अधिक खुले विचार थे: गणित की डिग्री होने का मतलब यह नहीं है कि आप एक जीवित के लिए प्रोग्रामिंग नहीं कर सकते हैं, और न ही यह दूसरे तरीके से करता है। सीखना सीखना महत्वपूर्ण कौशल आईएमओ है।

2

मेरे पास मैटेरियल साइंस में बीएससी है, लेकिन मैंने अपना सारा करियर सॉफ्टवेयर डेवलपमेंट में काम किया है।

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

इसमें से अधिकांश को पढ़ाया जा सकता है, लेकिन आप इसे बाहर करने के लिए कुछ प्रश्न तैयार कर सकते हैं।


2

इसके अलावा उन्होंने कुछ भौतिक रसायन विज्ञान की समस्या को हल किया, जिसे मैं शायद अपने स्वयं के सॉफ्टवेयर का उपयोग करके नहीं समझता हूं, जो उनके एमएससी थीसिस के लिए गणितज्ञ में लागू किया गया है। इसमें GUI और 8,000 LoC का उल्लेखनीय आकार शामिल है।

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

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

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


2

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

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

गणितज्ञ / मतलूब में विज्ञान की समस्याओं को हल करने की क्षमता से सावधान रहें / जो भी इसका मतलब नहीं है वह अच्छा कोड लिख सकता है। इसका सीधा सा मतलब है कि वह बुनियादी (कभी-कभी अत्यंत बुनियादी) प्रोग्रामिंग सिद्धांतों को लागू करने में सक्षम होता है, आमतौर पर अगर / अन्यथा बयान। एक अच्छा प्रोग्रामर बनना सीखना आम तौर पर इस स्तर पर किसी व्यक्ति के लिए व्यक्तिगत और नियोक्ता दोनों की प्रतिबद्धता होगी। चेतावनी: मैं बहुत बुद्धिमान लोगों से मिला हूँ, जो अच्छे इंजीनियर थे / जो पेपर बैग से अपना रास्ता नहीं बना सकते थे और ईमानदारी से बुनियादी भाषा की बुनियादी बातों को समझ नहीं पाए थे।

निजी अनुभव

मैंने स्कूल से इंजीनियरिंग की डिग्री और अपने बेल्ट के तहत प्रोग्रामिंग का थोड़ा सा अनुभव प्राप्त किया। मैंने बहुत कम मात्रा में सी, काफी मैटलैब और कुछ वीबी + एक्सेस के साथ काम किया था। मुझे VB.NET की दुकान में प्रोग्रामर के रूप में वास्तव में उपयोगी बनने के लिए लगभग 3 महीने का अध्ययन करना पड़ा। मुझे पूरी तरह से प्रवीण बनने में 9 महीने लग गए। हालाँकि, मैं विश्वास के साथ कह सकता हूँ कि मेरी समस्या को सुलझाने का कौशल 99% अन्य प्रोग्रामर से बेहतर है जो मुझे अपनी नौकरी में मिले हैं। मेरे नियोक्ताओं ने लगातार मुझे अपनी अधिक मूल्यवान संपत्ति में से एक माना है।

निष्कर्ष

यह एक जोखिम / इनाम प्रस्ताव है, लेकिन अक्सर किसी ऐसे व्यक्ति को लेने पर, जिसके पास शुद्ध समस्या सुलझाने के कौशल हैं, लंबे समय में भुगतान कर सकते हैं जब तक कि वे प्रोग्रामिंग अवधारणाओं को सीखने में सक्षम हैं और आप दोनों अपनी प्रोग्रामिंग का विस्तार करने में समय का निवेश करने के लिए तैयार हैं। ज्ञान। हालाँकि, मेरा दृढ़ विश्वास है कि आपको उसे नौकरी देने से पहले प्रोग्रामिंग की बुनियादी बातों की कम से कम बुनियादी समझ होनी चाहिए। मेरे अनुभव में, एक बार जब आप इस बिंदु पर होते हैं, तो आप इसके साथ बहुत आगे जा सकते हैं।


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

1

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


1

मैं कैसे जांच कर सकता हूं कि उसे प्रोग्रामिंग कौशल प्राप्त होंगे या नहीं, उन्हें हमारी परियोजनाओं में सॉफ्टवेयर कार्यान्वयन करने की आवश्यकता है क्योंकि यह नौकरी का एक महत्वपूर्ण हिस्सा होगा

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


1

आप एक वैज्ञानिक वातावरण में प्रोग्रामिंग के लिए प्रथाओं को देख सकते हैं? (स्टैक ओवरफ्लो पर) कुछ विचार प्राप्त करने के लिए कि प्राकृतिक विज्ञान की प्रोग्रामिंग संस्कृति कैसी दिखती है। इस तरह आप अपनी तैयारी की तुलना अपने साथियों से करने की स्थिति में हैं।

उस मामले के लिए, आप उसे प्रोग्रामिंग प्रथाओं का वर्णन करने के लिए कह सकते हैं जिसका उपयोग वह सीखने के लिए करता है यदि वह जानता है कि इसे करने के अन्य तरीके हैं

मेरे व्यवसाय में बहुत सारे "अच्छे प्रोग्रामर" हैं जिनकी योग्यता कुछ काम कोड को एक साथ करने के लिए उनके सिर में पर्याप्त राज्य रखने में सक्षम है, लेकिन जिनका काम अन-संरचित और बनाए रखने के लिए कठिन है। आम तौर पर वे सिखाया जा सकता है, लेकिन ... वे है सिखाने की।


0

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


0

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


0

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

क्या यह एक या दो विशाल बहुउद्देश्यीय कार्य हैं या क्या उन्होंने अमूर्तता के उचित स्तरों पर कार्यक्षमता को बाधित किया है? क्या मैजिक-नंबर हार्ड-कोडेड हैं? क्या कोड DRY है? क्या उन्होंने चर को उचित नाम दिया है या सब कुछ एक अचूक संक्षिप्त नाम या एकल अक्षर चर है? क्या आप ज्यादातर उनके कोड के तर्क का पालन कर सकते हैं? क्या वे ओओ की मूल बातें समझते हैं?

पूछें कि वे संस्करण नियंत्रण के लिए क्या उपयोग करते हैं (git / hg / svn / cvs / bzr, आदि)। क्या उन्होंने कभी कोड को डीबग किया है या डिबगर का उपयोग किया है, और यदि ऐसा है तो क्या है या उनकी सामान्य डिबगिंग रणनीति क्या है?

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

(रिकॉर्ड के लिए मैं भौतिक वैज्ञानिक भी प्रोग्रामर हूं।)


-3

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


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