कार्यक्रम को शुरुआती सिखाने के लिए सबसे अच्छा तरीका है? [बन्द है]


324

मूल प्रश्न

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

उसे प्रभावी ढंग से सिखाने के लिए मैं क्या बेहतर कर सकता हूं? क्या कोई तार्किक आदेश है जिसे मैं अवधारणा द्वारा अवधारणा के माध्यम से चलाने के लिए उपयोग कर सकता हूं? क्या ऐसी जटिलताएँ हैं जिनसे मुझे बाद में बचना चाहिए?

जिस भाषा के साथ हम काम कर रहे हैं वह पायथन है , लेकिन किसी भी भाषा में सलाह का स्वागत है।


मदद कैसे करें

यदि आपके पास अच्छे हैं तो कृपया अपने उत्तर में निम्नलिखित जोड़ें:

  • शुरुआती अभ्यास और परियोजना विचार
  • शुरुआती शिक्षण के लिए संसाधन
  • Screencasts / ब्लॉग पोस्ट / नि: शुल्क ई-पुस्तकें
  • ऐसी किताबें छापें जो शुरुआती लोगों के लिए अच्छी हों

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


शुरुआती शिक्षण के लिए ऑनलाइन संसाधन :


शुरुआती शिक्षण के लिए अनुशंसित प्रिंट बुक्स


मुझे समझ नहीं आता कि इसे क्यों बंद किया जाना चाहिए। कम से कम 295 उपयोगकर्ताओं ने इस प्रश्न (और 92 उत्तरों) को इसे वोट करने के लिए पर्याप्त रूप से उपयोगी पाया है, 290 के साथ अब तक इसे अपने पसंदीदा में से एक मानते हैं। इस सवाल के परिणामस्वरूप शिक्षण संसाधनों का बहुत उपयोगी एकत्रीकरण हुआ। यह वास्तव में 'तर्कों' या 'वाद-विवाद' के परिणामस्वरूप नहीं हुआ है, लेकिन वास्तव में प्रोग्रामिंग में मुश्किल 'मानव कारकों' में से एक को संबोधित करने के तरीके के बारे में बहुत अधिक सलाह है। मुझे लगता है कि इस तरह से एक सवाल को बंद करना स्टैकऑवरफ्लो समुदाय के लिए हानिकारक और हानिकारक है।
जस्टिन स्टैंडर्ड

@JustinStandard क्या आपने टिप्पणियों के उत्तरों में से कई में अपने संपादन परिवर्तित करने पर विचार किया है? जैसे यहाँ , यहाँ , और यहाँ
जेसन प्लैंक

जवाबों:


118

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

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

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

कुछ परियोजनाएं:

  • नमस्ते दुनिया!
  • मेरे जन्म का वर्ष लें, और मेरी आयु की गणना करें (बस (अब - तब) कोई महीने का सुधार नहीं)। (सरल गणित, इनपुट, आउटपुट)
  • एक दिशा (ऊपर, नीचे, बाएं, दाएं) के लिए पूछें, फिर उपयोगकर्ता को अपना भाग्य बताएं (छेद में गिरना, केक ढूंढना, ect)। (बूलियन तर्क)
  • FizzBuzz, लेकिन हर सेकंड में एक बार गिनती करें। (लूप्स, टाइमर और अधिक तर्क)
  • उनकी उम्र के आधार पर कुछ वास्तव में एक ऐप की तरह है जो उपयोगकर्ताओं को कुछ अंतराल पर एक यादृच्छिक अपमान कहता है। (यदि आप अंतराल को यादृच्छिक बनाते हैं तो लूप, सरणियाँ, टाइमर और यादृच्छिक)

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

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

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

कुछ परियोजनाएं:

  • जल्लाद खेल
  • रोबोटिक्स के साथ प्रयोग करना ( Vex और Mindstorms विकल्प हैं)

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

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

कुछ परियोजनाएं:

  • टेट्रिस
  • पाठ फ़ाइल आधारित ब्लॉग इंजन
  • अधिक उन्नत रोबोटिक्स काम करते हैं

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

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

