मैं अपने माता-पिता को कैसे समझा सकता हूं कि मैं प्रोग्रामिंग भाषाओं का अध्ययन करता हूं?


64

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

अब यहाँ वास्तविक प्रश्न है: मैं कैसे समझा सकता हूँ कि मैं (जो चाहते हैं) कंप्यूटर विज्ञान या संबंधित क्षेत्रों में किसी भी पिछले ज्ञान वाले लोगों को क्या करना चाहिए?

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

क्या किसी के पास वास्तविक दुनिया के साथ अच्छी समानताएं हैं? "ए-हा" क्षणों के कारण ज्ञानवर्धक उदाहरण? क्या मुझे वास्तव में 60+ वर्ष पुराने कोड का एक छोटा और सरल स्निपेट दिखाना चाहिए जिसमें कोई कंप्यूटर विज्ञान (न ही अकादमिक) अनुभव न हो? यदि हां, तो मुझे किस भाषा का उपयोग करना चाहिए? क्या यहां किसी को भी ऐसे ही मुद्दों का सामना करना पड़ा?


टिप्पणियाँ विस्तारित चर्चा के लिए नहीं हैं; इस वार्तालाप को बातचीत में स्थानांतरित कर दिया गया है ।
डीडब्ल्यू

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


1
मैं बस यह नहीं समझ सकता कि यह प्रश्न किसी विशिष्ट समस्या से संबंधित प्रश्न की तुलना में अधिक मतदान क्यों है, जो अधिक उपयोगी है। यह सवाल हास्यास्पद है और हास्यास्पद रूप से मतदान हुआ था। अतुल्य!
nbro

2
@nbro मुझे वह नहीं मिलता है जो इस सवाल को लेकर हास्यास्पद है, और मुझे यकीन नहीं है कि आपने कैसे तय किया कि एक विशिष्ट प्रश्न दूसरे की तुलना में "अधिक उपयोगी" है।
effeffe

जवाबों:


59

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

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

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

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

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


27
एल्गोरिदम की धारणा को पेश करने के लिए कार्ड का एक डेक सॉर्ट करना भी एक आसान तरीका है।
मोरवेन

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

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

आप सिर्फ कार्ड से परे जा सकते हैं; मैंने हाल ही में खुद को क्विकॉर्ट के एक वेरिएंट का उपयोग करके पाया था कि मुझे इसके बारे में सोचे बिना भी व्यवस्थित करना था क्योंकि एक बुनियादी सम्मिलन के लिए बहुत सारे थे।
JAB

@JAB यह अद्भुत है! लेकिन आप शायद पहले से ही अपने दिमाग के पीछे क्विकॉर्ट को जानते हैं। इसके अलावा बनाम सॉर्टिंग को समझाने का लाभ यह है कि कभी-कभी किसी के पास एल्गोरिथम के समान होता है, लेकिन किसी भी लेपर्सन के पास कोई व्यवस्थित छँटाई एल्गोरिथम नहीं है। दूसरी ओर, यह एक फायदा हो सकता है! आपको विभिन्न एल्गोरिदम की व्याख्या करने के लिए मिलता है। यह वह मार्ग है जो मैं तब लेता हूं जब मैं किसी गणितीय-दिमाग से सीएस से बाहर बात करता हूं, और यह अलग-अलग समय-सीमा के साथ एक ही कार्य के लिए अलग-अलग एल्गोरिदम की अवधारणा के पार हो जाता है, और क्यों कम सीमा कठिन होती है।
लेउवे विन्खुइजेन

18

मैं कुछ इस तरह की कोशिश करेंगे:

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

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

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

बेशक, चूंकि यह शोध है, मैं केवल इसके एक छोटे से पहलू पर काम करता हूं, एक बार में सब कुछ नहीं, लेकिन यह वह बड़ी तस्वीर है जिसे हम हासिल करने की कोशिश कर रहे हैं।

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

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


12

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

