एक अच्छा प्रोग्रामर बनने के लिए सोच कौशल [बंद]


10

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

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

इसलिए मुझे आश्चर्य है कि एक अच्छा प्रोग्रामर बनने के लिए अन्य सोच कौशल हैं या नहीं। मैंने नीचे Q & As का अनुसरण किया है और वास्तव में वहां अनुशंसित कुछ पुस्तकों को पढ़ा है। लेकिन मैं वास्तव में अपने प्रोग्रामिंग काम के लिए सीधे लागू अच्छे तरीकों को पिक नहीं कर सका।

प्रोग्रामिंग / सोच कौशल विकसित करने में मदद करने के लिए प्रोग्रामर को क्या गैर-प्रोग्रामिंग किताबें पढ़नी चाहिए?

/software/44654/skills-and-habits-to-develop-to-be-good-at-programming-im-a-newbie

जवाबों:


10

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

यहाँ एक पढ़ने की सूची है (इसके अलावा कोई विशेष क्रम नहीं है, यह उनके दिमाग में आया था)।

  1. प्रोग्रामिंग पर्ल (जॉन बेंटले)
  2. अधिक प्रोग्रामिंग मोती (जॉन बेंटले)
  3. कंप्यूटर प्रोग्रामिंग की कला (डोनाल्ड नथ)
  4. C ++ में एल्गोरिदम (रॉबर्ट सेडगविक)
  5. एल्गोरिथ्म डिजाइन मैनुअल (स्टीवन स्कीना)
  6. प्रोग्रामिंग का अभ्यास (Kernighan और पाईक)
  7. प्रोग्रामिंग के तत्व (Stepanov)
  8. इसे कैसे हल करें (पोला)
  9. कंप्यूटर प्रोग्राम्स की संरचना और व्याख्या (एबेल्सन और सूसमैन)

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

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

मैं बहुत बड़ी संख्या में प्रतिभाशाली प्रोग्रामर के साथ काम करता हूं, और लगभग सार्वभौमिक रूप से वे प्रोग्रामिंग पर्ल के प्रशंसक हैं । निश्चित रूप से मैं उन अभ्यर्थियों की अधिक कामना करता हूं जिनका मैंने साक्षात्कार किया था, उस पुस्तक के अध्याय 4 को पढ़ा था।


4

प्रथम; किसी भी दिए गए अनुशासन के लिए, हमेशा किसी न किसी तरह से बहुत बेहतर होने वाला है। उस हिस्से के बारे में चिंता मत करो।

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

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


2

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

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


0

दो गैर-प्रोग्रामिंग किताबें हैं जो मुझे लगता है कि महत्वपूर्ण हैं।

रेमंड स्मुलिन द्वारा पहली "लेडी या द टाइगर" है। यह तर्क पहेली का एक बड़ा सेट है जो चुपके से ऑटोमेटा सिद्धांत के दौरे का एक प्रकार शामिल करता है। निफ्टी का सामान।

डगलस हॉफस्टैटर द्वारा दूसरा "गोडेल, एस्चर, बाख: एन इटरनल गोल्डन ब्रैड" है, जो आपको पुनरावृत्ति और भाषा सिद्धांत के बारे में सोचता है।

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


0

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

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

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


0

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

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

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