@ फकहलर मैं आपकी बात देखता हूं, लेकिन मेरा मानना ​​है कि टेट्रिस दिलचस्प है क्योंकि आपके कोड लिखने से पहले और बाद में बहुत सारे ओएसएस / डेमो कार्यान्वयन हैं जो आप गुदा कर सकते हैं।
एरिक हाकिंस

30

आप ऐलिस का उपयोग करने की कोशिश कर सकते हैं । यह एक 3D प्रोग्राम है जिसे परिचयात्मक प्रोग्रामिंग कक्षाओं में उपयोग के लिए डिज़ाइन किया गया है।

नए प्रोग्रामर के लिए दो सबसे बड़ी बाधाएँ अक्सर होती हैं:

  • वाक्यविन्यास त्रुटियाँ
  • प्रेरणा (वंचित के बजाय कुछ सार्थक और मजेदार लेखन)

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

अनुभवी प्रोग्रामर ऐलिस को खिलौने के रूप में नीचे देख सकते हैं और कोड की लाइनों को खींचने और छोड़ने पर स्कूप कर सकते हैं, लेकिन शोध से पता चलता है कि यह दृष्टिकोण काम करता है।

अस्वीकरण: मैंने ऐलिस पर काम किया।


मुझे रैंडी पॉश के आखिरी व्याख्यान के माध्यम से इसका पता चला। इस परियोजना के पीछे के तर्क ने मेरे दिमाग को उड़ा दिया।
जेस्विन जोस

28

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

लोगो के बाद, पायथन या रूबी पर जाएं। मैं अजगर की सलाह देता हूं, क्योंकि यह एबीसी पर आधारित है, जिसे प्रोग्रामिंग सिखाने के उद्देश्य से आविष्कार किया गया था।

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

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

एक्सकेसीडी ने पायथन की शक्ति को थोड़ा बेहतर बताया: "आप उड़ रहे हैं! कैसे?"  "अजगर!"

आप उसके बाद C # या जावा में जा सकते हैं, हालांकि वे इतना नहीं देते हैं कि पायथन के पास पहले से नहीं है। इनका लाभ यह है कि वे सी-स्टाइल सिंटैक्स का उपयोग करते हैं, जो कई (मैं सबसे कहता हूं?) भाषाओं का उपयोग करते हैं। आपको स्मृति प्रबंधन के बारे में अभी चिंता करने की आवश्यकता नहीं है, लेकिन आपको भाषा दुभाषिया से थोड़ी अधिक स्वतंत्रता और कम हैंडहोल्ड करने की आदत हो सकती है। अजगर व्हॉट्सएप और इंडेंटिंग को लागू करता है, जो ज्यादातर समय अच्छा होता है लेकिन हमेशा नहीं। C # और Java आपको अपने व्हाट्सएप का प्रबंधन करने देते हैं, जबकि दृढ़ता से टाइप किया जाता है।

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


वास्तव में, आप C. में मेमोरी को पूरी तरह से प्रबंधित नहीं करते हैं। आपको बस उस सिस्टम को बताना होगा जब आप अधिक मेमोरी चाहते हैं और जब आप उपयोग की गई मेमोरी के साथ काम करते हैं।
कॉम्पैन

15

एक अच्छा अजगर पाठ्यक्रम एमआईटी का एक कोमल परिचय है जो पायथन का उपयोग करके प्रोग्रामिंग करता है । यह सब ऑनलाइन मुफ़्त है, और आपको इसे समझने के लिए एक एमआईटी uberstudent होना जरूरी नहीं है।

[ जस्टिन मानक ] संपादित करें

यह पाठ्यक्रम इस मुफ्त ऑनलाइन पुस्तक का उपयोग करता है: कैसे सोचें एक कंप्यूटर वैज्ञानिक की तरह
मैं निश्चित रूप से इसे काफी उपयोगी पा रहा हूं।


12

पायथन पैकेज VPython - साधारण नश्वर ( वीडियो ट्यूटोरियल ) के लिए 3 डी प्रोग्रामिंग ।

कोड उदाहरण:

from visual import *