पेरोगीस को पकाने के लिए: एक उबालने के लिए हल्के नमकीन पानी का एक बड़ा बर्तन लाएं। एक बार में एक ही बार में पेरोगीस गिराएं। वे तब किए जाते हैं जब वे शीर्ष पर तैरते हैं। बहुत लंबे समय तक उबाल न लें, या वे नरम हो जाएंगे! एक स्लेटेड चम्मच के साथ निकालें।

ओह। चलिए दादी की सलाह की समीक्षा करें। उन्हें एक बार में एक बार ड्रॉप करें ... इसलिए वे सभी बर्तन में अलग-अलग लंबाई के होते हैं। समझ गया। वे तब किए जाते हैं जब वे शीर्ष पर तैरते हैं । वैसे 'वे' कितने हैं? क्या मैं हर एक को पकड़ता हूँ जैसे वह ऊपर आता है? क्या मैं शीर्ष पर तैरने के लिए 80% की प्रतीक्षा करता हूं और फिर उन सभी को प्राप्त करता हूं? यह पागल गलत है। बहुत लंबे समय तक उबाल न लें, या वे नरम हो जाएंगे! मैं कैसे मापता हूं जब वे सॉगी होने वाले होते हैं इसलिए वे बहुत लंबे समय तक नहीं होते हैं? यदि पाँच एक ही समय में शीर्ष पर जाते हैं, तो क्या मेरे पास उन सभी को प्राप्त करने का समय होगा?

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

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

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


7

यहाँ है कि मैं अपनी माँ को यह कैसे समझाऊं (कोशिश):

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

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

ऐसा प्रतीत हो सकता है कि एक एकल प्रोग्रामिंग भाषा हो सकती है जिसे प्रोग्रामर सभी कार्यक्रमों को लिखने के लिए उपयोग कर सकते हैं। लेकिन यह सिर्फ मामला नहीं है। सभी विभिन्न प्रकार के अनुप्रयोगों के लिए विभिन्न प्रोग्रामिंग भाषाएं मौजूद हैं।

कुछ का उपयोग वेबसाइटों के निर्माण के लिए किया जाता है, अन्य में लैपटॉप अनुप्रयोगों (जैसे माइक्रोसॉफ्ट वर्ड) के निर्माण के लिए किया जाता है।

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

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

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

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


7

आपकी सबसे अच्छी शर्त मानव भाषाओं के साथ सादृश्य बनाना हो सकता है।

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

मानव भाषाओं की एक विस्तृत विविधता है, कुछ ऐसी विशेषताओं के साथ जिन्हें हम विदेशी मानते हैं। उदाहरण के लिए:

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

क्या कोई सबसे अच्छी भाषा है, उद्देश्यपूर्ण बोलना है? उत्तर इस बात पर निर्भर हो सकता है कि आप क्या करने की कोशिश कर रहे हैं।

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

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

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


1
इसके साथ एक कठिनाई यह है कि कुछ लोगों ने वास्तव में अपनी स्वयं की प्राकृतिक भाषा के बारे में कभी भी प्रतिबिंबित नहीं किया है। तो भाषा के उदाहरण लगभग कुछ लोगों के लिए समझने में कठिन हो सकते हैं, जैसे कि प्रोग्रामिंग भाषा की धारणा। यदि आप जानते हैं कि व्यक्ति (कम से कम) द्विभाषी है, तो संभावनाएं बेहतर हैं ....
टेक्स्टगेक

@TextGeek अंग्रेजी के भीतर भी बोलियाँ हैं। लोग दोहरे नियमों जैसे भाषा नियमों के बारे में तर्क देते हैं और एक पूर्वसर्ग के साथ वाक्य समाप्त करते हैं। भाषा हर समय, कभी-कभी विवादास्पद तरीकों से विकसित होती है। टेक्स्टिंग की लोकप्रियता के कारण नए संक्षिप्ताक्षर बन गए हैं। अमेरिकी अंग्रेजी में, आप "गगेट" प्रत्यय जोड़कर किसी भी संज्ञा को घोटाले में बदल सकते हैं। मुझे नहीं लगता कि भाषा नवाचार और विविधता की सराहना करने के लिए आपको द्विभाषी होना चाहिए।
२००_सफल

