क्या गरीब लेखक गरीब प्रोग्रामर बनाते हैं? [बन्द है]


16

मैं पीटर सीबेल द्वारा काम पर कोडर्स पढ़ रहा हूं , और कई बार यह उल्लेख किया गया है कि प्रोग्रामर जो आमतौर पर खराब प्रोग्रामर नहीं लिख सकते हैं - यह डगलस क्रॉकफोर्ड, जोशुआ बलोच, जो आर्मस्ट्रांग, दिक्जित्र (और मैंने दावा किया है) केवल आधी पुस्तक पढ़ें)।

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


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

"लिख नहीं सकते," क्या आपका मतलब है कि उनका व्याकरण गलत है? यह शायद खराब प्रवाह, आदि जैसी चीजों की तुलना में एक बड़ा मुद्दा है
मैक्सएम

1
@Maxpm: हो सकता है, लेकिन व्याकरणिक रूप से सही होने के बावजूद, लिखित रूप में उनका अर्थ बताने में असमर्थता।
गैब्लिन

जवाबों:


30

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

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

मुझे लगता है कि अच्छी तरह से लिखने में असमर्थ होने के नाते, और इस तरह से अच्छी तरह से संवाद करना, एक को बहुत अच्छे प्रोग्रामर होने से बचाए रखेगा।

जैसा कि जेसन फ्राइड और डेविड हेनीमियर हैन्सन (37 सिंसल्स में से) अपनी पुस्तक में कहते हैं:

यदि आप एक स्थिति को भरने के लिए कुछ लोगों के बीच निर्णय लेने की कोशिश कर रहे हैं, तो सबसे अच्छा लेखक किराया।

एक अच्छा लेखक होने के नाते लेखन से अधिक है। स्पष्ट लेखन स्पष्ट सोच का प्रतीक है। महान लेखक संवाद करना जानते हैं।


2
हाँ, और मुझे लगता है कि हर कोई इस बात से सहमत है कि एक अच्छे प्रोग्रामर की गुणवत्ता अपने आप को स्पष्ट रूप से कोड में व्यक्त करने की क्षमता है, इसलिए यह मुझे आश्चर्यचकित नहीं करेगा कि स्पष्ट रूप से लिखित रूप में अपने आप को व्यक्त करने की क्षमता स्पष्ट रूप से व्यक्त करने की क्षमता के साथ सहसंबद्ध है। आपके कोड में (और इसके विपरीत)। +1
n1ckp

2
मैं यह दूसरा होगा। आपको संवाद करने की आवश्यकता है - सिर्फ मशीन के साथ नहीं। आपके आसपास के लोग और प्रोग्रामर जो आपके आने के बाद संचार में स्पष्टता की आवश्यकता है, दोनों को बोला और लिखा गया है। क्योंकि जल्दी या बाद में आप लोगों से बात करनी है, और लिखा क्योंकि thats क्या आपके कोड और तुम्हारा टिप्पणियाँ हैं।
जल्‍दी से जल्‍दी से जल्‍दी से

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

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

4

मुझे लगता है कि यदि हम प्रश्न की जांच करते हैं, तो हम सीधे उत्तर प्राप्त करते हैं:

क्या अंग्रेजी जैसी प्राकृतिक भाषा में खुद को अभिव्यक्त करने में असमर्थता अच्छा कोड लिखने में बाधा है?

वास्तव में अच्छा कोड लिखने का क्या मतलब है?

कार्यक्रमों को लोगों को पढ़ने के लिए लिखा जाना चाहिए, और केवल मशीनों को निष्पादित करने के लिए संयोग से।
- एबेल्सन और सुस्मैन, कंप्यूटर प्रोग्राम की संरचना और व्याख्या

इसका अर्थ है खुद को स्पष्ट, संक्षिप्त रूप से, सही ढंग से और सुरुचिपूर्ण ढंग से एक प्रोग्रामिंग भाषा में लिखना।

अंग्रेजी या प्रोग्रामिंग भाषा में खुद को कुशलता से व्यक्त करने के बीच अंतर केवल इतना है कि अंग्रेजी कहीं अधिक क्षमाशील है।


3

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


3

यह इस बात पर निर्भर करता है कि "अच्छे कोड" से आपका क्या मतलब है।

यदि आप कोड का मतलब है कि बस काम करता है, मनुष्य के साथ संवाद करने में सक्षम होने और कंप्यूटर के साथ संवाद करने में सक्षम होने के बीच शायद ही कोई संबंध है।

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

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


2

बात यह है, कोडिंग भी एक संचार कौशल है। जैक गन्सल ने अपने एंबेडेड म्यूजियम ई-न्यूजलेटर में हाल ही में डौग एबॉट के हवाले से लिखा है:

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

प्रोग्रामर जो गद्य लिखना नहीं जानते हैं, वे कोड, या तो लिखना नहीं जानते हैं।

इस दिलचस्प लेख पर अधिक:

क्या खराब लेखन रिफ्लेक्टिंग पुअर प्रोग्रामिंग स्किल्स को दर्शाता है?


2

यह पूरी तरह से महत्वपूर्ण है, लेकिन:

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

