मेरा "कोड नमूना" कैसा दिखना चाहिए? [बन्द है]


24

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

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

सभी विचारों या सुझावों का स्वागत किया!


2
भेजने के लिए कोड नमूने पर कोई आवश्यकताएं थीं? बल्कि व्यर्थ लगता है, कोई भी वेब से सुंदर कोड कॉपी / पेस्ट कर सकता है। जब तक वे उन लोगों को मात देने की कोशिश कर रहे हैं जो उस अधिकार को प्राप्त भी नहीं कर सकते ...
FrustratedWithFormsDesigner

5
बस किक के लिए, आप एक पर्ल स्क्रिप्ट भेज सकते हैं जो उसके / उसके नाम के आकार में है ...;)
FrustratedWithFormsDesigner

2
@thesunneversets: तो मुझे लगता है कि आपकी व्यक्तिगत परियोजनाओं से बिल्कुल भव्य स्रोत कोड बाहर हैं ...;) गंभीरता से, यह आसानी से नकली हो सकता है। और क्या आपका वर्तमान नियोक्ता आपके स्रोत कोड का प्रतिनिधि नमूना देने के साथ ठीक है? क्या यह ठीक है अगर कुछ कोड एक सहकर्मी द्वारा लिखे गए थे (हो सकता है कि समय के साथ कुछ लोगों के बीच फ़ाइल आगे-पीछे हो गई हो)?
FrustratedWithFormsDesigner

2
नैतिक निहितार्थ थोड़ा चिंताजनक हैं ... लेकिन केवल थोड़ा सा। मुझे नहीं लगता कि मैं एक औद्योगिक जासूसी जाल में पड़ रहा हूं। सहकर्मियों के रूप में, केवल दो लोगों ने कभी इस कोडबेस पर अपने हाथों को पकड़ लिया है, और दूसरे आदमी का कोड एक बड़ा गड़बड़ था, इसलिए मैं अपने दम पर बहुत ज्यादा हूं! :)
thesunneversets

4
@thesunneversets, आपके नियोक्ता का कोड प्रदान करना केवल अनैतिक नहीं है, कई जगहों पर यह अवैध है। ऐसा मत करो।
HLGEM

जवाबों:


17

मैं स्वच्छ कोड देखना चाहता हूं :

स्वच्छ कोड : सॉफ्टवेयर कोड जिसे सही ढंग से और एक संगठित तरीके से स्वरूपित किया जाता है ताकि एक अन्य कोडर इसे आसानी से पढ़ या संशोधित कर सके।

इसका मत:

  • कार्यक्षमता - कार्यक्षमता के कुछ सरल बिट्स जो गैर-तुच्छ हैं (गेटर्स / सेटर्स का एक गुच्छा यह नहीं दर्शाएगा कि आप कुछ भी नहीं जानते हैं)
  • सुसंगत, स्वच्छ शैली - लोकप्रिय या कम से कम सामान्य आवरण, इंडेंटेशन, रिक्ति और ब्रैकेट शैली
  • अच्छा नामकरण - गुणवत्ता नाम - iतब तक उपयोग न करें जब तक कि यह केवल वेतन वृद्धि मूल्य न हो। बकवास चर नाम का उपयोग न करें।
  • स्वच्छ कोड की अन्य विशेषताएँ - त्रुटि-जाँच, शर्तों, लूप, सुविधा विधियों या उपयोगिता विधियों, और अच्छे अलगाव-संबंधी-चिंताओं (विधियों के बीच) पर अच्छे अभ्यास । और यह 100% DRY होने का अच्छा समय है - कोई पुनरावृत्ति नहीं!

आप उन्हें कुछ ऐसा भेजना चाहते हैं जो काफी जटिल हो लेकिन दिलचस्प हो और इतना साफ़ हो कि एक अच्छा डेवलपर लगभग तुरंत समझ सके कि यह क्या कर रहा है।

उपरोक्त टिप्पणियों में से कुछ चिंतित हैं कि यह कितनी आसानी से नकली हो सकता है। * यदि आप इस से बचना चाहते हैं, तो संभवतः ईमेल में उद्देश्य और कोड के इतिहास का त्वरित विवरण भेजें।


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


