मैं वास्तव में एक प्रोग्रामिंग भाषा में कैसे महारत हासिल कर सकता हूं?


103

मुझे पता है कि एक भाषा सीखना, आप बस एक पुस्तक खरीद सकते हैं, उदाहरणों का पालन कर सकते हैं, और जब भी संभव हो अभ्यासों को आज़माएं। लेकिन मैं वास्तव में देख रहा हूँ कि आपने इसे सीखने के बाद भाषा को कैसे मास्टर किया है।

अब मुझे पता है कि अनुभव एक प्रमुख कारक है, लेकिन भाषा के आंतरिक सीखने के बारे में क्या है, अंतर्निहित संरचना क्या है, आदि।

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

सूची और आगे बढ़ सकती है, लेकिन मुझे विश्वास है कि मैंने बात बना ली है। :)

और अंत में, यदि आवश्यक हो तो उदाहरण के रूप में जो भी भाषा लें, हालांकि सबसे अच्छा होगा यदि C को एक उदाहरण के रूप में लिया गया हो।


11
अनुभव यह सब वास्तव में करने के लिए फोड़ा है। जब तक आप एक विशेषज्ञ नहीं हैं तब तक सभी सिद्धांत बेकार हैं जब तक कि आप इसे व्यावहारिक रूप से लागू नहीं कर सकते।
साइमन व्हाइटहेड

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

6
"आदमी, आलू दीनसौर है, कार ब्रह्मांड"। इससे कोई फर्क नहीं पड़ता कि आप किसी भाषा को कितना मास्टर करते हैं, अगर कोड खराब है और इसका कोई मतलब नहीं है, फिर भी समझना मुश्किल है।
रेनाटो दिनानी

2
मुझे ऐसा लग रहा है कि मैं इस बिंदु को थोड़ा याद कर रहा था। लैंगगॉव विकसित होते हैं, इसलिए किसी भाषा की कोई महारत नहीं है, आप इसके साथ बढ़ते हैं, जितना अधिक आप इसका उपयोग करते हैं उतना ही आपको सीखना होगा।
nycynik

2
कोड और कोड पढ़ें। लिनक्स कर्नेल (सी प्रोग्रामिंग) का एक यादृच्छिक टुकड़ा लें और पता लगाएं कि एक फ़ंक्शन क्या करता है।
एलेक्स हार्ट

जवाबों:


166

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

  • हर दिन, हर दिन भाषा का उपयोग करें। आमतौर पर इसका मतलब भाषा में पूर्णकालिक रूप से नियोजित होना है।

  • भाषा के बारे में आप सब पढ़ सकते हैं। विशेष रूप से, "सर्वोत्तम अभ्यास" और मुहावरे।

  • भाषा के बारे में दूसरों के साथ बात करने के लिए एक उपयोगकर्ता समूह में शामिल हों और वे इसके साथ क्या करते हैं।

  • अन्य लोगों के कोड के साथ काम करें! किसी भी व्यक्ति ने जो कुछ भयानक किया उसके बाद उसे साफ करने के लिए भाषा में क्या नहीं करना है, यह जानने का कोई तेज़ तरीका नहीं है।

  • आपके द्वारा लिखे गए कोड का समर्थन करें - हर बग आपके सबसे खराब निर्णयों का दौरा बन जाता है!

  • कंप्यूटर विज्ञान और भाषाओं का सामान्य रूप से अध्ययन करें

  • एक बहुत ही अलग भाषा सीखें। सी के लिए एक महान प्रशंसा लिस्प की तरह एक कार्यात्मक भाषा होगी। यह आपके प्रक्रियात्मक भाषा के बारे में सोचने के तरीके को अंदर से बाहर कर देगा।

  • उस भाषा के लिए उपलब्ध चौखटे और एपीआई का उपयोग करना सीखें।

  • भाषा के साथ अपने खुद के प्रयोग करने के लिए समय निकालें। SICP C पर लागू नहीं है, लेकिन इसकी सीमाओं का परीक्षण करके किसी भाषा को सीखने का दृष्टिकोण बहुत ही उत्पादक है।

  • यह जानने के लिए भाषा का इतिहास पढ़ें कि इसे क्यों बनाया गया।

  • भाषा लेखकों को बोलने के लिए सम्मेलनों में भाग लेने, या यह सुनने के लिए कि उद्योग के नेता भाषा के साथ क्या कर रहे हैं।

  • भाषा में क्लास लें।

  • दूसरों को भाषा सिखाएं ( ब्रायन ओकले को धन्यवाद )

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