floor = box (pos=(0,0,0), length=4, height=0.5, width=4, color=color.blue)
ball = sphere (pos=(0,4,0), radius=1, color=color.red)
ball.velocity = vector(0,-1,0)
dt = 0.01

while 1:
    rate (100)
    ball.pos = ball.pos + ball.velocity*dt
    if ball.y < ball.radius:
        ball.velocity.y = -ball.velocity.y
    else:
        ball.velocity.y = ball.velocity.y - 9.8*dt

VPython की उछलती गेंद http://vpython.org/bounce.gif


बुनियादी अवधारणाओं को जानने के बाद ही वे अच्छे होंगे। दृश्य बनाना लोगों को प्रोग्रामिंग सीखने के लिए प्रेरित करने का एक शानदार तरीका है।
फाकलेर

12

पायथन में कछुए ग्राफिक्स के साथ शुरू करो।

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

>>> from turtle import *
>>> setup()
>>> title("turtle test")
>>> clear()
>>>
>>> #DRAW A SQUARE
>>> down()        #pen down
>>> forward(50)   #move forward 50 units
>>> right(90)     #turn right 90 degrees
>>> forward(50)
>>> right(90)
>>> forward(50)
>>> right(90)
>>> forward(50)
>>>
>>> #INTRODUCE ITERATION TO SIMPLIFY SQUARE CODE
>>> clear()
>>> for i in range(4):
        forward(50)
        right(90)
>>>
>>> #INTRODUCE PROCEDURES   
>>> def square(length):
        down()
        for i in range(4):
            forward(length)
            right(90)
>>>
>>> #HAVE STUDENTS PREDICT WHAT THIS WILL DRAW
>>> for i in range(50):
        up()
        left(90)
        forward(25)
        square(i)
>>>
>>> #NOW HAVE THE STUDENTS WRITE CODE TO DRAW
>>> #A SQUARE 'TUNNEL' (I.E. CONCENTRIC SQUARES
>>> #GETTING SMALLER AND SMALLER).
>>>
>>> #AFTER THAT, MAKE THE TUNNEL ROTATE BY HAVING
>>> #EACH SUCCESSIVE SQUARE TILTED

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



11

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

यदि वह प्रोत्साहन मौजूद है तो बाकी सब सिर्फ मामूली विवरण है।


किसी भी तकनीकी विषय को सीखने का सबसे अच्छा तरीका है, मुझे लगता है कि छोटी, वृद्धिशील समस्याओं को हल करना सीखना है।
cbednarski

8

मैं अगर किसी को भी इस यहाँ उल्लेख किया गया है, अभी तक पता नहीं है, लेकिन आप की जाँच करने के लिए चाहते हो सकता है जेड शॉ के अजगर हार्ड रास्ता जानें

उम्मीद है की यह मदद करेगा




5

यह एक शानदार किताब है जिसे मेरे छोटे भाई सीखते थे:

http://pine.fm/LearnToProgram/

बेशक, सबसे महत्वपूर्ण बात यह है कि किताब खत्म करने के बाद किसी तरह की IMMEDIATELY का वास्तविक, उपयोगी कार्यक्रम शुरू करना है।


4

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



4

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

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

मैंने सुना है कि जो महान कलाकारों को औसत दर्जे से अलग करता है, वह यह है कि हर बार जब वे अभ्यास करते हैं, तो वे किसी चीज़ में सुधार करते हैं, चाहे वह कितना भी छोटा क्यों न हो। अपने भाई को अभ्यास करने दें, और वह हर बार जब वह कीबोर्ड पर बैठता है, तो सुधार करेगा।

संपादित करें: [जस्टिन मानक]

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


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

2

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

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


2

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


2

मैं प्रोग्रामिंग सिखाता था और आपके भाई को मेरे अधिकांश छात्रों पर एक मुख्य लाभ है जो वह सीखना चाहते हैं :)

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

व्यक्तिगत रूप से मुझे लगता है कि पायथन और रूबी महान पहली भाषा बनाएंगे।

संपादित करें: रात भर दिखाई देने वाले शुरुआती प्रोग्रामिंग असाइनमेंट की सूची वही हो सकती है जो आप खोज रहे हैं।


