10 साल में खुद से Programming सीखें
- Programming सीखने को लेकर इतनी जल्दबाज़ी क्यों है, इस पर सवाल।
- बुकस्टोर्स में "24 घंटे में Java सीखें" जैसी किताबें भरी पड़ी हैं, और ऐसी बहुत-सी किताबें दावा करती हैं कि C, SQL, Ruby, algorithms आदि को कुछ दिनों या कुछ घंटों में सीखा जा सकता है।
- Amazon पर 2000 के बाद "teach", "yourself", "hours" जैसे शब्दों वाली किताबें खोजने पर 512 किताबें मिलीं। शीर्ष 10 में से 9 programming किताबें थीं।
- "teach yourself" को "learn" से, और "hours" को "days" से बदलकर खोजने पर भी मिलते-जुलते नतीजे आते हैं।
- निष्कर्ष यह है कि लोग programming सीखने में जल्दबाज़ी कर रहे हैं, या programming को किसी और चीज़ की तुलना में ज़्यादा आसान मान रहे हैं।
"24 घंटे में खुद से C++ सीखें" का मतलब क्या है
- 24 घंटों में कई महत्वपूर्ण programs लिखने और सफलता व असफलता से सीखने के लिए पर्याप्त समय नहीं होता।
- किसी अनुभवी programmer के साथ काम करते हुए C++ environment में जीना-सोचना समझने का भी समय नहीं होता।
- ऐसी किताबें गहरी समझ की बजाय सिर्फ सतही परिचय ही दे सकती हैं।
- हो सकता है आप C++ का कुछ syntax सीख लें, लेकिन language का उपयोग कैसे करना है, यह नहीं सीख पाएँगे।
- Alan Perlis ने कहा था कि अगर कोई language programming के बारे में आपकी सोच को प्रभावित नहीं करती, तो उसे सीखना सार्थक नहीं है।
10 साल में खुद से Programming सीखें
- शोध के अनुसार chess, music composition, telegraph operation, painting, piano performance, swimming, tennis, neuropsychology और topology research जैसे कई क्षेत्रों में expert बनने में लगभग 10 साल लगते हैं।
- सबसे महत्वपूर्ण है deliberate practice: सिर्फ दोहराव नहीं, बल्कि अपनी मौजूदा क्षमता से आगे के कामों को चुनना, कोशिश करना, अभ्यास के दौरान और बाद में performance का विश्लेषण करना, और गलतियों को सुधारना।
- सचमुच का expert बनने में पूरी ज़िंदगी भी लग सकती है।
अगर आप programmer बनना चाहते हैं
- Programming में रुचि रखें, और मज़े के साथ programming करें।
- दूसरे programmers से बात करना और दूसरे programs को पढ़ना, किसी भी किताब या training course से ज़्यादा महत्वपूर्ण है।
- आप college में 4 साल बिता सकते हैं या graduate school में उससे भी ज़्यादा समय, लेकिन अगर स्कूल आपके लिए आनंददायक नहीं है, तो निजी प्रयासों या नौकरी के दौरान भी वैसा ही अनुभव हासिल किया जा सकता है।
- दूसरे programmers के साथ projects करें, और कई programming languages सीखें।
- "computer science" में "computer" भी शामिल है, इसलिए यह जानना ज़रूरी है कि computer को instructions चलाने में कितना समय लगता है।
- language standardization के काम में हिस्सा लेना भी अच्छा हो सकता है, लेकिन जहाँ संभव हो, उससे जल्दी निकल जाना बेहतर है।
- सिर्फ किताबों से सीखना पर्याप्त नहीं है।
परिशिष्ट: language का चयन
- किस programming language को पहले सीखना चाहिए, इस पर सलाह।
- अपने दोस्तों द्वारा इस्तेमाल की जाने वाली language चुनें, चीज़ों को सरल रखें, और interactive तरीके से सीखें।
- पहली programming language के रूप में Python या Scheme की सिफारिश की गई है।
परिशिष्ट: किताबें और अन्य सामग्री
- "सिर्फ किताबों से सीखना पर्याप्त नहीं है" इस बात पर ज़ोर देते हुए भी कुछ किताबों और web pages की सिफारिश की गई है।
- Scheme और Python का उपयोग करके programming सीखने के लिए किताबों और सामग्री की सिफारिश की गई है।
GN⁺ की राय
- यह लेख programming सीखने के लिए एक यथार्थवादी दृष्टिकोण पर ज़ोर देता है और कम समय में expert बनने के झूठे वादों से सावधान करता है।
- 10 साल या 10,000 घंटे की deliberate practice से expertise विकसित होने पर आधारित शोध का हवाला देकर, यह सीखने के लिए दीर्घकालिक नज़रिया प्रस्तुत करता है।
- यह ज़ोर देता है कि programming की गहरी समझ और कौशल-विकास के लिए विभिन्न projects में भाग लेना, कई programming languages सीखना, और computer science के बुनियादी सिद्धांतों को समझना ज़रूरी है। यह programming सीखने पर विचार कर रहे शुरुआती software engineers के लिए उपयोगी सलाह देता है।
1 टिप्पणियां
Hacker News की राय
एक उपयोगकर्ता ने बताया कि उसने 1999 में "Sams Teach Yourself C++ in 24 Hours" नाम की किताब खरीदी थी, और काउंटर पर काम करने वाले व्यक्ति ने वह किताब देखकर हँसते हुए उससे किसी लेख के बारे में बात की। एक और बार, जब वह 16 साल की उम्र में Borders में programming की किताबें देख रहा था, तो किसी ने उसे "The C Programming Language" नाम की किताब थमा दी, और यही उसके जीवन को बदल देने वाला मोड़ बना। इस उपयोगकर्ता का करियर काफी हद तक programming में रुचि रखने वाले developers और अन्य लोगों से मिलने-जुलने से बना।
एक अन्य उपयोगकर्ता ने कहा कि किशोरावस्था में पढ़ा गया उसका पहला essay उसके लिए खास महत्व रखता है। दोबारा पढ़ने पर उसने Malcolm Gladwell के संदर्भ और Ratatouille का उल्लेख देखा, जिससे उसे समझ आया कि 1998 में पोस्ट होने के बाद लेख को update किया गया था। मूल संस्करण archive में अब भी उपलब्ध है और काफी छोटा है।
एक और उपयोगकर्ता ने कहा कि वह अक्सर किताबों से सीखता है, लेकिन यह रवैया math या physics जैसे धीरे-धीरे बदलने वाले non-CS क्षेत्रों में ज़्यादा मददगार होता है। उसने हाल ही में quantum programming पर O'Reilly की एक किताब पढ़ी, लेकिन उसकी आलोचना की कि वह quantum circuits को विस्तार से नहीं समझाती, इसलिए असल में क्या हो रहा है यह समझने में मदद नहीं मिलती। उसके मुताबिक किताबें सिर्फ learning tools हैं, और hobby projects भी अनुभव के ज़रिये ज़्यादा असरदार हो सकते हैं। किताबें सही दिशा दिखाने में उपयोगी हैं, लेकिन अपनी ज़रूरत के मुताबिक सही किताब ढूँढना ज़रूरी है। कुछ लोग तभी किताब खोलते हैं जब वे पूरी किताब पढ़ सकते हों, लेकिन उसके हिसाब से यह बेवकूफी भरा रवैया है। उसने O'Reilly की Generative Deep Learning किताब मंगाई है और उम्मीद है कि उससे कुछ सीखने को मिलेगा; उसके अनुसार करियर में अगर कुछ जानकारी भी टिक जाए तो वह भी फ़ायदेमंद है।
एक उपयोगकर्ता ने कहा कि वह इस बात से बहुत प्रभावित हुआ कि पेज पर दिया गया पुराना Amazon.com link अब भी संबंधित नतीजे लौटाता है। उसने इसे "Cool URIs don't change" का अच्छा उदाहरण बताया।
एक अन्य उपयोगकर्ता ने पिछले 16 वर्षों के threads की सूची साझा की और कहा कि एक साल बाद repost करना ठीक है, और links सिर्फ जिज्ञासु पाठकों की जिज्ञासा शांत करने के लिए हैं।
एक और उपयोगकर्ता ने deliberate practice के महत्व पर ज़ोर देते हुए कहा कि सिर्फ दोहराना काफ़ी नहीं है; व्यक्ति को अपनी मौजूदा क्षमता से आगे की चुनौतियाँ लेनी चाहिए, कोशिश करनी चाहिए, काम करते समय और बाद में अपने प्रदर्शन का विश्लेषण करना चाहिए, गलतियाँ सुधारनी चाहिए, और फिर दोहराना चाहिए।
एक उपयोगकर्ता ने याद किया कि उसने 5-6 साल पहले एक वीडियो में सुना था कि programmers की संख्या बढ़ रही है और उनमें से ज़्यादातर के पास 5 साल से कम का अनुभव है। उसका कहना था कि IT/web के हमारे जीवन पर अधिक असर डालने के साथ यह बात समझ में आती है। 20 साल के अनुभव वाले इस उपयोगकर्ता ने कहा कि वह बहुत-सी ऐसी बातें जानता है जिन्हें 5 साल से कम अनुभव वाले लोगों को शायद कभी जानने की ज़रूरत न पड़े, लेकिन अनुभव अब भी उपयोगी है, और कम अनुभवी programmers भी बहुत-सी ऐसी चीज़ें कर सकते हैं जिनकी वह कल्पना भी नहीं कर सकता।
एक अन्य उपयोगकर्ता ने अनुमान लगाया कि 1998 का बताया गया यह लेख शायद update किया गया है, क्योंकि इसमें Clojure और Go जैसे उल्लेख शामिल हैं।
एक उपयोगकर्ता ने कहा कि programming सीखना अंततः कला के स्तर तक पहुँचते-पहुँचते और अधिक artistic हो जाता है, और बुनियादी चीज़ों के लिए 2-3 साल का समर्पण काफ़ी है।
अंत में, एक उपयोगकर्ता ने कहा कि programming खुद सीखना महत्वपूर्ण है, क्योंकि यह ऐसा पेशा है जिसमें लगातार सीखते रहना पड़ता है। 5 साल पहले सीखी गई चीज़ें आज भी लागू हो सकती हैं, लेकिन मौजूदा परिस्थितियों के हिसाब से नई चीज़ें सीखनी पड़ सकती हैं।