कोड काटा की कमियां


41

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

इस विषय पर मेरे अंतिम प्रश्न पर मुझे जो प्रतिक्रिया मिली , उससे मैं यह जानना चाहता हूं कि इस दृष्टिकोण के ड्रा बैक क्या हैं?


अनुत्पादक -1 का मुकाबला करने के लिए +1। एक मान्य प्रश्न लगता है, जैसा कि कोड काटा के बारे में मेरी शंका है, लेकिन यह इंगित नहीं कर सकता कि क्यों।
मटनज़

9
आज तक मुझे नहीं पता था कि यह काटा चीज क्या है। अब मैंने सिर्फ इसकी जाँच की और यह सिर्फ एक कल्पना नाम है जो कि प्रत्येक समझदार प्रोग्रामर करता है और विकसित होते समय स्वचालित रूप से सीखता है: अभ्यास करना। तो मेरे लिए दोष यह होगा: यह सिर्फ अतिरिक्त समय लेता है जो अन्यथा उपयोग किया जा सकता है।
stijn

11
हम्म ... जाहिरा तौर पर, कोड काटा का एक बड़ा दोष यह लगता है कि लोग कोड काटा को यह समझने के बिना कि कोड काटा क्या हैं :-)
Jörg W Mittag

19
@ JörgWMittag - ऐसा इसलिए है क्योंकि 'काता' शब्द एक बुरा सादृश्य है क्योंकि इसका तात्पर्य वास्तविक दुनिया की स्थितियों में थोड़े व्यावहारिक अर्थ के साथ कठोर रूप का अभ्यास है। प्रोग्रामिंग या व्यावसायिक स्थितियों के लिए "ब्लैक बेल्ट" या "काटा" जैसे मार्शल आर्ट शब्दों को लागू करना मुझे परेशान करता है।
jfrankcarr

जवाबों:


22

सिद्धांत रूप में, मुझे कोड काटा में कमियां नहीं दिखती हैं। आप अलग-अलग दृष्टिकोण और विभिन्न भाषाओं के साथ एक ही कार्य को कई बार पूरा करने का प्रयास करते हैं। परंतु

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

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

43

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

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


4
उस वाक्य के लिए +2 बनाओ।
एरिक डायट्रिच

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

1
+3 माइक की टिप्पणी के लिए। सामान्य तौर पर, कोड को बनाए रखने में बहुत अधिक समय खर्च किया जाता है, शुरू में इसे लिखने में खर्च किया जाता है। आप उम्मीद करेंगे कि शिल्प कौशल तब लागू होगा जब कोई आपके घर का निर्माण करेगा, क्योंकि आप लंबे समय तक इसमें रहने वाले हैं। जब कोई सॉफ्टवेयर बनाता है, तो उसे लागू किया जाना चाहिए - लेकिन ऐसा नहीं है।
कालेब ब्रसे

@KaptajnKold: क्या आप अपने अनुभव से बात कर रहे हैं? मैं किसी ऐसे व्यक्ति से कुछ टिप्पणियां सुनना पसंद करूंगा जिन्होंने वास्तव में कोडकटा के माध्यम से अपने कौशल को सुधारने की कोशिश की है और असफल रहे।
dzieciou

2
@dzieciou: मुझे मार्शल आर्ट काटा में कई वर्षों से कराटे का अभ्यास करने का अनुभव है। और जब मैं मानता हूं कि लड़ाई के कुछ उपयोगी पहलू हैं जो काटा से सीखे जा सकते हैं, मेरा यह भी मानना ​​है कि यह अंततः प्रशिक्षित करने का बहुत कारगर तरीका नहीं है। जैसा कि आप कहते हैं, आपको लड़ना चाहिए। यदि आपका उद्देश्य बेहतर सेनानी बनना है। कुछ लोग काटा का अभ्यास करना अपने आप में एक आनंददायक खोज मानते हैं। इसमें कुछ भी गलत नहीं है। आखिरकार उनमें से कुछ बहुत अच्छे हो जाते हैं। काटा में।
KaptajnKold

20

कोड काटा बस समय लगता है।

पूर्णकालिक डेवलपर और पिता होने के नाते, मैं कंप्यूटिंग को एक शौक नहीं बनाना चाहता।

और मुझे नहीं लगता कि मेरे मालिक मुझे मेरे वर्तमान प्रोजेक्ट से संबंधित अनुप्रयोगों को विकसित करने के लिए भुगतान करेंगे।


10
क्या कोई ऐसी सीख है जो समय नहीं लेती है? जब तक आप हर बार ग्रीनफील्ड परियोजनाओं पर काम करने के लिए पर्याप्त भाग्यशाली नहीं होते हैं।
डेन

38
यदि आपने नियमित रूप से अपने व्यावसायिक कौशल को बेहतर बनाने के लिए अपने खाली समय की कम से कम राशि खर्च नहीं की है तो आपका पेशेवर करियर बहुत खतरे में है।
लादिस्लाव मृंका

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

7
@mouviciel: और यह वास्तव में समस्या है: आपका बॉस आपके व्यावसायिक विकास के लिए भुगतान करने के लिए तैयार है, अगर यह परियोजना पर आवश्यक है, लेकिन आपको अपने वर्तमान प्रोजेक्ट से संबंधित नहीं अपने कौशल में सुधार करने के लिए तैयार होना चाहिए - शायद आपके वर्तमान से संबंधित नहीं मंच बिल्कुल। वही आपके करियर / सामाजिक सुरक्षा का निर्माण करता है।
लादिस्लाव मृंका

6
@LadislavMrnka - मैं आपसे सहमत हूँ। फिर भी, कोड काटा उस समस्या का जवाब नहीं है।
मौविसील

13

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

यह कहना नहीं है कि तकनीक का सीखना और सुधार नहीं किया जाना चाहिए। थैलियों पर अभ्यास करने से आपको एक पंच और महसूस करने के माध्यम से काम करने की अनुमति मिलती है कि आप इसे कैसे फेंकते हैं, एक काटा के रूप में। लेकिन यह उतना कठोर नहीं है। आप एक ही समय में कई चीजों का अभ्यास कर रहे हैं, बैग के चारों ओर घूम रहे हैं, एक स्थिर मंच से फेंक रहे हैं, लक्ष्य कर रहे हैं, सांस ले रहे हैं, सूची आगे बढ़ती है।

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

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


सटीक। fwiw, मैं एक बॉक्सर / प्रोग्रामर भी हूं :)।
पॉल सानवल्ड

1
कोड कटास कठोर पुनरावृत्ति के बारे में नहीं हैं; वे किसी समस्या को हल करने के लिए काम कर रहे हैं, तब तक अपने समाधान में सुधार करने के लिए काम कर रहे हैं जब तक आप संतुष्ट न हों। काटा एक से: "इस काता का लक्ष्य प्रयोगात्मक मॉडलिंग की एक ढीली शैली का अभ्यास करना है। यथासंभव मुद्दों को संभालने के कई अलग-अलग तरीकों के लिए देखें। प्रत्येक के विभिन्न ट्रेडऑफ़ पर विचार करें। इन मॉडलों की खोज के लिए कौन सी तकनीक सबसे अच्छा उपयोग करती है? उन्हें रिकॉर्ड करना? आप किसी मॉडल को कैसे मान्य कर सकते हैं उचित है? "
माइक पार्टरिज

4
मैं मानता हूं कि 'काटा' शब्द अपूर्ण है, लेकिन नाम की वजह से उनकी बात पर ध्यान नहीं गया। इसके अलावा, वे सभी शब्द समस्याएं नहीं हैं; काटा टू से: "अपनी पसंद की भाषा और तकनीक में एक द्विआधारी खोज दिनचर्या (नीचे विनिर्देश का उपयोग करके) लागू करें। कल, इसे फिर से लागू करें, एक पूरी तरह से अलग तकनीक का उपयोग करके। अगले दिन भी ऐसा ही करें, जब तक कि आपके पास पांच पूरी तरह से अद्वितीय न हों। एक द्विआधारी काट के कार्यान्वयन। (उदाहरण के लिए, एक समाधान पारंपरिक पुनरावृत्ति दृष्टिकोण हो सकता है, एक पुनरावर्ती हो सकता है, एक व्यक्ति एक कार्यात्मक शैली पास सरणी स्लाइस का उपयोग कर सकता है, और इसी तरह)। "
माइक पार्टरिज

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

3
@MikePartridge मेरे मामले में, मेरा मानना ​​है कि सभी प्रोग्रामर सीख रहे हैं / सुधार कर रहे हैं, या होना चाहिए, हर समय। इस प्रकार, कोड काटा इस लक्ष्य को प्राप्त करने में सहायता करने के लिए एक तकनीक है, और मेरा जवाब था कि तकनीक, जैसा कि मैंने देखा, यह सार्थक नहीं था। मैं लक्ष्य से पूरी तरह सहमत हूं, लेकिन यह सवाल नहीं था।
स्पेंसर रथबुन

11

मेरे दृष्टिकोण से मुख्य दोष यह है कि यह भयावह रूप से उबाऊ होगा। इसके अलावा प्रोग्रामर सॉफ्टवेयर को विकसित करने पर जोर देते हैं जो कुछ उपयोगी या ठंडा करता है। कोड काटा दृष्टिकोण इसके विपरीत प्रतीत होगा।


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

4
@KonradRudolph मैंने सोचा कि पुनरावृत्ति कटास का दिल था? तो आप एक बार (नई और रोमांचक शायद) एक समस्या को हल करेंगे लेकिन फिर आप एक ही समस्या को बार-बार हल करते रहेंगे । मैंने बमुश्किल कटास को देखा है इसलिए मैं गलत हो सकता हूं।
केविन डी

@ केविन मैं मानता हूं कि यह बेवकूफ लगता है (जब तक कि आप विशेष रूप से समस्या को हल करने के विभिन्न तरीकों को खोजने की कोशिश नहीं करते हैं)। मैंने कभी भी "कटास" नहीं किया है, जैसे कि सामान्य प्रोग्रामिंग पहेलियाँ।
कोनराड रुडोल्फ

"आपको नए सामान को पढ़ाने" में एक ही चीज़ को कैसे और कैसे किया जाता है?

यह आपके उत्तर में स्पष्ट है कि आपने प्रश्न में दिए गए लिंक को नहीं पढ़ा है।
माइक पार्टरिज

8

काटा का अर्थ है, इसके विपरीत जो आप के लिए प्रयास करना चाहिए।

एक मार्शल आर्ट के विशिष्ट आंदोलनों के अनुक्रम से युक्त एक अभ्यास , जिसका उपयोग प्रशिक्षण में किया गया है और तकनीक में कौशल दिखाने के लिए डिज़ाइन किया गया है

काटा (उत्पत्ति: 1950-55; <जापानी: आकार, पैटर्न) शब्द का उपयोग मार्शल आर्ट में किया जाता है, और आपका प्रश्न टच टाइपिंग जैसी मांसपेशियों की मेमोरी के रॉट मेमोराइजेशन के बारे में है ।

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

मुझे लगता है कि एक ही बात यहां लागू होती है, एक संरक्षक के बिना संदर्भों को फिर से करने की समस्या को कई भाषाओं में गलत तरीके से हल करना एक एकल से बेहतर नहीं है। संरक्षक के बिना आपको यह बताने के लिए कि उन्हें कहां सुधार करना है।

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

यदि आप System.out.println()संभव के रूप में आसानी से टाइप करने में सक्षम होना चाहते हैं, तो अभ्यास करना एक काटा होगा।

यदि आप समय और / या स्थान की आवश्यकताओं को कम करने या अधिक मुहावरेदार सिद्धांतों को लागू करने के लिए एक अलग कार्यान्वयन में एक समस्या के समाधान में सुधार करना चाहते हैं , तो ऐसा कुछ नहीं है जो काटा आपकी मदद करेगा।

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

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

कम योजना, अनुभव या मार्गदर्शन के साथ विभिन्न कठिन समस्याओं को हल करना सबसे डेवलपर्स, विशेष रूप से जूनियर डेवलपर्स को हर दिन करना है।

