प्रोग्रामिंग के लिए 50 साल के अनपढ़ कंप्यूटर को कैसे पेश करें [बंद]


10

दूसरे दिन मेरे पिताजी ने मुझसे एक सवाल किया, जिसकी मैंने उनसे कभी उम्मीद नहीं की थी।

"मैं C ++ कैसे सीख सकता हूं?"

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

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

सभी मामलों में, उसे पढ़ने के लिए बस कुछ चाहिए था। उसे कुछ सिखाना है। वह स्पंज जैसी जानकारी को अवशोषित करता है।

मुझे अपने पिता की प्रेरणा या ऐसा करने की क्षमता पर कोई संदेह नहीं है, इसलिए मेरा सामान्य लक्ष्य बस है:

मेरे पिताजी को कंप्यूटर की दुनिया में ले जाओ, और उन्हें प्रोग्रामिंग के लिए सड़क पर ले आओ।

मेरा दृढ़ता से मानना ​​है कि एक बार जब मैं उसे मूल सिद्धांतों के माध्यम से प्राप्त कर लेता हूं, तो उसकी ड्राइव और रीडिंग स्किल उसे इसी तरह आगे बढ़ाती रहेगी।

तो मैं आप सभी से पूछ रहा हूं: मुझे यह सब कहां से शुरू करना चाहिए? और वहाँ सबसे अच्छे संसाधन क्या हैं? क्या मुझे उसे विंडोज के बजाय लिनक्स शुरू करने के लिए मिलना चाहिए? क्या C ++ एक बुरा विचार है?

याद रखें, उसे पहले (IMO) कंप्यूटर सीखने की ज़रूरत है, और फिर प्रोग्रामिंग का पहला ग्रैस्प ("हैलो वर्ल्ड" अनुभव) प्राप्त करें।

पैसे की खातिर और सर्वोच्च प्राथमिकता पर, मैं मुफ्त ऑनलाइन संसाधनों को पसंद कर सकता हूं जो वह पढ़ सकता है, लेकिन हर तरह से प्रिंट या भुगतान-के-लिए-ऑनलाइन किसी भी अच्छे सुझाव का स्वागत है (जो मैं संभवतः बाद में खरीद करने के लिए देख सकता हूं)।

और यह भी, मैं उसे सी ++ (कोई पायथन, जावा, आदि) के साथ शुरू करने का इरादा नहीं करता, क्योंकि मैं इसे सबसे अच्छा जानता हूं और कोड के साथ रास्ते में उसकी मदद करने में सक्षम होगा। (मुझे अभी अन्य भाषाओं में न्यूनतम ज्ञान है)।

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

EDIT # 2: मैं समझता हूं कि मेरे दृष्टिकोण / सोच / ज्ञान का यहां अभाव हो सकता है। मैं एक प्रमुख स्तर के स्नातक सीएस प्रमुख हूँ। यदि आप मेरी पोस्ट के किसी भी बात से सहमत नहीं हैं, तो मुझे बताएं - मुझे विचार, जानकारी क्यों दें - इसीलिए मैं पहली जगह पर पूछ रहा हूं। मेरे सामान्य लक्ष्य को विशिष्ट पहुंच योग्य लक्ष्यों तक सीमित करने के लिए।


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

@ThomasOwens आप कैसे जानते हैं कि समुदाय में कोई पेशेवर शिक्षक या प्रशिक्षक मौजूद नहीं हैं? क्या मेटा को वास्तव में देखा गया है, जहां मुझे जाना है? मुझे लगता है कि मैं इसे दे सकता हूं (हालांकि मैं यहां रहना पसंद करूंगा), कृपया इसे मेरे लिए माइग्रेट करें। यदि ऐसा कुछ है तो मैं इस प्रश्न को फिट मानदंड बनाने के लिए कर सकता हूं ताकि एसओ / प्रोग्रामर समुदाय द्वारा देखा जा सके, कृपया मुझे ऐसा करने में मदद करें।
स्किपर

1
मेरी जानकारी के अनुसार, इस सवाल को स्वीकार करने वाली कोई साइट नहीं है। मैंने सिर्फ सूची देखी और एक नहीं देखी। यदि आप इस पर आगे चर्चा करना चाहते हैं, तो कृपया मेटा पर एक प्रश्न उठाएं ।
थॉमस ओवेन्स

@ThomasOwens खैर, मैं यहाँ पर चहकने या ट्रोल करने के लिए नहीं हूँ, इसलिए मैं इसके साथ अपना सर्वश्रेष्ठ प्रदर्शन करूँगा। धन्यवाद
skippr

