क्या आप अन्य भाषा प्रतिमानों को सीखकर अपने प्रोग्रामिंग कौशल में सुधार कर सकते हैं?


9

यदि हां, तो क्या आप मुझे बता सकते हैं कि एक नया प्रतिमान सीखने से प्रोग्रामिंग समस्याओं को हल करने के लिए आपके दृष्टिकोण में बदलाव आया है, भले ही समस्या किसी अन्य प्रतिमान / भाषा / तकनीक में हो?

मैं वास्तव में सराहना करूंगा यदि आप मुझे एक विशिष्ट तरीके से बता सकते हैं, तो आपके एक्स (यानी: जेएवीए / सी # / सी ++) प्रोग्रामिंग कौशल ने वाई (यानी: योजना / प्रोलॉग / लिस्प) सीखकर कैसे सुधार किया।

इसके अलावा, आप जो प्रतिमान सुझाते हैं, वह एक अच्छा प्रोग्रामर बनने में सबसे अधिक मदद करता है।

मेरे अनुभव केवल संरचित हैं - OOP, अनिवार्य - प्रक्रियात्मक, और कुछ हद तक टेम्पलेट मेटा-प्रोग्रामिंग में, लेकिन मेरा लक्ष्य किसी अन्य भाषा को सीखना नहीं है, बल्कि समस्याओं को हल करने के लिए विभिन्न तरीकों को सीखना है।

धन्यवाद!


1
मेरा मानना ​​है कि इस के उत्तर एक शानदार हां के रूप में होंगे
R0MANARMY

जवाबों:


7

मैं हर साल कम से कम 1-2 नई भाषाएँ सीखने की कोशिश करता हूँ। सबसे अधिक जो मैंने प्राप्त किया वह एक कार्यात्मक भाषा (एफ #) सीखने से था जिसने समस्याओं को हल करने के तरीके को बदल दिया - I = अब मैं मशीन को यह बताने की कोशिश करता हूं कि इसे कैसे करना है, विशेषकर C # में जहां मैं लाइनक का अत्यधिक उपयोग करता हूं और अपरिवर्तनीय वस्तुएं जो अब मुझे उनके उपयोग के लाभों के बारे में पता हैं। मैं उच्च ऑर्डर फ़ंक्शंस का भी बहुत उपयोग करता हूं (मापदंडों के रूप में विधियां) मेरी कोडिंग शैली बदल गई है (सुधार) परिणामस्वरूप।


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

धन्यवाद, आपने पुन: पुष्टि की कि मुझे क्या संदेह था ... धन्यवाद फिर से!
आर्मंडो

2

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

कम से कम एक नई भाषा की मूल बातें सीखने के लिए समय की बर्बादी कभी नहीं।


1

ठीक है, यहाँ एक उदाहरण मैंने देखा है।

मैंने कुछ पुराने कोड पर एक परियोजना के लिए एक अपेक्षाकृत पुरानी भाषा (VB6) सीखी है।
भाषा बहुत विंडोज़-उन्मुख है, लेकिन हमारे पास .Net फ्रेमवर्क में उच्च-स्तरीय शक्तिशाली कक्षाएं नहीं हैं।

मुझे कुछ चित्र जोड़तोड़ करने थे, और जिसने मुझे चित्र जोड़तोड़ के लिए विंडोज़ एपीआई कार्यों से परिचित कराया।

जब मैंने यह जान लिया कि इसने मुझे .Net की GDI क्लासेस की बेहतर समझ दी है। और यह समझ कि कभी-कभी विंडोज़ एपीआई का उपयोग करना अधिक तेज़ होगा (कम फ़ंक्शन रैपिंग)।

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


1

क्या आप अन्य भाषा प्रतिमानों को सीखकर अपने प्रोग्रामिंग कौशल में सुधार कर सकते हैं?

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

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

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

हास्केल (फिर से बहुत सफलतापूर्वक नहीं) सीखने की कोशिश ने वास्तव में समस्याओं पर हमला करने के अन्य तरीकों की ओर मेरी आँखें खोल दी हैं। (मेरे दिमाग में) का कार्यात्मक प्रोग्रामिंग प्रकार लेखन कोड के साथ शुरू होता है जो कहता है कि आप क्या परिणाम चाहते हैं, न कि लेखन को वहां पहुंचने में शामिल कदम। मुझे लगता है कि यह वास्तव में बेहतर SQL कोड लिखने में मेरी मदद करता है।

हाल ही में, मैंने जावास्क्रिप्ट की थोड़ी कोशिश की। और एक ऐसा वातावरण मिला जिसे सिर हिलाया जाता था। एक छोटा होम ऑटोमेशन सर्वर बनाने के लिए किसी कोड की आवश्यकता नहीं है।

इसे परिप्रेक्ष्य में रखने के लिए, विभिन्न भाषाओं में मेरे अधिकांश डबलिंग एक उथले लेवे पर थे (ज्यादातर) लोग इस बारे में महसूस करने के लिए कि लोग किस बारे में बात कर रहे हैं। ऐसी बहुत कम भाषाएँ हैं जिन्हें मैं वास्तव में उत्पादक बना सकता हूँ।


0

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

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

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