क्या Programmers.SE या Stack Overflow पर समय बिताना गैर-शुरुआत के लिए अच्छी प्रोग्रामिंग पुस्तकों का विकल्प हो सकता है? [बन्द है]


44

Programmers.SE और Stack Overflow पर समय (और सक्रिय रूप से भाग लेने) में मदद कर सकता है और मुझे अपने प्रोग्रामिंग कौशल को सुधारने में मदद करता है जो किसी भी समय कोड कम्प्लीट 2 (जो अन्यथा मेरी पढ़ने की सूची में आगे होगा) जैसी किताब पढ़ने में कितना समय लगेगा।

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

अधिक विशिष्ट होने के लिए, मैं यह भी जोड़ता हूं कि भले ही मैं C, Java, पायथन आदि में प्रोग्रामिंग करूं, लेकिन फिर भी मैं अपने कोडिंग कौशल से खुश नहीं हूं और CC2 की समीक्षा को पढ़कर मुझे एहसास हुआ कि मुझे अभी भी बहुत सुधार करने की आवश्यकता है ।

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



1
यह निश्चित रूप से एक शुरुआती प्रोग्रामर के लिए भारी है।
सर्फस

जवाबों:


102

नहीं, यह एक विकल्प नहीं है, बल्कि एक आदर्श पूरक है । मुझे लगता है कि दोनों के संयोजन में बहुत शक्ति है।

ऐसा क्यों है कि एक अच्छा व्याख्यान आपको सिर्फ किताब पढ़ने से ज्यादा सिखाता है? सहभागिता और प्रश्न पूछने की क्षमता।

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


सही पूरक के लिए +1। मैं केवल कल्पना कर सकता हूं कि अगर एसई या एसओ आसपास होते तो अस्सी का दशक मेरे लिए कैसा होता। वे महान संसाधन हैं।
माइकल रिले - AKA Gunny

1
एक पूर्ण पूरक के लिए एक आदर्श प्रशंसा के रूप में +1। बस "वास्तविक दुनिया" प्रश्न पढ़ना, और उत्तर देने के प्रयास (या मौजूदा उत्तर 'समाधानों की नकल करना) कौशल, ज्ञान और अंतर्ज्ञान को बढ़ाने के लिए महान मिनी-कटास हैं
डेव न्यूटन

यदि कुछ भी हो, तो आसानी से समझ में आने वाले और सुलभ चैनल में समस्याओं और समाधानों को व्यक्त करने की क्षमता डेवलपर के रूप में आपकी क्षमता को बेहतर बनाती है, आपके कॉम कौशल को बेहतर बनाने में।
सर्फस

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

12

मैंने (वर्तमान में) 1 वर्ष और 10 महीने के लिए स्टैकऑवरफ्लो का सदस्य रहा है। इस समय के दौरान मैं कला का एक अनुशासित छात्र बन गया हूं: वास्तुकला, पैटर्न, डिकॉप्लिंग, यूनिट-परीक्षण का संज्ञानात्मक और सूची पर जा सकता है ... लेकिन, एसओ ने क्या भूमिका निभाई ???

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

दूसरा, SO ने मुझे उन लोगों से सीखने को जारी रखने का स्थान दिया जो (प्रतिष्ठा द्वारा दर्शाए गए) वास्तव में जानते हैं कि वे क्या कर रहे हैं - वाक्यात्मक और दार्शनिक रूप से। SO, CodeReview और प्रोग्रामर पर प्राप्त होने वाली अंतर्दृष्टि की एक निश्चित मात्रा है जिसे आप बस एक पुस्तक से प्राप्त नहीं कर सकते हैं।

जाहिर है, SO पुस्तकों या अन्य सभी वेब संसाधनों को प्रतिस्थापित नहीं कर सकता है (हालाँकि, यदि मैं MSDN और SO को एक ही सामग्री संसाधन में संयोजित कर सकता था ...); इसके बजाय, एसओ इन अन्य संसाधनों का पूरक है। सबसे अच्छा शिक्षक, हालांकि, अनुभव बना हुआ है


11

प्रोग्रामिंग कौशल में सुधार करने के लिए मेरे लिए सबसे अच्छा तरीका क्या है?

अधिक प्रोग्रामिंग। किताबें और वेब पेज पढ़ना माध्यमिक है।

आप सबसे अच्छा करके सीखते हैं।


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

1
सच्चाई यह है कि, मैं बहुत कुछ सीखे बिना प्रोग्रामिंग कर रहा था। इसलिए मैंने वस्तुओं को जाने या एक रूपरेखा का उपयोग किए बिना PHP में वेबसाइटें बनाईं। आपको कोड से दूर जाना होगा और जाना होगा
Bojan Kogoj

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

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

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

5

सीखने के लिए कुछ अवयवों की आवश्यकता होती है:

  1. लर्नर (जो आप निश्चित रूप से है)
  2. समय (जिसे आपको प्रबंधित और समर्पित करना चाहिए)
  3. संसाधन (जिसमें से, SE साइटें केवल एक छोटा सा हिस्सा हैं)

क्या आप एक अच्छे शिक्षार्थी हैं? क्या आप सीखने के लिए पर्याप्त समय देते हैं? यदि इन 2 प्रश्नों का उत्तर हां है , तो आपके पास पहले से ही किसी भी संसाधन से लगभग सीखने की पर्याप्त क्षमता है।

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


5

एसओ और पी.एस.ई दो ऐसी चीजें प्रदान करते हैं जो न तो अन्य पुस्तकों को पढ़ती हैं और न ही स्वयं कोड लिखने की पेशकश करती हैं: परीक्षण और शिक्षण। अगर आप आंख मूंदकर जैसे सवाल पूछते हैं

यह संकलन क्यों नहीं है

wall
of
code
100
lines
long

और कोई व्यक्ति "लाइन 33 पर कहता है कि अल्पविराम एक अर्धविराम होना चाहिए" और आप उत्तर स्वीकार करते हैं और आगे बढ़ते हैं, और हमेशा एक ही सवाल पूछते रहते हैं, तो आप शायद सुधार न करें।

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

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


3

आपके प्रोग्रामिंग कौशल को वेब साइटों या पुस्तकों को पढ़ने से नहीं, बल्कि दोहराने से सबसे अच्छा सुधार होता है

  1. वर्तमान ज्ञान पर आधारित कोड लिखें
  2. परिणाम का मूल्यांकन करें
  3. क्या करना है और क्या नहीं, इसके बारे में मूल्यांकन से सीखें।
  4. 1 पर जाएं

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


2
किताबें (और ब्लॉग, और एसओ) आपको उन अवधारणाओं से अवगत करा सकते हैं जो आप अपने दम पर नहीं कर सकते हैं, लेकिन आप कोड लिखकर एक बेहतर प्रोग्रामर बन सकते हैं।
अन्निका बैकस्ट्रॉम

2
दूसरी ओर, अगर मैंने कभी बाहरी सलाह पर ज्यादा ध्यान नहीं दिया, तो मैं बहुत दूर नहीं जाऊँगा। अन्य लोगों ने कठिन तरीका सीखा है, और अपने अनुभवों से नहीं सीखना मूर्खता होगी। यकीन है, केवल पढ़ने और सुनने पर भरोसा नहीं है, लेकिन दूसरों की मदद के बिना सीखने की कोशिश करने की गलती मत करो।
फिल

बाहरी पढ़ना # 2 में जाता है

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

2

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


1

महत्वपूर्ण विचार और विश्लेषण अभी भी आवश्यक है

में ही नहीं। सीखने का स्रोत (पुस्तक, ब्लॉग, वेबसाइट, एसओ आदि) बनाने का एकमात्र तरीका समझ, विश्लेषण और फिर दोहराया समावेश है। इस तरह के मंचों पर लोग जो लिखते हैं वह सुसमाचार नहीं है और इसे ऐसे नहीं माना जाना चाहिए कि इसमें कितने वोट हैं। यदि यह पता लगाने के लिए प्रदान की गई राय पर आपको अपना विश्लेषण करना चाहिए:

  1. एक अच्छा विचार
  2. आपकी स्थिति के लिए लागू एक विचार

सुधार करने का सबसे अच्छा तरीका

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


0

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

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