76
+5 आपके द्वारा लिखे गए कोड का समर्थन करने के लिए - हर बग आपके सबसे खराब फैसलों का दौरा बन जाता है!
जेनिफर एस

8
+1 अंतिम वाक्य के लिए पूरी तरह से:Every technique you use to learn brings and additional perspective to your understanding.
इजाकाता

1
@ इज़कट: ओएमजी, क्या मैंने ऐसा लिखा है? मैं वास्तव में एक देशी अंग्रेजी वक्ता हूँ! मैंने इसे सुधारा है। धन्यवाद!
GlenPeterson

2
@GlenPeterson ... वास्तव में, मैंने सिर्फ "ऑफ" होने वाले वाक्य पर ज्यादा ध्यान दिए बिना पेस्ट किया। +1 वास्तव में इसके पीछे के इरादे के लिए था। = पी
इज़्काटा

13
+1 के लिए "एक बहुत ही अलग भाषा सीखें। सी के लिए एक महान प्रशंसा लिस्प की तरह एक कार्यात्मक भाषा होगी। यह आपके प्रक्रियात्मक भाषा के अंदर सोचने के तरीके को बदल देगा।" - यह शायद सबसे महत्वपूर्ण है। यह आपको प्रोग्रामिंग के बारे में जानने में मदद करता है (यानी किस स्थिति में क्या देखना है)।
n

53

10,000 घंटे का अभ्यास है।

पढ़ें "सिखाओ अपने आप को दस साल में प्रोग्रामिंग"

ऊपर से मुख्य बिंदु:

  • जाओ रुचि प्रोग्रामिंग में, और क्योंकि यह मजेदार है कुछ है। सुनिश्चित करें कि यह पर्याप्त मज़ेदार हो रहा है ताकि आप अपने दस वर्षों / 10,000 घंटों में डालने के लिए तैयार रहें।
  • कार्यक्रम। सबसे अच्छी तरह की सीखने की सीख है।
  • अन्य प्रोग्रामर के साथ बात करें ; अन्य कार्यक्रम पढ़ें।

1
कि मैं क्या पोस्ट करने जा रहा था! मैंने स्पष्ट रूप से अभी तक P.SE पर पर्याप्त घंटे नहीं बिताए हैं।
मार्टिज़न पीटर्स


8
एक पुस्तक के लिए महान शीर्षक! मैं अगली कड़ी के लिए इंतजार नहीं कर सकता, "20 वर्षों में कार्यक्रम को अच्छी तरह से सिखाओ!"
GlenPeterson

16
हालाँकि, आपको यह सुनिश्चित करना होगा कि आप वही 10 घंटे 1000 बार नहीं दोहरा रहे हैं ...
इज़्काटा

तकनीकी विशेषज्ञता की कोई भी राशि किसी को यह जानने में मदद नहीं करेगी कि क्या स्वचालित है या इसके लिए एक कार्यक्रम बनाएं। यह कहने जैसा है - जिम जाओ और बास्केटबॉल में हर मौलिक व्यायाम दस साल तक करो, प्रत्येक दिन 1 घंटे के लिए। Poof! आप एक बास्केटबॉल सुपरस्टार (मास्टर) हैं ... नहीं, यह सिर्फ तकनीकी कौशल से अधिक है। इसलिए, मैं इस प्रश्न के उत्तर पर विचार नहीं करता हूं, अर्थात, स्वामी कैसे बनें? यह समाधान का एक हिस्सा हो सकता है, लेकिन इसके स्वामी के लिए जादुई औषधि नहीं है। मुझे पता है - मैं मास्टर नहीं हूँ!
oemb1905