3
  • कंप्यूटर भाषाएँ कुछ हद तक मानव भाषाओं से संबंधित हैं। वे मानक / आम / साझा शब्दों का उपयोग करते हैं। इस बात पर विचार करें कि हजारों मानव भाषाएं हैं, कुछ दोषपूर्ण, अन्य सक्रिय और उनकी शब्दावली और उपयोग लगातार समय के साथ विकसित हो रहे हैं। कुछ लोग अवधारणाओं को व्यक्त करने के लिए नए उपयोगी शब्द बनाते हैं जो पहले व्यक्त नहीं थे। कंप्यूटर भाषा और मानव भाषा का एक और अतिव्यापी पहलू व्याकरण है । कुछ भाषाओं जैसे अंग्रेजी में बहुत जटिल व्याकरण है। सभी अलग-अलग कालखंडों और उन्हें संचालित करने वाले जटिल नियमों पर विचार करें। अन्य भाषाओं में समान काल नहीं हैं । एक और सहसंबंध भाषण के कुछ हिस्सों के साथ हैश्रेणियां जैसे संज्ञा, क्रिया, क्रिया, विशेषण आदि, ये फ़ंक्शन कुछ हद तक कंप्यूटर भाषाओं के प्रकारों की तरह हैं। भाषण श्रेणियों के विभिन्न भागों के साथ नई भाषाओं का निर्माण करने की कल्पना करें जिन्हें पहले नहीं माना गया है, या भाषण के कुछ हिस्सों के नए संयोजन के साथ जो विभिन्न भाषाओं से आते हैं, आदि; इसलिए ध्यान दें कि भाषाविज्ञान का कंप्यूटर विज्ञान से एक संबंध है, जैसे चोमस्कियन भाषा सिद्धांत में esp।

  • सॉफ्टवेयर और हार्डवेयर अक्सर इंजन और मशीनों से संबंधित होते हैं और यहां तक ​​कि इसके नाम पर भी। एक पुराना सॉफ़्टवेयर सादृश्य है जो 24/7 एक जटिल उत्पादन प्रणाली को संशोधित करने की कोशिश कर रहा है, जैसे कि यह उड़ान में होने पर विमान के इंजन को बदलना है । यह भी ध्यान दें कि जेट इंजन अत्यधिक जटिल हैं और इसमें विनिमेय भागों के बड़े पैमाने पर सटीक विनिर्देश शामिल हैंऔर यहाँ कंप्यूटर भाषाओं की कुछ सादृश्यता है जो हार्डवेयर को नियंत्रित करती है। उन सभी दस्तावेजों की जटिलता की कल्पना करें जो कि जेट इंजनों का निर्माण करने के तरीके का सटीक वर्णन करते हैं: सभी भागों, उनका निर्माण कैसे किया जाता है, वे कैसे एक साथ फिट होते हैं, कैसे उन्हें इकट्ठा किया जाता है आदि; वे एक सटीक प्रारूप / संरचना / पारंपरिक नियमों का उपयोग करके इंजीनियरों द्वारा बनाए / संकलित किए जाते हैं; सॉफ्टवेयर कुछ हद तक इसके अनुरूप है।

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

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


1
यह एक नीचे क्यों? मुझे लगता है कि कई अंतर्दृष्टि हैं। सभी बिंदुओं पर एक सहमत नहीं हो सकता है, लेकिन यहां बहुत संभावनाएं हैं। +1
पुतली

3

आप बस कहते हैं "मैं उन लोगों की मदद कर रहा हूं जो कंप्यूटर को काम करना सिखाते हैं"

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