फिर भी, वह एक सुपर स्टार प्रोग्रामर था। अधिक से अधिक उत्पादक और अधिक परिमाण का एक क्रम।

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


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

3
@quickly_now: मैं सोच रहा होगा (क्योंकि आपने निर्दिष्ट नहीं किया था) उनका कोड हालांकि कैसे पढ़ा। वे बहुत चतुर और अच्छी समस्या हल करने वाले हो सकते हैं लेकिन यदि उनका कोड अप्राप्य है तो वे मेरी राय चाहते हैं तो वे महान प्रोग्रामर नहीं हैं।
n1ckp 11

@ n1ck: अब जब आप इसका उल्लेख करते हैं, तो मैं जिस आदमी के बारे में सोच रहा हूं, वह अपने कोड का दस्तावेजीकरण करने में बहुत अच्छा नहीं है। कोड स्वयं अच्छा और अच्छी तरह से डिज़ाइन किया गया था, लेकिन उन्होंने कोड के अंतर्निहित जटिल बिट्स के बारे में टिप्पणी नहीं की, जिसका मतलब था कि इसे बनाए रखना कठिन था। उस के बारे में सोचा नहीं था। :)
बॉबी टेबल्स

मैं @ n1ckp के साथ समझौता कर रहा हूं। मैं चर / विधियों / वर्गों के लिए नामों की अपनी पसंद को शर्त लगाने के लिए भी तैयार हूं जो कभी-कभी गूढ़ और भ्रामक होंगे। मैं अत्यधिक उच्च उत्पादकता वाले प्रोग्रामर से बहुत सावधान रहता हूं, क्योंकि यह अक्सर दीर्घकालिक स्थिरता को बेहतर बनाने के लिए थोड़ा अतिरिक्त समय बिताने की कीमत पर आता है।
अप्रकाशित

2

यदि वे अच्छी तरह से नहीं लिख सकते हैं, तो वे आपको कैसे समझा सकते हैं कि वे अच्छे प्रोग्रामर हैं?


0

क्या कोई व्यक्ति किसी सिस्टम संगठन या एक विचार को व्यक्त करने में असमर्थ है जिसे लिखने से वह कोड लिखने में सक्षम होगा - यह सटीक निर्देश हैं - (बहुत) गूंगे कंप्यूटर द्वारा सही ढंग से व्याख्या की गई है?


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

आपको संकलक के साथ भी स्पष्ट और सही होना सीखना होगा क्योंकि यदि आप ऐसा नहीं करते हैं तो आप अंत में कुछ भी संकलित नहीं करेंगे।
नोवेल

0

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

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

मैंने उम्मीदवारों को काम पर रखने को दृढ़ता से हतोत्साहित किया है क्योंकि वे एक विचार को पूरा नहीं कर सकते हैं या किसी विषय पर नहीं रह सकते हैं। एक व्यक्ति को वैसे भी हमारे बॉस द्वारा काम पर रखा गया था, और यह पता चला कि वह समय पर एक साधारण काम देने में असमर्थ था क्योंकि वह जो भी उज्ज्वल और चमकदार नई तकनीक या खिलौना से विचलित था, उसने उसकी आंख को पकड़ लिया।

तो, हां, यह महत्वपूर्ण है कि प्रोग्रामर अच्छी तरह से संवाद करने में सक्षम हों। यदि वे प्रभावी ढंग से एक मानव के साथ संवाद नहीं कर सकते हैं तो वे इसे कंप्यूटर के साथ नहीं कर सकते हैं।


0

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


1
एक प्रोग्रामर की नौकरी का हिस्सा कोड (और टिप्पणियों) में खुद को स्पष्ट रूप से व्यक्त करना है ताकि, न केवल कंप्यूटर, बल्कि अन्य मनुष्य भी कोड पढ़ सकें। यह समझ में आता है (लेकिन यह AFAIK साबित नहीं हुआ है) कि ये कौशल सहसंबद्ध हैं।
n1ckp 11

0

बिलकुल नहीं!

एक अच्छा लेखक एक अच्छे लेखक से ज्यादा कुछ नहीं होता है। एक गैर-तकनीकी व्यक्ति को डेटाबेस की अवधारणा का वर्णन करने के लिए एक अच्छे लेखक से पूछें। आपको क्या लगता है आपको क्या मिलेगा ...?

एक अच्छा लेखक, लिखता है। एक अच्छा प्रोग्रामर अच्छा कोड लिखता है।

  • कोड जो अन्य विकसित होने के छह महीने बाद पढ़ सकता है।
  • कोड जो सुबह 2:00 बजे समझ में आता है जब सिस्टम विफल हो गया है और डीबगिंग चल रहा है।
  • कोड जिसे बाकी सभी को उधार लेना पसंद है क्योंकि वे इसे समझते हैं और इसे आसानी से संशोधित कर सकते हैं
  • कोड जो 24/7 365 काम करता है

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


1
मुझे लगता है कि बुलेट अंक 1,2 और 3 को एक अच्छा प्रोग्रामर होने के अलावा एक अच्छा लेखक होने की आवश्यकता है। संक्षेप में, आप अच्छे लेखन कौशल को एक निहित विशेषता के रूप में मान रहे हैं।
ममता डी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.