36

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

  • C: LCC कंपाइलर पुस्तक

  • C ++: C ++ का डिज़ाइन और इवोल्यूशन (और फिर अपने स्वयं के C ++ कंपाइलर का निर्माण करें या कम से कम GNU C ++ कंपाइलर कोड का उपयोग करके किसी के कार्यान्वयन को समझें)

  • जावा: "इनसाइड जेवीएम" प्राप्त करें और जेवैक सोर्स कोड प्राप्त करें। "java" .C कोड भी मददगार है

  • पायथन: सीपीथॉन कार्यान्वयन।

  • ObjectiveC: ObjC रनटाइम env और संकलक स्रोत कोड के आंतरिक के बारे में Apple की लगभग कोई भी सामग्री आपकी मदद करने जा रही है।

  • लिस्प: एसआईसीपी बुक (आपको योजना सिखाती है और भाषा की तरह लिस्प के लिए एक बुनियादी दुभाषिया-संकलक): लिस्प इन स्मॉल पीस (एक और अच्छी पुस्तक)।


1
अब इसे ही मैं उत्तर कहता हूं। मैंने पहले से ही एक को स्वीकार कर लिया है, लेकिन यह "सबसे अच्छा जवाब" के लायक होगा, अगर यह पहले थोड़ा था
cprogcr

2
आपको पता नहीं है कि आपके उत्तर ने कितना मदद की। मैं आपके द्वारा उल्लिखित पुस्तकों के बारे में पढ़ रहा हूं और वे उस तरह की चीज हैं जिसकी मुझे आवश्यकता है।
cprogcr

हे, मैंने उनसे सीखा। खुशी में मदद करने के लिए :-)
Aniket Inge

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

1
एंड्रयू Tenenbaum द्वारा हाँ, यह किताब है। कोई भी संस्करण पढ़ने के लिए अच्छा है। यह आपको नहीं बताता कि "C" कैसे काम करता है, लेकिन जब आप देखते हैं कि आपके द्वारा बनाए गए ऑपरेटिंग सिस्टम के साथ काम करने के लिए C लाइब्रेरी को कैसे लागू किया जाता है, तो आप C को और भी बेहतर समझने लगते हैं! शायद आपको इसे संशोधित करने के लिए पर्याप्त है। (और यही वह जगह है जहाँ OOC आता है)
अनिकेत इंग

12

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


1
जब मैं कॉलेज में था, तो मैं यह तय करूंगा कि एक बार मैंने इसमें पोंग लिखा था। यह काफी अच्छी तरह से काम किया जब तक मैं MIPS सीखा। मेरे पास अभी भी बुरे सपने हैं।
फ्रोजन मटर

C में वेबसाइट की जा सकती है?
बिग सैक

10

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


2
The true goal is to master your conceptual understanding of a language or languages.ठीक ठीक। यही मेरा वास्तव में मतलब था।
cprogcr

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

एसके-तर्क: प्रोग्रामिंग भाषाएं बदलती हैं, और इसलिए उनके पुस्तकालय और वातावरण हैं। परिणामस्वरूप भाषा के साथ काम करने का तरीका भी बदल जाता है। उदाहरण के लिए, jQuery ने जावास्क्रिप्ट के साथ काम करने के तरीके को बदल दिया।
orlp