"मुझे लगता है कि यह मानकर काम करेगा कि वे पहले से ही कंप्यूटर के बारे में थोड़ा सा जानते हैं" यह पूरी बात है: यदि आप ध्यान से मेरे उत्तर को पढ़ते हैं, तो आप देखेंगे कि मुख्य समस्या यह बता रही है कि मैं उन लोगों का क्या करूं, जिनके पास वास्तव में काम नहीं करने का कोई सुराग नहीं है ।
15

@effeffe: लेकिन वे जानते हैं कि कंप्यूटर मौजूद हैं? और उनके पास कुछ विचार है कि "प्रोग्राम", "एप्लिकेशन", या "एप्लिकेशन" नामक चीजें हैं, भले ही उन्होंने कभी जानबूझकर खुद को कंप्यूटर का उपयोग नहीं किया हो। तो सरलता के लिए, प्रोग्रामिंग (अन्य बातों के अलावा) एक निर्देश बनाकर एक ऐप है, जिसे कंप्यूटर अनुसरण कर सकता है। स्वाभाविक रूप से उन्हें प्रोग्रामिंग के किसी भी विस्तार की सराहना करने के लिए या इसे बेहतर कैसे बनाया जा सकता है, इसके लिए बहुत समय और निर्देश लगेगा , लेकिन अगर वे जानते हैं कि कंप्यूटर और कार्यक्रम समय के साथ बेहतर हो जाते हैं, तो वे कम से कम कंप्यूटर के बारे में "थोड़ा" जानते हैं।
स्टीव जेसोप

3

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

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


3

यहाँ दो उपमाएँ हैं जो आपको उपयोगी लग सकती हैं:

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

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


2

खैर, सबसे अधिक संभावना है, आपके पास भाषाओं का अध्ययन करने के लिए कुछ कारण हैं - उस कारण का उपयोग करें। उदाहरण के लिए:

मैं कंप्यूटर और उनके अनुप्रयोगों को सस्ता, उपयोग करने में आसान और सुरक्षित बनाने की कोशिश कर रहा हूं।

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

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

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

आप जानते हैं कि आप शून्य से कैसे विभाजित नहीं कर सकते हैं? मैं यह सुनिश्चित करने की कोशिश कर रहा हूं कि कंप्यूटर कभी भी शून्य से विभाजित करने की कोशिशकरें , इसलिए जब कोई गलती करता है तो वे दुर्घटना नहीं करते हैं।


चरणबद्ध और सौम्य दृष्टिकोण के सुझाव के लिए a
PJTraill

1

मुझे लगता है कि सबसे अच्छी उपमाएं उस व्यक्ति के अनुरूप हैं, जिससे आप बात कर रहे हैं। क्या वे चित्रकार हैं? चर्चा करें कि आप जो कर रहे हैं वह कैसे बेहतर ब्रश बनाने के सिद्धांत की खोज करने के बराबर है, केवल यह क्षेत्र 600 के बजाय केवल 60 साल पुराना है! Equestrians? इसकी तुलना वर्षों में कार्य विशिष्ट घोड़े-जूते के विकास से करें।

यदि वे वास्तव में बेहतर समझना चाहते हैं, तो यह समझाने के लिए मेरा पसंदीदा तरीका टैक्स फॉर्म भरने के बारे में बात करना है, और प्रत्येक पंक्ति पर निर्देश हैं। मुझे लगता है कि 20 से अधिक लोगों को आईआरएस फॉर्म 1040 के साथ कुछ अनुभव है, और उन पेटियों को आप बहुत अच्छी तरह से भरते हैं जो चर के असाइनमेंट के बारे में बात करते हैं। तब मैं इंगित करता हूं कि सॉफ्टवेयर इनमें से लगभग 2 बिलियन मिनट (एक बना हुआ नंबर, लेकिन यह बिंदु भर में मिलता है) के बराबर करता है। यदि आप कंप्यूटर भाषाओं का अध्ययन कर रहे हैं, तो लोगों को समझाना आसान है कि बेहतर निर्देश वास्तव में क्यों =)

