क्या कभी नई भाषा सीखना बहुत जल्दी है? [बन्द है]


11

व्यक्तिगत संदर्भ: मैं C ++ औपचारिक रूप से पिछले 6 महीनों से विश्वविद्यालय में सीख रहा हूं। इससे पहले मैंने एक साल के लिए जावास्क्रिप्ट में डब किया था। अब मैं एक महीने की पढ़ाई के दौरान पायथन सीखने पर विचार कर रहा हूं।

सीखने की प्रक्रिया में अपना ध्यान केंद्रित करने से मैं अपने सीखने की दक्षता को कम कर रहा हूं? क्या मुझे C ++ में जारी रहने वाला महीना बिताना चाहिए? या नई भाषा सीखना बहुत जल्दी नहीं है?


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

मैं C ++ में आपके द्वारा बताई गई हर चीज के साथ काफी सहज हूं।
प्रतिपक्षी

1
मैं आपके प्रश्न को परिप्रेक्ष्य में रखूंगा। एक विश्वविद्यालय में होने के पहले 6 महीनों के भीतर मुझे पहले से ही 5 अलग-अलग प्रोग्रामिंग भाषाओं से परिचित कराया गया था। असेंबली (मैं सटीक मोटो प्लेटफ़ॉर्म को भूल गया), सी, सी ++, विज़ुअल बेसिक 6 और जावा। मैंने बाद में बेसिक, C #, विजुअल बेसिक .NET, x86 असेंबली सीखी। कॉलेज के बाद मैंने पहले 2 वर्षों के भीतर कम से कम 5 अतिरिक्त प्रोग्रामिंग भाषाएँ सीखीं।
रामहुंड

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

जवाबों:


8

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

भाषाओं के बीच का अंतर वाक्यविन्यास की तरह विवरणों में है और कुछ भाषा विनिर्देश अलग-अलग होंगे (जैसे विभिन्न तरीकों से त्रुटियों को नियंत्रित किया जाता है, I / O क्षमताएं और कंपाइलर आपके इनपुट को कुछ निष्पादन योग्य में बदल देते हैं), लेकिन C ++ और Python दोनों समान हैं। प्रतिमान, इसलिए समस्या समाधान दोनों भाषाओं के साथ एक ही तरीके से किया जा सकता है। C ++ और Python दोनों Imperative और Object Oriented हैं, इसलिए यदि आप C ++ के साथ उठाए गए समस्या निवारण तकनीकों का उपयोग करके नए वाक्यविन्यास में महारत हासिल कर लेते हैं, तो शायद आप C ++ के साथ सहज हों, तो आप काफी तेजी से पायथन को लेने जा रहे हैं। यदि आप चाहते हैं, तो आप कार्यात्मक प्रोग्रामिंग के लिए भी पायथन का उपयोग कर सकते हैं, लेकिन मैंने उस हिस्से को कभी नहीं छुआ है, इसलिए मैं आपको इसके बारे में बहुत कुछ नहीं बता सकता।

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

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

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

  • नमस्ते दुनिया (स्क्रीन पर पाठ)
  • एक फ़ाइल के लिए लिखी गई नमस्ते दुनिया (आपको उस भाषा के लिए फ़ाइल I / O पर मूल बातें सिखाती है, और अक्सर अन्य प्रकार के I / O के रूप में ठीक है)
  • विभिन्न आधारों (10, हेक्स, अष्टक) के साथ कुछ मानक गणना करना, पूर्णांक और फ्लोटिंग पॉइंट दोनों। (आपको छंटनी और संख्या संकेतन के बारे में सिखाता है)
  • एक फैंसी डायलॉग में हैलो दुनिया दिखाने के लिए कुछ ग्राफिकल लाइब्रेरी का उपयोग करने का प्रयास करें। (आपको पुस्तकालयों और बाहरी कोड का उपयोग करना सिखाता है)

अंतिम पैराग्राफ में समापन टिप्पणियां उत्कृष्ट हैं। हालांकि मैं C ++ में पूर्ण आवेदन नहीं कर रहा हूं, लेकिन जो मैं अभी सुपरफिशियल है, उससे परिचित होने के दायरे को व्यापक बनाने के आपके तर्क की सराहना करता हूं।
प्रतिध्वनि

6

ठीक है, अवश्य है।

इसके बारे में कोई संदेह नहीं है, यह एक नई प्रोग्रामिंग भाषा सीखने के लिए कभी-कभी बहुत जल्दी होता है।

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

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

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

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

एक उच्च, बौद्धिक चुनौती के रूप में प्रोग्रामिंग में मौलिक योगदान के लिए; वाक्पटु आग्रह और व्यावहारिक प्रदर्शन के लिए कि कार्यक्रमों को सही ढंग से बनाया जाना चाहिए, न कि केवल शुद्धता में बहस की जाए; कार्यक्रम के डिजाइन की नींव में समस्याओं की रोशन धारणा के लिए।

वह कागज जहां वह प्रोग्रामिंग भाषाओं के समय से पहले सीखने पर विस्फोट करता है:

"सच में शिक्षण कंप्यूटर विज्ञान की क्रूरता पर" http://www.cs.utexas.edu/users/EWD/ewd10xx/EWD1036.PDF

इसके अलावा, कृपया मुझे लौ मत करो, मैं सिर्फ दूत हूं।


"मैंने BASIC के साथ शुरुआत की और जीवन के लिए दुखी हो गया" - क्या इस तरह आपकी बात को खारिज नहीं किया जाता? यदि आपको अन्य प्रोग्रामिंग लैंग्वेज की शुरुआत की गई थी, तो BASIC ने इतना मजबूत प्रभाव नहीं डाला है?
tdammers

मुझे लगता है कि मुझे एक इमोशन चाहिए था। यदि यह मदद करता है, तो मैंने उस वाक्य को हटा दिया है।
डेवलपरडॉन

3

क्या कभी नई भाषा सीखना बहुत जल्दी है?

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

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


2

क्या तुम दोनों नहीं कर सकते ?? मैं C ++ में एक प्रोजेक्ट करूंगा और पायथन के बिट्स सीखूंगा (सिर्फ इसलिए कि यह बहुत बढ़िया है), आप ProjectEuler.net पर समस्याओं को हल कर सकते हैं पायथन का उपयोग कर

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


ProjectEuler.net कमाल लग रहा है! सिफारिश के लिए धन्यवाद।
प्रत्याशा

2

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

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

संपादित करें : मैंने मूल रूप से सिंटैक्स कहा था, लेकिन गैर-सिंटिक विवरण केवल प्रोफेसरों के लिए महत्वपूर्ण हैं, और उनमें से बहुत अधिक हैं।


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

मैं यह नहीं कह रहा कि इसे याद रखना असंभव है, बस यह एक शुरुआत के लिए बहुत कठिन बनाता है। बड़े वाक्यविन्यास अंतर काफी आसान होते हैं, लेकिन प्रोफेसरों को सूची के लिए append()बनाम जैसे विवरणों के बारे में झुंझलाहट हो सकती है push_back(), जो कि कुछ अनुभवी प्रोग्रामर को भी देखना पड़ता है यदि उन्होंने एक निश्चित भाषा में कुछ समय में एक निश्चित सुविधा का उपयोग नहीं किया है। मौके पर वाक्यविन्यास को याद करने में सक्षम होना निस्संदेह मदद करता है, लेकिन अधिकांश नौकरियों के लिए यह आवश्यक नहीं है
कार्ल बेज़ेलफेल्ट
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.