यह शायद सच है कि कोई भी वास्तव में C ++ जैसी भाषा में महारत हासिल नहीं कर सकता है , लेकिन योजना जैसी कुछ अतिसूक्ष्मताओं के लिए यह काफी संभव है - जैसा कि @ SK-लॉजिक कहता है, यह वास्तव में प्रोग्रामिंग है , जिस भी भाषा में, क्योंकि इसमें महारत हासिल नहीं की जा सकती है, क्योंकि अनुप्रयोगों का क्षेत्र अनंत है।
लेफ्टनैरबाउट

1
@ नाइटक्रैकर, भाषाएं "विकसित" नहीं होती हैं। C99 हमेशा C99 रहेगा और कभी नहीं बदलेगा। C ++ 11 हमेशा C ++ 11 ही रहेगा, इसके बाद भी यह अगली पीढ़ी की भाषा से अलग होता है। वातावरण "विकसित" करते हैं, हाँ, लेकिन jQuery ने अन्य भाषाओं के समुदायों के लिए पहले से ज्ञात किसी भी नई तकनीक का परिचय नहीं दिया । वे केवल संकीर्ण जावास्क्रिप्ट समुदाय के लिए नए थे।
SK- तर्क

5

इसका जवाब आपको पहले से ही पता है

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

यह कड़ी मेहनत और दृढ़ संकल्प और सभी के लिए नीचे आता है जो आपको कभी नहीं मिल सकता है।

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

कोई जादू की गोली नहीं है ...


2

एसडीएलसी (उर्फ, सॉफ्टवेयर डेवलपमेंट लाइफ-साइकल) क्या है, इसे पढ़कर और समझकर शुरू करें । यह एक पुनरावृत्ति प्रक्रिया है जिसमें आत्म सुधार, सीखना,**practicing, practicing...**

यहाँ छवि विवरण दर्ज करें

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

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


1
धन्यवाद। जब मैंने इसे पढ़ा, तब तक मैंने पहले ही उत्तर चुन लिया था, लेकिन आपकी सलाह जरूर लूंगा।
cprogcr

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

2

अनुभव का कोई विकल्प नहीं है। किसी चीज़ में महारत हासिल करने के लिए, आपको बहुत से काम करने होंगे, कई अलग-अलग कामों के लिए।

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

मैं अन्य लोगों के कोड को पढ़ने और इसे समझने में सक्षम होना चाहता हूं, चाहे वह कितना भी कठिन क्यों न हो।

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


2

समस्या के उच्च स्तर पर, वास्तुकला के बारे में जानें: अपनी परियोजनाओं को कैसे व्यवस्थित करें, इसकी संरचना क्या है। बस उन्हें बेतरतीब ढंग से बढ़ने न दें।

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

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


1

क्या मेरे द्वारा कुछ एक सुझाव दिए जा सकते हैं?

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

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


0

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

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

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

आशा है कि ये आपकी मदद करेगा!


0

मैं ग्लेन की सूची में दो आइटम जोड़ूंगा

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

0

@TMN ने जो कहा उस पर निर्माण करने के लिए। मुझे एक ही कार्यक्रम को अलग भाषा में लिखकर भाषा सीखने में बड़ी सफलता मिली है।

उदाहरण के लिए, एक प्रोग्राम जो एक CSV फ़ाइल में पढ़ता है, पाठ को पार्स करता है और फिर उसे दूसरे CSV में रिवर्स ऑर्डर में कॉलम के साथ लिखता है।

ऐशे ही,

स्तम्भ 1, Column2, स्तम्भ 3

सेवा

स्तम्भ 3, Column2, स्तंभ 1

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

इसके अलावा मुझे लगता है कि @GlenPeterson ने क्या कहा,

एक बहुत ही अलग भाषा सीखें। सी के लिए एक महान प्रशंसा लिस्प की तरह एक कार्यात्मक भाषा होगी। यह आपके प्रक्रियात्मक भाषा के बारे में सोचने के तरीके को अंदर से बाहर कर देगा।

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

महान भाषा के साथ खेलने के लिए।


0

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

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