क्या मुझे एक प्रोग्रामिंग भाषा के आंतरिक को समझने की आवश्यकता है?


11

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

तो मेरा सवाल है: इस भाषा में पारंगत या धाराप्रवाह होने के लिए किसी प्रोग्रामिंग लैंग्वेज में कितनी गहराई तक गोता लगाना पड़ता है। मैं इस प्रश्न की तुलना "प्राकृतिक" भाषाओं से करता हूँ। मैं अपनी मातृ भाषा में व्याकरण के प्रत्येक विवरण को नहीं जानता, लेकिन मैं स्वयं को उस भाषा में कोई समस्या नहीं व्यक्त करने में सक्षम हूं। यह तब है जब मैं कहता हूं कि मैं एक भाषा में धाराप्रवाह हूं। क्या यह प्रोग्रामिंग भाषाओं पर भी लागू होता है?


4
जब आप प्रदर्शन के बारे में चिंता करते हैं तो इंटर्न महत्वपूर्ण हो जाते हैं।
रोबोट

7
मैं अपने अजगर प्रोग्रामिंग के लिए CPython और PyPy इंटर्नल के बारे में बहुत कुछ जानता हूं, लेकिन 80% समय वे किसी काम का नहीं है (या हानिकारक भी, विचलित करने वाला)। मुझे खुशी है कि मुझे पता है कि अन्य 20% सामान है, और यह केवल प्रदर्शन के लिए नहीं है, बेवकूफ त्रुटि संदेशों को समझने और गैर-पोर्टेबल व्यवहार को स्पष्ट करने के लिए भी।


2
नप और नप। निश्चित रूप से उन दोनों में से एक भी नकल नहीं है।

1
यह निर्भर करता है कि आप "इंटर्नल्स" से क्या मतलब है, लेकिन मुझे पता है कि यह पेशेवर सी # और जावा प्रोग्रामर के लिए बिल्कुल भी असामान्य नहीं है, जिसमें सीएलआई या जेवीएम की कम से कम कुछ समझ हो।
user16764

जवाबों:


8

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

  1. डेटा संरचनाओं और एल्गोरिदम का ज्ञान आपको डेटा संरचनाओं को चुनने में मदद करेगा जो आपके विशेष कार्य के लिए सबसे उपयुक्त हैं। कुछ भाषाओं में आंतरिक रूप से ये डेटा संरचनाएं होती हैं।

  2. भाषा की "संस्कृति" को समझने से आपको उन कार्यक्रमों को लिखने में मदद मिलती है जो "सर्वोत्तम प्रथाओं" का पालन करते हैं, जिससे उन्हें समझने में आसान, अधिक बनाए रखने और बेहतर प्रदर्शन करने में मदद मिलती है।

  3. उस भाषा के लिए एक कंपाइलर (या उस भाषा में किसी अन्य भाषा के लिए एक कंपाइलर) लिखना आपको भाषा की गहरी समझ दे सकता है, और आपके कार्यक्रमों को केवल औसत से परे सुधार सकता है।

  4. अन्य भाषाओं (विशेष रूप से एक अलग प्रतिमान) में कुशल होने के नाते आप अपनी प्राथमिक भाषा में एक बेहतर प्रोग्रामर बनते हैं, क्योंकि आप उन कौशलों और उपकरणों को अपनी प्राथमिक भाषा में सहन कर सकते हैं।

एक कोरोलरी के रूप में, आपको उस पर प्रोग्राम लिखने के लिए अपने कंप्यूटर के बारे में कुछ भी जानने की आवश्यकता नहीं है। लेकिन यह जानना कि आपका कंप्यूटर कैसे काम करता है, आपको इसके लिए प्रोग्राम लिखने में बेहतर बनाता है।


7

मैं अपनी मातृ भाषा में व्याकरण के प्रत्येक विवरण को नहीं जानता, लेकिन मैं स्वयं को उस भाषा में कोई समस्या नहीं व्यक्त करने में सक्षम हूं। यह तब है जब मैं कहता हूं कि मैं एक भाषा में धाराप्रवाह हूं। क्या यह प्रोग्रामिंग भाषाओं पर भी लागू होता है?

सीधे शब्दों में कहें, हाँ। जब तक आप अपने आप को व्यक्त कर सकते हैं (और दूसरों को अच्छी तरह से समझ सकते हैं), तब तक आपको भाषा में धाराप्रवाह माना जाता है।

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


0

मैं "कुशल" को एक भाषा के रूप में परिभाषित करूंगा:

  • सिंटैक्स के अधिकांश हिस्से को समझें, और अन्य लोगों के कोड में आपको मिलने वाली किसी भी नई सुविधाओं पर शोध करने के लिए पर्याप्त ज्ञान।
  • किसी भी मानक पुस्तकालयों और / या चौखटे, और खोजने, पढ़ने और समझने की क्षमता जो आपको कुछ भी नया उपयोग करने की आवश्यकता है, पर आधिकारिक प्रलेखन का ज्ञान।
  • भाषा के लिए सामान्य मुहावरों और नामकरण सम्मेलनों का उपयोग करने की क्षमता और समझ।

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

उदाहरण के लिए: मुझे पता है कि VB.NET और C # दोनों को .NET के IL (इंटरमीडिएट लैंग्वेज) में संकलित किया गया है, जिसे बाद में लक्ष्य ढांचे के लिए संकलित किया गया है। मैं IL के बारे में ज्यादा नहीं जानता, लेकिन जब मैं इसे देखता हूं, तो इसे पहचानने के लिए काफी कुछ जानता हूं, और एक सामान्य अर्थ में समझता हूं कि यह कुछ चीजों को कैसे संभालता है। मैं खुद को C # में पारंगत मानता हूं, लेकिन VB.NET में नहीं, भले ही "इंटर्नल" एक ही हैं, और उनमें से मेरी समझ गहरी नहीं है।

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