केवल शिक्षाविदों को एक विशिष्ट समाधान का सम्मान करने के लिए केवल और केवल एक ही अभ्यास करने के लिए मिलता है। डेवलपर के रूप में एक सफल करियर बनाने का कौशल अनुकूलन में है , पुनरावृत्ति में नहीं।

कौन कहता है कि ऐसे स्मार्ट लोग नहीं हैं जिन्हें काम करने के बाद पढ़ाई करने की आवश्यकता नहीं है, और वे काम पर अपने 8 घंटे में और कभी-कभी और अधिक जानने की आवश्यकता को जान सकते हैं?


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

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

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

1
दरअसल गोल्ड प्लाटिंग "... अतिरिक्त या अधिक पॉलिश विशेषताओं" को संदर्भित करता है। आप जो वर्णन करते हैं वह समय से पहले के अनुकूलन के लिए अधिक महत्वपूर्ण लगता है।
जोशुआ ड्रेक

5

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

उस ने कहा, नाम की विफलता गतिविधि की विफलता नहीं है। कुछ संभव अभ्यास करने के लिए क्या संभव हो सकता है जिस पर कोई बेहतर होना चाहता है? मुझे लगता है कि कोई यह कह सकता है कि ऐसा करने में लगने वाला समय एक अवसर लागत के नजरिए से कमियां है, लेकिन वास्तव में, यह एक निवेश है। तो, सॉफ्टवेयर विकास के शिल्प का अभ्यास करने में लगने वाला समय सॉफ्टवेयर डेवलपर्स के लिए है क्योंकि इक्विटी या बॉन्ड पर खर्च किया गया पैसा लॉन्ग टर्म सेवर / इन्वेस्टर के लिए होता है। यह एक 'खामी' नहीं है - यह टेबल दांव है।


3

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

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


एक ही प्रोग्राम को बार-बार लिखना उपयोगी और दिलचस्प हो सकता है, जैसे यदि आप इसे हर बार एक अलग एल्गोरिथ्म और / या एक अलग भाषा में उपयोग करते हैं। लेकिन शायद यह काटा नहीं है।
9000

2
प्रश्न में दिए गए लिंक को पढ़ें; जैसा कि आप नाम से मान रहे हैं यह विचार नासमझ दोहराव नहीं है।
माइक पार्टरिज

@ 9000 वास्तव में यह है कि मैं कोड कटास को कैसे समझता हूं। अक्सर एक नई भाषा सीखने, या पहले से हल की गई समस्या के लिए एक नए दृष्टिकोण की कोशिश करते समय उपयोग किया जाता है।
जोशुआ ड्रेक

3

मेरे लिए, तकनीक का मुख्य दोष जैसा कि मैं देख रहा हूं कि यह आपके समय का उप-इष्टतम उपयोग है।

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

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


आपको मार्गदर्शन कैसे मिला? मैं उसी मुद्दे से जूझ रहा हूं।
कोडयोगी

1

मेरा मानना ​​है कि काटा के कुछ रूप के बिना आप कभी भी एक महान कोडर नहीं होंगे। काटा अभ्यास है, इसका शाब्दिक अर्थ है। इसे एक उदाहरण के रूप में लें: एक एथलीट कहता है "मैं सिर्फ 100 मीटर डैश, स्क्रू अभ्यास को दिखाऊंगा और चलाऊंगा"। क्या यह एक विजेता रणनीति की तरह लगता है? क्या कभी ऐसा किया गया?

मैं लोगों को सुझाव देता हूं कि चाचा बॉब के " द क्लीन कोडर " को पढ़ें , वह प्रोग्रामिंग के क्षेत्र में व्यावसायिकता के इस (और अन्य) विषयों पर गहराई से जाते हैं।

ओह और तर्कों ने कहा कि आप काटा नहीं कर सकते और एक परिवार का पालन-पोषण केवल बहाना है। अनुभव से बोलते हैं: बच्चों को कुछ बिंदु पर सो जाओ ...