टिप्पणियों में मेरा जवाब चुपके से ... नीचे दिए गए उत्तरों के विपरीत मुझे लगता है कि सी ++ वास्तव में एक महान पहली भाषा है। खासतौर पर शुरुआती लोगों के लिए। आप तुच्छ कंसोल के साथ शुरू करते हैं IO और C ++ इस संबंध में जावा या सी # की तुलना में अधिक शुरुआती अनुकूल है। कम बॉयलर प्लेट कोड उसे भी भ्रमित करने के लिए। निश्चित रूप से उन्नत विशेषताएं हैं जो भ्रम का कारण बनेंगी लेकिन आप कुछ बुनियादी सुविधाओं तक खुद को सीमित कर सकते हैं।
लॉर्ड टाइडस

जवाबों:


13

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

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

उसी कारण से, उसे विंडोज के बजाय लिनक्स पर शुरू न करें, क्योंकि तब उसे ध्यान केंद्रित करने के लिए दो समस्याएं होती हैं: लिनक्स सीखना और एक ही समय में कोडिंग सीखना! विकर्षणों को न्यूनतम रखें।

वास्तविक प्रोग्रामिंग संसाधनों के लिए, ऑनलाइन ट्यूटोरियल ढूंढना काफी आसान है, लेकिन मैंने पाया है कि प्रोग्राम को सीखने का सबसे अच्छा तरीका प्रोग्रामिंग है। कुछ ऐसा ढूंढें जो आप करना चाहते हैं, और फिर यह पता लगाना शुरू करें कि यह कैसे करना है।

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

और अगर उसके कोई प्रश्न हैं, तो उसे एक StackOverflow खाता प्राप्त करें। :)


4

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

वहाँ कुछ चीजें हैं जो प्रोग्रामिंग के लिए महत्वपूर्ण हैं:

  • सार समस्याओं को हल करने की क्षमता
  • समस्या को हल करने के लिए छोटे पर्याप्त टुकड़ों में समस्याओं को विघटित करने की क्षमता
  • समाधान का निर्माण करने की क्षमता इसमें और छोटे पर्याप्त टुकड़ों में है कि आगे की प्रगति संभव है
  • विशिष्ट भाषाओं का वाक्य-विन्यास और शब्दार्थ।

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

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

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

एक बार जब आपके डैड फ़ंक्शंस, क्लासेस, ऑब्जेक्ट्स, तरीकों से परिचित हो जाते हैं, तो C ++ की minutiae और बारीकियाँ इतनी भारी नहीं होंगी। हेक, सी के साथ भी शुरू करना आसान होगा: यह क्षमा नहीं है , लेकिन चिंता करने के लिए कम भ्रमित करने वाली विशेषताएं नहीं हैं।

आप लिनक्स बनाम विंडोज के बारे में उत्सुक हैं; मुझे यकीन नहीं है कि भेद ज्यादा मायने रखता है। यदि वह पहले से ही एक या दूसरे वातावरण से परिचित है, तो स्विच करना एक और बाधा है। अगर वह न तो जानता है, तो मैं लिनक्स का सुझाव दूंगा, लेकिन मुख्यतः क्योंकि अच्छे उपकरण स्थापित करना हास्यास्पद है: apt-get install <foo>अधिकांश वितरण पर काम करता है, और जो वितरण aptअक्सर समर्थन नहीं करते हैं , वे कुछ इसी तरह प्रदान करते हैं। एक मिनट बाद, आपका साफ-सुथरा नया पैकेज स्थापित हो जाता है, अक्सर इससे तेज होता है कि मैं पहले से तैयार विंडोज बायनेरिज़ के लिए एक विश्वसनीय डाउनलोड स्रोत ढूंढ लूँ जो ट्रोजन घोड़ों के बारे में नहीं जानता है।


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

Hrm, मैंने अलग-अलग श्रेणियों में कौशल को तोड़ दिया है ताकि यह बिंदु बनाया जा सके कि वाक्यविन्यास और शब्दार्थों पर भारी पड़ने से अन्य कौशलों के विकास पर असर पड़ सकता है - कम आर्कन-महसूस करने वाले नियमों वाली भाषा अमूर्त प्रवाह को आसान बना देगी - लेकिन मैं उस बिंदु को अच्छी तरह से नहीं कहा गया है।
22:12

1
सुझाए गए भाषाओं में से, मैं निश्चित रूप से अजगर का पक्ष लूंगा। लेकिन, यदि आपके पिताजी नेत्रहीन हैं, तो प्रसंस्करण (www.processing.org देखें) एक दिलचस्प परिचय हो सकता है (हालांकि कई प्रकार की समस्याएं हैं जिनके लिए यह उपयुक्त नहीं है)।
जेम्स यंगमैन

@ नाम: हे, मुझे नहीं लगता कि मैंने कभी वाक्यांश, इंटरएक्टिव कार्यक्रमों का उपयोग करते हुए देखा है ... पीडीएफ आउटपुट पहले। :)
सरनॉल्ड
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.