2

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

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

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

यहां का सुनहरा नियम आपके छात्र की झुकाव शैली को बाहर निकालना है।


2

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

COMP1917 उच्च कम्प्यूटिंग - 2008 सत्र 1 http://deimos3.apple.com/WebObjects/Core.woa/Browse/unsw.edu.au.1504975442.01504975444

यदि लिंक काम नहीं करता है, तो यहां एक रास्ता है:

होम -> आईट्यून्स U -> इंजीनियरिंग -> COMP1917 उच्च कम्प्यूटिंग - 2008 सत्र 1


2

वहाँ एक wikibook है जो अजगर सीखने के लिए बहुत अच्छा है

मुझे नहीं पता कि विकीबूक अन्य भाषाओं के लिए कैसे हैं, लेकिन मैंने व्यक्तिगत रूप से विकबूक से अजगर सीखा क्योंकि यह फरवरी 2007 में था

ps - यदि आप वाइकबुक से अपरिचित हैं , तो यह मूल रूप से पुस्तक संलेखन का विकिपीडिया संस्करण है। यह वर्णन करना कठिन है, लेकिन यदि आप वहां से कुछ पुस्तकों की जांच करते हैं, तो आप देखेंगे कि यह कैसे काम करता है



2

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

कुछ संभावित परियोजनाएँ (कोई विशेष क्रम में नहीं):

  • सिक्का फ्लिप सिम्युलेटर। उपयोगकर्ता इनपुट को सिक्का फ़्लिपिंग के लिए वांछित संख्या में परीक्षण करने दें। इसे निष्पादित करें और परिणाम को सिर या पूंछ के प्रतिशत के साथ प्रदर्शित करें।

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

    यहाँ एक ही विचार के साथ एक विस्तारित कनवर्टर का एक उदाहरण है: http://pastebin.org/6541

  • एक प्रोग्राम बनाते हैं जो एक संख्यात्मक इनपुट लेता है और वह अक्षर ग्रेड प्रदर्शित करता है जिसका वह अनुवाद करता है। अगर यह फिट बैठता है, तो यह पता लगाने के लिए कि इफ और इलीफ के खिलाफ इनपुट का मूल्यांकन करना समाप्त हो जाएगा।

  • एक साधारण प्रश्नोत्तरी बनाएं जो कई बहुविकल्पी से गुजरती है या रिक्त प्रश्नों को भरती है। अंत में यह प्रदर्शित करेगा कि उपयोगकर्ता ने कैसे किया। वह कोई भी प्रश्न चुन सकता है जो वह चाहता है।

  • पेनीज़ की कुछ (संभवतः बड़ी) संख्या का इनपुट लें और इसे बड़े मूल्यवर्ग में परिवर्तित करें। उदाहरण के लिए, 149 पैसे = 1 डॉलर, 1 तिमाही, 2 पैसे और 4 पैसे।

  • एक साधारण सूची प्रबंधक बनाएं। उन सूचियों में सूचियाँ जोड़ने / हटाने / जोड़ने / हटाने में सक्षम हो। यहाँ एक क्रिसमस सूची प्रबंधक का एक उदाहरण है: http://pastebin.org/6543

  • एक प्रोग्राम बनाएं जो निर्माण करेगा और फिर परीक्षण करेगा कि दर्ज संख्या एक जादू वर्ग (2 डी सरणी के साथ) बनाती है या नहीं। यहाँ कुछ नमूना कोड है, लेकिन उपयोगकर्ता को वर्ग को गोल करने के संदर्भ में यह दिखाने के लिए कि वास्तव में प्रत्येक चरण पर वर्ग को प्रिंट करना चाहिए: http://pastebin.org/6544

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



2

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



2

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


1

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


1

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


1

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

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

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


1

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


1

रॉबर्ट रीड ने एक उपयोगी मार्गदर्शिका लिखी, हाऊ टू ए प्रोग्रामर , जो प्रोग्रामिंग मुद्दों के एक विस्तृत क्षेत्र को शामिल करता है जो एक शुरुआत में सहायक होगा।

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