3
कोडिंग! = 100 मीटर पानी का छींटा चलाना, जब तक कि 100 मीटर एक दिन एक भारी लकड़ी वाले खदान क्षेत्र के माध्यम से न हो और एक भूमि खदान अगले दिन धान से भरे और अगले दिन जहरीले वाइपरों से भरा एक दलदल, भारी स्नाइपर आग के नीचे, पैटर्न देखें ... काता शब्द का शब्दार्थ है

2
-1 प्रशिक्षण कार्य पर हो सकता है, यहां तक ​​कि भुगतान किए गए समय पर भी (यह सुनिश्चित नहीं है कि लोग इसे क्यों भूल जाते हैं)। सब कुछ या तो शुद्ध काम नहीं है या शुद्ध शिक्षा नहीं है।
joshin4colours

@JarrodRoberson आपके द्वारा दर्शाया गया परिदृश्य वह है जो एक सैनिक दैनिक आधार पर करता है। तो आप एक बुरा सादृश्य उठाया। सच कहूं, मुझे उन लोगों के लिए खुश होना चाहिए जो अपनी 9-5 की नौकरी करते हैं, फिर घर जाते हैं और सीखना बंद कर देते हैं क्योंकि इससे मुझे प्रतिस्पर्धात्मक बढ़त मिलती है।
ThaDon

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

कम योजना, अनुभव या मार्गदर्शन के साथ विभिन्न कठिन समस्याओं को हल करना सबसे डेवलपर्स, विशेष रूप से जूनियर डेवलपर्स को हर दिन करना है। मुझे लगता है कि यह एक सटीक सादृश्य है। केवल शिक्षाविदों को एक विशिष्ट समाधान का सम्मान करने के लिए केवल और केवल एक ही अभ्यास करने के लिए मिलता है। डेवलपर के रूप में एक सफल करियर बनाने का कौशल अनुकूलन में है , पुनरावृत्ति में नहीं। कौन कहता है कि ऐसे लोग होशियार नहीं हैं जिन्हें काम के बाद पढ़ाई करने की ज़रूरत नहीं है, और वे अपने 8 घंटों में ज़रूरत से ज़्यादा सब कुछ सीख सकते हैं।

1

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

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

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


-1

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

बार संगीतकारों और घर के चित्रकारों को खुश करने वाले लोगों के लिए हमेशा जगह है, लेकिन वे प्रतिभा के पूरी तरह से अलग वर्ग हैं। मुझे लगता है कि अधिकांश घर के चित्रकार अभ्यास करने के विचार पर हँसेंगे, लेकिन मैंने एक चित्रकार को शर्त लगाई, जिसने अनुसंधान किया और तकनीक का अभ्यास किया - अनिवार्य रूप से अपनी नौकरी को एक कला के रूप में पहचानना एक बेहतर काम करेगा, यहां तक ​​कि कुछ भी जो आपके घर को पेंट करने के रूप में सांसारिक है। ।

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

ps। मैं खुद को अजीब कलात्मक या कुछ भी नहीं कह रहा हूं - मैं अमूर्त समस्याओं पर काटा नहीं करता हूं, लेकिन मैं मूल्य को पहचानता हूं और मैं अपने उत्पादन कोड को काफी कम करने की कोशिश करता हूं।


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

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

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

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

यदि आपको नहीं लगता है कि अच्छी तरह से बनाया गया सॉफ्टवेयर तेजी से वितरित किया गया है, तो कम खर्चीला है और शिल्पकारों द्वारा बनाए गए सॉफ्टवेयर से बेहतर है, आपने इसे सही तरीके से नहीं देखा है। बहुत कम संभावना नहीं है, कितने लोगों ने एक मास्टर कलाकार, संगीतकार को देखा है या एक प्रो स्पोर्ट्स प्लेयर के साथ / उसके खिलाफ खेला है - वे सिर्फ उस सामान्य नहीं हैं, और हमारे उद्योग में पहचानने के लिए बहुत कठिन हैं, लेकिन प्रतिभा में अंतर समान है जैसा कि परिणाम है। एक कलाकार गति और गुणवत्ता में 5 शिल्पकारों को पछाड़ सकता है, लेकिन कुछ भाग्यशाली हैं जिन्होंने यह देखा है कि उन्हें विश्वास नहीं है कि यह मौजूद है।
बिल के
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.