यदि वे अभी भी रुचि रखते हैं, तो यह उस बिंदु के बारे में है जहां मैं प्रवाह नियंत्रण को समझाने की कोशिश करना शुरू करता हूं। आमतौर पर, जब तक मैं फॉर्म 1040 पर प्रवाह नियंत्रण पर चर्चा करना समाप्त करता हूं, तब तक वे सभी उत्साहित होने लगते हैं और पूछना शुरू कर देते हैं कि क्या मैंने अपने किसी भी विचार को अभी तक सरकार को बेच दिया है!

मैं अक्सर एम्बेडेड सिस्टम के बारे में बात करता हूं, इसलिए कभी-कभी मैं फॉर्म 1040 सादृश्य को रोबोट के साथ पाव रोटी (या 500) पकाने के लिए मिला दूंगा। आमतौर पर यह अच्छी तरह से काम करता है, हालांकि किसी कारण से आईआरएस कर रूपों से कुछ बनाने के लिए जो आपके मुंह में एक अच्छा स्वाद छोड़ता है, कुछ लोगों के लिए वास्तव में कठिन खिंचाव है।


1

आपके माता-पिता के पास किसी तरह का कंप्यूटर है। शायद एक नहीं, बल्कि कई। उनके पास एक डेस्कटॉप कंप्यूटर या एक लैपटॉप, या एक फोन या एक iPad हो सकता है। यदि नहीं, तो उनके पास वॉशिंग मशीन या वीडियो रिकॉर्ड या डीवीडी प्लेयर या अंदर कंप्यूटर के साथ कुछ है।

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

यदि उनके पास किसी प्रकार का कंप्यूटर है, तो आप कहते हैं: "यह एक कंप्यूटर है, और यह सिर्फ जादू से काम नहीं करता है। यह काम करता है क्योंकि कुछ चतुर पुरुष या महिला ने एक प्रोग्राम लिखा है जो आपके कंप्यूटर को बताता है कि कैसे काम करना है। और नौकरी। ये चतुर पुरुष और महिलाएं वास्तव में कठिन हैं, और जो मैं कर रहा हूं वह उन्हें काम को आसान बनाने में मदद कर रहा है ”।


-1

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

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

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


पूछने वाला प्रोग्रामिंग का अध्ययन नहीं कर रहा है। वे प्रोग्रामिंग भाषाओं के डिजाइन का अध्ययन कर रहे हैं।
डेविड रिचेर्बी

@DavidRicherby यही कारण है कि मैंने ओपी के उदाहरण का उपयोग करने का सुझाव दिया है कि कैसे व्यंजनों विभिन्न प्रकार के कामों के लिए दिखते हैं । जाहिरा तौर पर ये बहुत अलग हैं।
थोरबजोरन राव एंडरसन

-1

यह जादू है!

जब कोई भी तकनीकी पृष्ठभूमि वाले लोग नहीं पूछते हैं कि सॉफ़्टवेयर / प्रोग्राम लिखने / सॉफ़्टवेयर इंजीनियरिंग करने का क्या मतलब है, तो मैं उन्हें बताता हूं कि यह वास्तव में क्या है: जादू। जादूगर कुछ कार्यों को करने के लिए एक गूढ़ भाषा में मंत्र उकसाते हैं, वे अपने वैंड को तरंगित करते हैं, और कुछ जादुई होता है। मैं एक गूढ़ भाषा में कुछ मंत्र उकसाता हूं, मैं अपने माउस को हिलाता हूं, और कुछ जादुई होता है (जहां तक ​​वे चिंतित हैं)।

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

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

असफल महाकाव्य

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

अंतिम छोर

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


1
मैं यह नहीं देखता कि इस सवाल का क्या करना है। विशेष रूप से, सवाल यह है कि laypeople के प्रकार सिद्धांत की व्याख्या करने के पूछ रहा है, और प्रकार सिद्धांत है गणित।
डेविड रिचेर्बी

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