हालांकि यह आम तौर पर एक चिंता का विषय है, मुझे लगता है कि सेटअप के कारण यह मुद्दा न के बराबर है।
आवेदक ने आपको कुछ स्रोत कोड भेजे। कैसे या क्यों हुआ?
स्पष्ट रूप से केवल तीन संभावनाएँ हैं:
- आपने आवेदक को अपने कौशल का आकलन करने के लिए एक विशेष (अच्छी तरह से परिभाषित) समस्या को हल करने के लिए एक असाइनमेंट दिया।
- आवेदक अपने लिखे हुए कुछ शांत दिखाना चाहता है।
- आवेदक एक झटका या एक जासूस या अन्यथा दुर्भावनापूर्ण व्यक्ति है और वास्तव में काम पर रखने में दिलचस्पी नहीं रखता है। वह सभी के लिए आशा करता है कि आप उसके कोड को चलाने के लिए काफी मूर्ख हैं।
लगभग 2) और 3)
मुख्य जोखिम 2) और 3) के बीच अंतर है। संभावना अधिक है कि अगर उसने जो कुछ भी लिखा है वह देखने लायक है , यह कुछ ऐसा है जिसे आप या तो ऑनलाइन के लिए स्रोत कोड प्राप्त कर सकते हैं (एक "तटस्थ" स्रोत से) और आप पहले से ही परिचित हो सकते हैं, या यह कुछ ऐसा है जो आप वास्तव में करते हैं क्योंकि आप एक प्रतियोगी (पूर्व नियोक्ता) की बौद्धिक संपदा का उल्लंघन करना चाहते हैं, इसलिए इसे देखना चाहते हैं। बाद का मतलब होगा कि आप उस व्यक्ति को वैसे भी नौकरी पर नहीं रखना चाहेंगे।
यदि आप स्रोत ऑनलाइन प्राप्त कर सकते हैं, तो ऐसा करें। यदि आप आवेदक के क्रेडिट में कहीं उसके नाम से एक प्रसिद्ध सॉफ्टवेयर (मालिकाना सॉफ्टवेयर सहित) के योगदान को सत्यापित कर सकते हैं, तो ऐसा करें।
हर दूसरे मामले में, जो भी उसने आपको भेजा है, उसे अनदेखा करें। यह या तो देखने लायक नहीं है, या अवैध है, या उच्च जोखिम है।
लगभग 1)
आवेदक ने आपको कुछ भेजा है क्योंकि आपने उसे एक असाइनमेंट दिया है। यदि आपके पास कोई क्षमता है (जो मैं आपको मानता हूं!), तो एक ठेठ प्रोग्रामिंग असाइनमेंट के लिए (... कि आपने खुद को भी चुना है!), आप यह बता पाएंगे कि क्या यह एक प्रशंसनीय समाधान है जो ऐसा दिखता है जैसे कि यह काम कर सकता है 30 सेकंड से कम समय (10 सेकंड से अधिक) के लिए स्रोत कोड को देखकर।
यदि आप यह नहीं बता सकते हैं कि कार्यक्रम शायद 30 सेकंड के भीतर काम करेगा (या यह क्या कर रहा है), तो जिसने इसे लिखा है वह उस तरह का व्यक्ति नहीं है जिसे आप किराए पर लेना चाहते हैं, फुलस्टॉप। आप ऐसे लोग चाहते हैं जो ऐसा कोड लिखें जिसे अन्य मनुष्य समझ सकें और बनाए रख सकें। आप किसी ऐसे व्यक्ति को नहीं चाहते हैं, जो आपको स्मार्ट बनाने की कोशिश कर रहा है, और न ही कोई जो नियमित रूप से सी प्रतियोगिता को जीतता है। इससे कोई फर्क नहीं पड़ता कि कार्यक्रम काम करता है या नहीं। जैसे ही कोई अन्य व्यक्ति कोड को नहीं समझ सकता, वह कभी "काम नहीं करता"।
यदि प्रोग्राम ऐसा लगता है कि यह संभवतः काम करेगा, लेकिन आपको ऐसा कुछ भी मिलता है जो "अजीब" लगता है (कहते हैं, जावा यूनिकोड एस्केप सीक्वेंस, सी ++ कच्चे स्ट्रिंग साहित्यिक, सामान जो ट्रिग्राफ की तरह दिखता है, जो भी हो), असाइनमेंट को "विफल" के रूप में मानते हैं, स्थानांतरित करें अगले आवेदक को। 99% सभी कार्यक्रमों में कुछ भी शामिल करना आवश्यक नहीं है (और, निश्चित रूप से पर्याप्त है, आपके असाइनमेंट में नहीं - मुझे आशा करनी चाहिए)। तो अगर आपको ऐसा कुछ "अजीब" लगता है, तो आवेदक वह नहीं है जिसे आप किराए पर लेना चाहते हैं।
यदि कोड उस पहले ट्राइएज से गुजरता है, तो आप इसे और अधिक अच्छी तरह से देखने के लिए एक और 2-3 मिनट खर्च करना चाह सकते हैं। यदि आप अभी भी उसके बाद जो देखते हैं, उससे प्रसन्न हैं, तो आप इसे एक स्थिर विश्लेषक के माध्यम से चला सकते हैं और इसे एक उच्च चेतावनी स्तर पर एक आभासी मशीन में संकलित कर सकते हैं।
उन मुद्दों को सामने लाना चाहिए जो स्रोत को पढ़ते समय आपसे छूट गए हों (जैसे अपरिभाषित व्यवहार या संकीर्ण रूपांतरण को लागू करना)।
संकलन पहले और सबसे महत्वपूर्ण आपको बताएगा कि क्या आवेदक के पास विस्तार के लिए आवश्यक परिश्रम और ध्यान है, न कि इतना कि क्या वह प्रोग्रामिंग कौशल है। बहुत से आपके आवेदन पर नियोक्ता का नाम सही तरीके से लिखना और अपने सीवी को हाथ में लेने से पहले वर्तनी करना, यह सबसे अच्छा अभ्यास है कि आप सुनिश्चित करें कि जो भी स्रोत कोड आप त्रुटियों के बिना संकलित करते हैं (और चेतावनी के बिना अधिमानतः)। यदि कोई ऐसा करने में विफल रहता है, तो आप उसे नौकरी पर नहीं रखना चाहते।
इस बिंदु पर होने वाली बुरी चीजों का खतरा (कंपाइलर का शोषण करना और वीएम से बाहर निकलना) असंभव है, यह देखते हुए कि आपने पहले से ही कोड पर एक प्लाजिबिलिटी चेक कैसे चलाया है। ऐसा नहीं होगा।