एक त्वरित प्राक्कथन
कर के जानें: ज्ञान बनाम पता-कैसे
एक बड़ा अंतर ज्ञान और पता है कि कैसे है। नए शिक्षार्थियों के लिए यह सोचना एक सामान्य गलती है कि क्योंकि वे एक कार्यक्रम को "समझ" सकते हैं जैसा कि वे इसे पढ़ते हैं, वे वास्तव में कार्यक्रम के तर्क को समझ रहे हैं जिस तरह से लिखा जा रहा है।
और उस दूसरे भाग को प्राप्त करने का एकमात्र तरीका अभ्यास करना है। बैठ जाओ, एक पाठ संपादक, एक कमांड लाइन खोलें, और उसके नीचे उतरें।
यह संभावना (और अपेक्षित) है कि इस स्तर पर आपके जटिल सॉफ्टवेयर घटक एक दूसरे के साथ बातचीत करने की क्षमता को सीमित करने की क्षमता रखते हैं। और यह वास्तव में एक अच्छी बात है, क्योंकि यह आपको मूल से शुरू करने के लिए मजबूर करता है। बंदूक न चलाएं और सही गति से आगे बढ़ें: छोटे कार्यों के लिए छोटे अभ्यास से शुरुआत करें।
सच कहूं तो मुझे कभी यकीन नहीं हुआ कि जावा के साथ प्रोग्रामिंग सीखना शुरू करने का तरीका है (मैं विश्वविद्यालय में रहने के लिए प्रोग्रामिंग सिखाता था, और अभी भी कभी-कभार निजी ट्यूशन करता हूं)। आप शुरू करने के लिए यह अपने आप में बहुत जटिल है, और अधिकांश जावा पुस्तकें काफी चुनौतीपूर्ण प्रतीत होंगी। फिर भी, यह निश्चित रूप से किया जा सकता है (कम से कम उस वैश्विक ज्ञान के कुछ क्षेत्रों के लिए जो हम प्रोग्रामर से उम्मीद करते हैं), जब तक आप खुद को कदम से कदम सीखने तक सीमित रखते हैं।
पुस्तकें
जैसा कि आप जावा पर सेट हैं, और यदि आपको एक अच्छी जावा बुक की आवश्यकता है, तो मैं सुझाऊंगा:
- जावा में सोच रहा था । यह ठीक है, हालांकि अब थोड़ा पुराना है।
- जावा ट्यूटोरियल । यह वास्तव में सबसे अच्छा सीखने वाला साथी नहीं है, लेकिन हाथ में रखने के लिए एक महान संदर्भ है, क्योंकि यह सभी मूल बातें शामिल करता है और उदाहरण प्रदान करता है। सीखना जावा भाषा ट्रेल शायद, अपनी पठन सूची पर होना चाहिए, हालांकि मुझे लगता है कि चाहते हैं यह पूरा शुरुआती के लिए चुनौतीपूर्ण हो सकता है के रूप में यह अवधारणाओं कि पहली बार में समझ में मुश्किल हो सकता है प्रस्तुत करता है।
- प्रभावी जावा । यह सीखने के लिए एक महान पुस्तक नहीं है, बल्कि एक भयानक संदर्भ भी है जिसे आपको बाद में हाथ में लेना चाहिए। एक बैठे में पढ़ने के लिए नहीं, लेकिन काटने के आकार की चोंच में।
मैं केवल इसका उल्लेख कर रहा हूं क्योंकि मुझे नहीं पता कि आप कक्षा में क्या उपयोग करते हैं। अन्य पुस्तकों का एक टन है। कुछ अच्छे हैं। कुछ वर्षों के लिए छात्रों को अपंग करेंगे।
आपकी अध्ययन प्रक्रिया
मूल वर्कफ़्लो
अब से, मैं आपको सलाह दूंगा कि आप कक्षा में देखे गए सभी अभ्यासों और कोड नमूनों के लिए इस 2-चरण प्रक्रिया का पालन करें:
- पढ़ें और अध्ययन करें
- अभ्यास पढ़ें
- सुनिश्चित करें कि आपने उन्हें समझा है
- कोड
- किताब को बंद करें
- उस कोड एडिटर और कमांड लाइन वाले कंप्यूटर के सामने बैठ जाएं
- अपने आप से कार्यक्रम को फिर से लिखने का प्रयास
विफलता के मामले में
यदि आप असफल हो जाते हैं और महसूस करते हैं कि आपको पुस्तक पर एक नज़र डालने की आवश्यकता है, तो आपकी विफलता या तो होने की संभावना है:
- (सबसे अधिक संभावना है) कि आप वास्तव में समाधान नहीं समझ पाए,
- (कम संभावना) कि आप भूल गए हैं कि समाधान का एक विशेष सा कैसे दिखता है: वाक्यविन्यास, एपीआई उपयोग, ...
पहला कारण वह होने की संभावना है जो आप सबसे अधिक बार सामना करते हैं। दूसरा एक किस्सा है। दोनों को समवर्ती अभ्यास द्वारा संबोधित किया जाता है।
हर बार जब आप इन शुरुआती उदाहरणों में से एक को लागू करने में विफल होते हैं, तो पुस्तक को फिर से देखें, फिर उसे फिर से बंद करें। पुस्तक को देखते हुए कोड न करें। मैं यह भी सलाह दूंगा कि आप अपना संपूर्ण समाधान हटा दें और शुरुआत करें। पुनरावृत्ति सीखने की प्रक्रिया का एक कष्टप्रद लेकिन महत्वपूर्ण हिस्सा है।
इसे हल्के में न लें। हर बार जब आप अपने आप को बताने के लिए आग्रह करता हूं लगता है "हाँ, ठीक है, मैं जानता हूँ यह" या "मैं 90% वहाँ हूँ, यह लगभग हो गया के रूप में अच्छा के रूप में है" और, एक और अनुभाग में जाएं कि आग्रह करता हूं वापस लड़ने और फिर से प्रारंभ करना चाहते हैं। ईमानदारी से अपने आप को स्वीकार करना बहुत मुश्किल है कि आप पूरी तरह से एक अवधारणा को नहीं समझ पाए हैं।
साइड नोट: मैं इसे एक महान असहमति मानता हूं कि अधिकांश स्कूल कार्यक्रम अब बहुत अधिक नीचे की चीजों को डंपिंग द्वारा प्रोग्रामिंग पाठ्यक्रमों को "किकस्टार्ट" करने का प्रयास करते हैं और टूलींग प्रदान करते हैं जो छात्रों के लिए बहुत उन्नत है: लक्ष्य आपके जीवन को दुखी करना या आपके लिए सीखना भी नहीं है दिल की बातों से जो बाद में आपके करियर में आपके औजारों से स्वचालित हो जाएगा और आपको कभी-कभी मुश्किल से याद भी होगा। यह आपको उन सभी बिट्स को सिखाना है जो चारों ओर तैरते हैं।
सफलता के मामले में: आगे बढ़ो!
यदि आप अपने व्यायाम को लागू करने में सफल होते हैं, तो जरूरी नहीं कि सीधे अगले एक पर कूदें। यह देखने की कोशिश करें कि आप उस एक को बेहतर बनाने के लिए क्या कर सकते हैं। क्या आप उस आउटपुट को बदल सकते हैं जिसे अनुरोध किया गया था? एक छोटी सी सुविधा जोड़ें? एक विकल्प? जैसा कि आप अब उस मज़ेदार क्षेत्र में हैं, जहाँ आप मुख्य कठिनाई से गुज़रे हैं, और ये आत्म-लगाए गए छोटे आवश्यकताएँ आपकी आत्माओं को थोड़ा सा बनाए रखने की अधिक संभावना हैं।
हालांकि बहुत दूर न जाएं: आप वर्णमाला को छापने से नहीं जाते हैं और इसे उलट कर अचानक इसे रंग के एक ढाल के साथ स्क्रीन पर विकर्ण पर प्रकट करते हैं। छोटे कदम उठाएं। सीखना एक लंबी और पुनरावृत्ति प्रक्रिया है, और आपको कठिनाई के बढ़ते स्तरों के साथ समस्याओं का सामना करना पड़ता है (उदाहरण के लिए, देखें कि मैं आमतौर पर पुनरावर्तन को कैसे समझा सकता हूं )।
इट्स जस्ट लर्निंग - ए कम्पेरिजन
आपकी समस्या वास्तव में प्रोग्रामिंग से संबंधित नहीं है। यह वही समस्या है जब हजारों लोग गणित सीखने की कोशिश करते हैं।
यदि आप उन्हें कोई समस्या देते हैं, तो वे यह नहीं देखते कि समाधान के लिए कैसे काम किया जाए। हालाँकि, यदि आप उनके लिए समाधान लिखते हैं, तो अधिकांश इसे समझेंगे और सोचेंगे कि ", यह बहुत आसान था!"। फिर भी आप उन्हें अलग-अलग उपायों और परिकल्पनाओं के साथ एक समान समस्या देंगे और वे इसे हल करने में विफल रहेंगे: वे इसके पीछे के तर्क को नहीं समझ पाए, और उन्हें इसे स्वयं करने में सक्षम होने के लिए अभ्यास की आवश्यकता है।
ध्यान दें कि यह गणित के साथ एक सामान्य समस्या है, लेकिन मेरी राय में आप इसे अन्य क्षेत्रों के टन में देखते हैं जहां कुछ तर्क आवश्यक हैं: एकांत, भाषा व्याकरण, भौतिकी, आदि सीखना ... और यह एक "प्राकृतिक" क्षमता के लिए नीचे नहीं है। इन बातों को समझने के लिए: यह बस अभ्यास करने के लिए नीचे आता है (उस क्षेत्र में, या दूसरों में जो इस क्षेत्र में अवधारणाओं को आसानी से समझ लेते हैं)।
कोई कारण नहीं है कि आप कोड लिखना नहीं सीख सकते। तुम बस जब तक आप "आह आह! / यूरेका पल। फिर अगली, कठिन, समस्या पर आगे बढ़ें।
ये बाद में भी मदद कर सकते हैं: