मैं जल्दी से एक नई भाषा कैसे चुनूं, मुझे कई अन्य लोग जानते हैं? [बन्द है]


14

एक प्रकार का प्रश्न जो प्रोग्रामर्स पर आता रहता है। वह एक विशिष्ट भाषा कैसे सीखता है, आपको कई अन्य (आमतौर पर बहुत अनुभव या शिक्षा के माध्यम से) जानते हैं।

हालांकि, कुछ मामलों में, किसी को नौकरी के लिए, या व्यक्तिगत विकास के लिए, या यहां तक ​​कि एक गर्म मंच की जांच करने के लिए जल्दी से उठने की आवश्यकता हो सकती है।

आपके अनुभव में, नई भाषा को जल्दी से चुनने के लिए आपने किन सामान्य रणनीतियों का उपयोग किया है? क्या एक भाषा के विशिष्ट पहलू हैं जो आप ठंड शुरू करते समय ध्यान केंद्रित करने की कोशिश करते हैं? इस प्रक्रिया में आपको किस प्रकार के संसाधन मददगार लगते हैं?


6
मैं कहूंगा कि बस करो। आधिकारिक दस्तावेज और Google एकमात्र संसाधन हैं जिनकी आपको आवश्यकता होगी।
फॉस्को

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

मुझे यकीन नहीं है कि पूछे गए सवाल कितना उपयोगी है। अगर मुझे कई प्रोग्रामिंग लैंग्वेज पता हैं, तो मैंने शायद नई भाषा सीखी है, और शायद कुशलता से। यदि मैं नहीं करता, तो मुझे इस प्रश्न से क्या लाभ होगा?
डेविड थॉर्नले

1
@ डेविड मैं एक आधा दर्जन भाषाओं को जानता हूं, लेकिन मैंने उन्हें आमतौर पर या तो क्लास लेने के बाद या कई महीनों के काम के बाद सीखा है। लेकिन अगर मुझे दूसरी तरफ एक नई नौकरी के लिए जल्दी से एक भाषा चुननी है, तो इससे मुझे मदद नहीं मिलेगी। मुझे उन लोगों पर संदेह नहीं है, जिन्होंने कई भाषाएं सीखी हैं, उन्हें जल्दी से सीखने के तरीके अपनाए हैं: यह वही होगा जो मुझे उम्मीद है कि उत्तर होंगे।

@ मर्क ट्रैप: धन्यवाद, जो मेरे लिए चीजों को स्पष्ट करता है।
डेविड थॉर्नले

जवाबों:


18

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

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

मैं लोगों को सिर्फ यह सोचने के लिए प्रोत्साहित करता हूं कि उन्हें क्या रुचि है, और राइटिंग कोड या फॉर्म बनाने आदि में गोता लगाएँ।

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

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


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

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

2
क्या आप अपने उत्तर में वापस जोड़ सकते हैं? यह कुछ बेहतरीन जानकारी है।

5

यह मेरे लिए काम करता है:

  1. इसके बारे में पढ़ें।
  2. इसका इस्तेमाल करें।
  3. गोटो १।

इसके बारे में पढ़ने के लिए, मैं भाषा के लिए "संदर्भ" लेने की कोशिश करता हूं। जैसे "द सी प्रोग्रामिंग लैंग्वेज"। इसे संघनित करने की आवश्यकता है, इस बिंदु तक, और अपने ज्ञान का वृद्धिशील रूप से निर्माण करना है। फिर मैंने इसे कवर करने के लिए कवर पढ़ा। मैं एक तेज़ पाठक हूँ और मैं इस पहले पाठ में नहीं बसता हूँ। फिर मैं वापस जाऊंगा और विशिष्ट बिंदुओं का संदर्भ लूंगा क्योंकि मैं भाषा का उपयोग करने की कोशिश कर रहा हूं। पुस्तक पर कोड उदाहरणों पर मैं शायद अधिक समय बिताऊंगा।

पहली चीज़ जो आपको चाहिए वह है सिंटैक्स। बगैर यह जाने कि यह BEGIN या {या इंडेंटेशन ब्लॉक करता है, या आप कैसे वेरिएबल घोषित करते हैं, आप कुछ भी नहीं लिख सकते। लेखक आमतौर पर पहले अधिक महत्वपूर्ण भागों को पेश करेगा या एक ट्यूटोरियल होगा जो भाषा के मूल उपयोग को कवर करता है। अधिक सामान्य दिशानिर्देश देना कठिन है क्योंकि कुछ भाषाएँ दूसरों की तुलना में बहुत भिन्न हैं। अगली बात भाषा के लिए एक सामान्य अनुभव हो रही है, समग्र दर्शन क्या है, आप भाषा के संदर्भ में समस्या को हल करने के लिए कैसे दृष्टिकोण करते हैं।

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

तो यह एक पुनरावृत्त प्रक्रिया है। प्रत्येक पुनरावृत्ति पर गहराई से जाना। ख़तम न होनेवाला। 20 साल तक एक भाषा का उपयोग करने के बाद भी कुछ सीखना बाकी है।


क्या आप इसके बारे में अधिक विस्तार से बता सकते हैं कि "इसके बारे में पढ़ने" से आपका क्या मतलब है? क्या, विशेष रूप से, आप उस पर ध्यान केंद्रित करते हैं जब आप एक नई भाषा के बारे में पढ़ना शुरू करते हैं जिसे आप चुनना चाहते हैं?

@ मर्क - मेरे संपादन देखें ... क्या आप यही देख रहे हैं?
गाइ सिरटन

5

एक वास्तविक विश्व परियोजना को पकड़ो

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

मैंने गलती से वहां कुछ एसक्यूएल भी सीख लिया था, फिर मैंने इसे कॉलेज में सीखना शुरू किया, और लगता है कि, मेरे पास एक आसान समय भी था।

यदि आप इसे जोखिम में नहीं डालना चाहते ...

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

संभावना है कि आप कोड का अध्ययन करके प्रगति करेंगे।

सभी संदर्भ प्राप्त करें जो आप कर सकते हैं

इसमें कई किताबें, आधिकारिक दस्तावेज और सभी संदर्भ शामिल हैं जो आपको मिल सकते हैं। चेज़, उस तरह से, आप जानेंगे कि एक ही चीज़ को अलग-अलग तरीके से कैसे किया जाता है।

अन्य समुदाय-जैसे फ़ोरम, मेलिंग सूचियाँ, और यहाँ भी संदर्भ के रूप में गिना जाता है।


मैं "एक कठिन वास्तविक विश्व समस्या को पकड़ूंगा"। कुछ ऐसा चुनें जिससे आपको पहले दिन टीएन पर गर्दन गहरी करने की आवश्यकता हो। C # के साथ मेरा पहला दिन यह पता लगा रहा था कि dlls को गतिशील रूप से कैसे लोड किया जाए, कक्षाओं को प्राप्त करने के लिए प्रतिबिंब का उपयोग करें, और उस से mehods की एक सूची। मैंने एक टन था दिन सीखा, इससे पहले किसी भी .net तकनीक का इस्तेमाल कभी नहीं किया।
ब्रायन ओकली

2

नई भाषा सीखने के बहुत सारे तरीके हैं, लेकिन सभी समान रूप से कुशल नहीं हैं। मैंने पाया कि ये तीन दिशानिर्देश मेरे लिए सबसे अच्छा काम करते हैं:

जो आपको नहीं पता है उसका एक नक्शा बनाएं

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

आपको जो नहीं पता है उसे सीखने में मदद करने के लिए अच्छे संसाधन प्राप्त करें

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

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

कुछ वास्तविक बनाएँ

मन में एक ठोस लक्ष्य के बिना किसी भी प्रकार की वास्तविक शिक्षा करना लगभग असंभव है। यह विशेष रूप से लागू कलाओं का सच है - जो कि प्रोग्रामिंग भाषा का उपयोग है। सुनिश्चित करें कि आपके पास लक्ष्य बनाने के लिए एक वास्तविक लक्ष्य है - कुछ बनाना आमतौर पर सबसे अच्छा विकल्प है।


1

प्रोग्रामिंग प्रतिमान पहचानें

मैं आमतौर पर पहचानता हूं कि भाषा के लिए प्राथमिक प्रतिमान क्या हैं। मैं समस्याओं के प्रतिमान के आधार पर अलग तरह से सोचता हूं।

मुहावरों को पहचानें

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

कोड लिखें

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


1

बस में गोता लगाओ !!

यह देखते हुए कि आप पहले से ही जानते हैं कि प्रोग्राम और कई भाषाओं को कैसे जाना जाता है, सिवाय इसके कि अगर भाषा बहुत गहरे प्रतिमान का परिचय देती है, तो मैं कहूँगा (समवर्ती):

  • आपको ड्राइव करने के लिए एक पालतू प्रोजेक्ट खोजें,
  • और साइड प्रोग्राम पर कुछ गूढ़ व्यक्ति

जानें, अभ्यास करें, लागू करें (संतुष्ट होने तक)

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

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

समुदाय की बात ...

अपने आप को साझा करें और बेनकाब करें। (बहुत अधिक नहीं, हालांकि।)

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


0

मुझे पता है कि यह लंगड़ा लगता है, लेकिन कुछ को कोड करना शुरू करें, भले ही यह मूर्खतापूर्ण हो, और इस पैटर्न का पालन करने वाली चीजों के लिए बहुत सारे Google का उपयोग करें:

मैं कैसे [एक भाषा से कुछ] [दूसरी भाषा में] करूं

यदि शब्द सामान्य रूप से उद्धृत शाब्दिक उपयोग हैं।

यह एक सामान्य पर्याप्त प्रश्न है कि बहुत अधिक बार केवल एक बार मुझे एक उत्तर नहीं मिलता है जब मुझे एक पृष्ठ मिलता है जो बताता है कि यह क्यों नहीं किया जा सकता है।


0

केवल भाषा का उपयोग करने के लिए एक विशिष्ट सुझाव के रूप में:

बग का समाधान करें

  1. लक्षित भाषा में एक दिलचस्प ओपन-सोर्स प्रोजेक्ट ढूंढें, अधिमानतः एक सार्वजनिक बग ट्रैकर, मध्यम रूप से सक्रिय विकास और एक सभ्य सूट सूट के साथ।
  2. ठीक करने के लिए एक बग चुनें, अधिमानतः एक जो आपको गुस्सा दिलाता है जब आप वास्तव में कार्यक्रम का उपयोग करते हैं।
  3. पता लगाएँ कि क्यों कार्यक्रम छोटी गाड़ी के व्यवहार को प्रदर्शित करता है।
  4. समस्या को ठीक करने के लिए परीक्षण और कोड लिखें।
  5. एक पैच अपस्ट्रीम जमा करें।
  6. अपस्ट्रीम डेवलपर्स के खुश होने तक अपने पैच को संशोधित करें।
  7. चरण 1 या 2 पर वापस जाएं।

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

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

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