यदि आप उस व्यक्ति को कोड समझाने के लिए कहते हैं और वे इसे नहीं लिख सकते हैं या उन्होंने इसे समझने के लिए परेशान किए बिना किसी और के कोड को रखरखाव में समायोजित किया है। मेरे लिए आश्चर्यजनक है कि मैंने कितने लोगों का साक्षात्कार किया है जो अपने स्वयं के नमूने की व्याख्या नहीं कर सकते हैं।
HLGEM

यदि आपका मार्कर क्लीन कोड से नफरत करता है तो कुछ टिप्पणियां जोड़ें।
इवान

9

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

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

और फिर, आपके द्वारा बनाया गया कोड स्पष्ट, सुसंगत, पढ़ने में आसान और समझने में आसान होना चाहिए।

और अंत में:

  • यह सिर्फ मनोरंजन के लिए उन्हें हल करने के लायक है, और अच्छा अभ्यास है।

यह एक बेहतरीन उपाय है। मैं यह करने जा रहा हूं। क्या कोई विशिष्ट प्रश्न थे जो आपको सबसे अच्छे लगे?
14

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

6
  • इसे उच्चतम कठोरता स्तर पर त्रुटि और चेतावनी को संकलित / व्याख्या करना चाहिए।
  • यह बॉयलरप्लेट कोड नहीं होना चाहिए जो आप हर दिन लिखते हैं। इसे अद्वितीय और रोचक बनाएं ताकि यह स्पष्ट हो कि आपने इसे कॉपी / पेस्ट नहीं किया है।
  • यह टिप्पणी के साथ कुछ दिलचस्प डिजाइन निर्णय होना चाहिए कि आपने उन्हें कैसे / क्यों बनाया।
  • 2-3 से अधिक पृष्ठों के प्रिंट आउट के लिए लक्ष्य रखें।
  • यह उस भाषा में होना चाहिए, जिसके लिए आप आवेदन कर रहे हैं।
  • जब मैंने पहली बार इसे पढ़ा, तो इससे मेरे दिमाग को चोट नहीं पहुंचनी चाहिए। एक दोस्त को यह देखो, या कोडरव्यू पर पोस्ट करें।

3

ठीक है, अगर मैं आपका साक्षात्कार कर रहा था, तो मैं आपका कोड देखना चाहूंगा ।

स्वच्छ अच्छा है, समस्या-समाधान अच्छा है, लेकिन सच्चा कोड बेहतर है। एक अच्छा प्रोग्रामर जानता है कि जब वह दूसरे प्रोग्रामर द्वारा स्कैम किया गया था, तो आत्मविश्वास कम हो सकता है।

किसी अन्य व्यक्ति के कोड को पढ़ने की तरह है नाच यौन संबंध रखने: क्या आप जानते हैं जब यह असली बात है, और यदि अन्य व्यक्ति यह faking है, अंत में एक आपदा हो जाएगा। (बस एहसास हुआ कि असली नर्तक नहीं जानते कि नृत्य कैसे किया जाता है)

बस खुद पर और अपनी कोडिंग क्षमताओं पर विश्वास करें । जब तक आप वास्तव में अपने साक्षात्कारकर्ता को नहीं जानते, आप यह अनुमान नहीं लगा सकते कि वह आपकी कोडिंग शैली / कौशल से क्या उम्मीद करता है।


10
मुझे लगता है कि आपको नहीं लगता कि नर्ड डांस कर सकते हैं, लेकिन आप उनके यौन कौशल के बारे में आश्वस्त हैं! : D
thesunneversets

नाह, मैंने अभी-अभी बहुत सारी आपदाएँ देखी हैं ... :)
मचाडो 1

मेरे स्कूल में, केवल वे लोग जो सामाजिक नृत्य कक्षाओं / गेंदों के लिए दिखते हैं, इंजीनियरिंग की बड़ी कंपनियों हैं।
ईवा

आपको कुछ गेमिंग संदर्भ के साथ सेक्स को और सटीक होना चाहिए :)
zkent

2

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


मैं सहमत हूँ, यह पूरी तरह से काम कर रहा है इसलिए इसमें कोई नियोक्ता-विशिष्ट जानकारी नहीं है जो एक अच्छा विचार है। नैतिकता महत्वपूर्ण है - टिप के लिए धन्यवाद!
thesunneversets

0

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


0

उम्मीदवारों का मूल्यांकन करते समय कोड नमूनों का अनुरोध करने वाले किसी व्यक्ति से एक राय के रूप में, कुछ उच्च-स्तरीय विशेषताएं (कोड की सामग्री) और कुछ निम्न-स्तरीय विशेषताएं (कोड की संरचना) हैं। उच्च स्तरीय विशेषताएं:

  1. पहचान : कोड का स्वाद। यदि आप अपने आप को UI / HCI कोडर के रूप में बिलिंग कर रहे हैं, तो मैं इसे चलाते समय कुछ दृश्य के लिए एक अच्छा देखना / महसूस करना चाहता हूं। यदि आप एक डीबी बिल्डर हैं, तो मैं डेटा प्रतिनिधित्व या विश्लेषण के साथ कुछ दिलचस्प देखना चाहता हूं। नमूना कुछ ऐसा होना चाहिए जिस पर आपको गर्व हो। यदि आपके पास उनमें से कम से कम एक नहीं है, तो आपकी कोई पहचान नहीं है।
  2. परिपक्वता : क्या आप विभिन्न समस्याओं के लिए रणनीति बदलते हैं? क्या आप दिलचस्प समस्याओं को हल कर रहे हैं? क्या समान समस्या का विस्तार करने के लिए कोड या दृष्टिकोण आसान होगा? समझाने पर, क्या मुझे ऐसा लग रहा है कि मैं एक कार्गो पंथ कम्यून के सदस्य को देख रहा हूँ?
  3. संचार : कोड आसानी से समझाता है कि यह क्या कर रहा है और क्यों? इसका मतलब यह नहीं है कि कोड को सरल होना चाहिए। वास्तव में, यह जटिल कोड को समझने में आसान बनाने के लिए एक बोनस है।

निम्न-स्तर के पहलू सरल हैं:

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

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

अंत में, जितना कुछ लोग यह कहते हैं कि "ओह, कोई व्यक्ति सिर्फ इंटरनेट से एक कोड नमूना प्राप्त कर सकता है," काउंटर-तर्क यह है कि ज्यादातर लोग जो अच्छे उत्पादन-गुणवत्ता कोड को नहीं समझते हैं, वे इसे देखते समय इसे भी नहीं समझते हैं। । इसके अलावा, कोई भी कोड की जांच के लिए Google को एक विशिष्ट पंक्ति बना सकता है। इसके अलावा, सबसे अच्छे रूप से, चोरी करने वाले कोड को एक साक्षात्कार के लिए एक उम्मीदवार मिलेगा जहां वे खुद को शर्मिंदा करते हैं ("तो आपने इस तरह से ऐसा क्यों किया ...?")।

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


मैं यह भी नोट करूंगा कि, पूर्ण प्रकटीकरण में, मैंने स्नातक विद्यालय की प्रयोगशाला को एक कोड नमूना प्रदान किया जहां मुझे पीएचडी के लिए स्वीकार किया गया था। यह कोड नमूना एक स्वायत्त रोबोट (5-10k लाइन्स) के लिए पूर्ण कोड था, जिसमें एक विशेष तीन फाइलें थीं। प्रलेखन सम्मानजनक था, लेकिन प्राचीन नहीं था। अगर मुझे इसे फिर से करना पड़ा, तो मैं शायद अपने ऑन-साइट साक्षात्कार के लिए कोड का एक मुद्रित संस्करण नहीं लाया होगा (बड़े अक्षरों में "ROOKIE MISTAKE" कहते हुए 100 पेज ला सकता था)। मुझे एक पूर्ण फैलोशिप मिली, इसलिए यह बहुत अधिक फॉक्स पेस नहीं था। Moral: बहुत ज्यादा> = बहुत कम।
नेमी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.