एक गणितज्ञ के लिए प्रोग्रामिंग का परिचय [बंद]


30

मैं वर्तमान में एक प्रोग्रामर हूं, मेरी उम्र लगभग 16 साल है और मैंने अपने करियर को बहुत कम कर दिया है, जिसमें कंप्यूटर साइंस की डिग्री या इलेक्ट्रिकल इंजीनियरिंग की डिग्री शामिल है (मुझे पता है कि वे काफी अलग हैं लेकिन यह सवाल मेरे दोस्त के बारे में है) दोस्त तो पक्का नहीं है

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

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

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


17
आप अपने दोस्त को एक ऐसी दिशा में क्यों धकेलना चाहते हैं जिसमें वह दिलचस्पी नहीं रखता है?
HLGEM

3
रिकॉर्ड के लिए, मैंने बहुत सारे प्रोग्रामर के साथ काम किया है जिनके पास गणित की डिग्री है। उसके ऊपर, वे काफी अच्छे हैं।
एंग्रीबर्ड

1
मैं @HLGEM से सहमत हूं। अगर कोई मुझे शुद्ध, सैद्धांतिक गणित की ओर धकेलता है तो मुझे इससे नफरत होगी। इसी तरह, जो लोग उस सामान को पसंद करेंगे, अगर वे उबाऊ लगाए गए सामान की ओर धकेल दिए जाते हैं, तो वे इससे नफरत करेंगे।
अय्यूब

4
चीजों पर कुछ परिप्रेक्ष्य रखने के लिए - आप 16 हैं। आप एक प्रोग्रामर नहीं हैं, आप एक छात्र हैं, जिन्होंने कुछ प्रोग्रामिंग की है। आपका मित्र गणितज्ञ नहीं है, वह एक छात्र है जिसे गणित पसंद है (और कुछ सीखा है)। जबकि मुझे @ perl.j से जवाब पसंद है, मुझे लगता है कि आप इस पर अति-पहुंच हो सकते हैं।
जोएल एथरटन

2
@ perl.j: जब तक किसी के पास अपेक्षित "अध्ययन का प्राथमिक क्षेत्र" दिखाने के लिए आवश्यक डिग्री नहीं है, सबूत के तौर पर वह गणितज्ञ नहीं है। यहां तक ​​कि विश्वविद्यालय में कोई भी जिसका प्रमुख गणित है, वह अभी तक गणितज्ञ नहीं है।
जोएल एथर्टन

जवाबों:


60

मठ का लोगो

यदि आप "गणित जैसी" भाषा चाहते हैं, तो हास्केल आपका सबसे अच्छा दोस्त है (आपके सबसे अच्छे दोस्त के लिए)। आप बिना किसी परेशानी के आसानी से नए कार्य कर सकते हैं। यह सबसे अच्छी भाषा की सिफारिश है जो मैं आपको दोस्त के लिए दे सकता हूं। यहाँ कुछ लिंक दिए गए हैं:

मेथेमेटिका

वुल्फ्राम की मैथमेटिका एक और रुचि है जो उसके पास हो सकती है।

Mathematica is a computational software program used in scientific, engineering, and mathematical fields and other areas of technical computing. It was conceived by Stephen Wolfram and is developed by Wolfram Research of Champaign, Illinois.

हालांकि यह महंगा है, यह इसके लायक है। यहाँ कुछ लिंक दिए गए हैं:

एल्गोरिदम

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

उम्मीद है की यह मदद करेगा! यदि आपके पास कोई प्रश्न या प्रतिक्रिया है तो टिप्पणी करने के लिए स्वतंत्र महसूस करें! वैसे, ये सभी लिंक मुफ्त संसाधनों के लिए हैं। यदि आप एक मुद्रित पुस्तक चाहते हैं, तो मेरे पास कुछ सिफारिशें हैं, बस एक टिप्पणी छोड़ दो!



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

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

4
@ एसके-तर्क आप यह भी कैसे कह सकते हैं? गणित सभी नए तार्किक प्रणालियों को सीखने और उनके बारे में तर्क देने के बारे में है (मत भूलिए कि गणितज्ञों ने ट्यूरिंग मशीन का आविष्कार किया था )। आप ईमानदारी से सोचते हैं कि जो गणित को संभाल सकता है वह चर परिवर्तन के विचार को नहीं संभाल सकता है? और मेरा कहना है, हास्केल में परिवर्तनीय म्यूटेशन के रूप में कुछ सरल करने के लिए एक स्टोर मोनड की आवश्यकता है! यह कहना कि आसान से ज्यादा x = x + 1आकर्षक है।
जेरेमीकुन

2
@ बीन, जो वास्तव में एक असाइनमेंट स्टेटमेंट की मेरी पहली प्रतिक्रिया थी (और मुझे गणित से वापस आदिम रैखिक समीकरणों के अलावा कुछ भी नहीं पता था)। तब से मैंने एक ही प्रतिक्रिया को बार-बार देखा। मैंने जानबूझकर कार्यात्मक प्रोग्रामिंग अवधारणाओं को पेश करने की कोशिश की, जो पिछले प्रोग्रामिंग अनुभव के साथ नहीं थे, धीरे-धीरे अनिवार्य सामान पर जा रहे थे। यह हमेशा पहले आसान था, और यह सब "डब्ल्यूटीएफ?" हमेशा अनिवार्य और OOP अवधारणाओं की शुरूआत के साथ ही दिखता है।
एसके-लॉजिक

18

एमएल परिवार या हास्केल में कार्यात्मक प्रोग्रामिंग और भाषाएं गणितज्ञों के दिमाग में काफी हद तक फिट होती हैं।


सच सच! अनंत सूचियाँ और वे सभी जो गणित के दिमागों के लिए महान हैं।

14

यदि वह गणित में बड़ी है, तो उसे कोई संदेह नहीं है कि वह प्रोग्रामिंग का एक सा हिस्सा कर रहा है, यदि C ++ जैसी निम्न स्तरीय भाषाओं में नहीं है, तो उच्च स्तर पर, गणित विशिष्ट, मेपल या गणितज्ञ जैसी भाषाओं पर निर्भर करता है कि वह क्या कर रहा है।

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


1
आप ऋषि ( sagemath.org ) के साथ उनके दिमाग में अजगर को घुसाने की कोशिश कर सकते हैं ।
एंटोन बार्कोवस्की

यहाँ एक और उच्च-स्तरीय, गणित-विशिष्ट भाषा है: math.uiuc.edu/Macaulay2
RyanTM

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

12

उसे हास्केल सिखाओ। यह एक ऐसी भाषा है जहाँ आप गणित में जैसा सोच सकते हैं:

  • एक फ़ंक्शन कुछ ऐसा है जो आउटपुट में इनपुट को मैप करता है
  • आवश्यकतानुसार स्टफ का मूल्यांकन किया जाता है
  • प्रकार का अनुमान और एक पागल प्रकार प्रणाली
  • सुविधाजनक वाक्य रचना
  • महान समुदाय (उदाहरण के लिए StackOverflow )
  • monads

मैं आपको उन्हें Hlell के लिए सबसे अच्छे ट्यूटोरियल में से एक http://learnyouahaskell.com दिखाने का सुझाव दूंगा।


11

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

आप दोनों को प्रोजेक्ट यूलर को देखना चाहिए । यह क्या है?

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

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

जिस भाषा का उपयोग करना है, उसके लिए मेरे पास C ++, R, Matlab और Mathematica के साथ अनुभव है जो गणित समुदाय के भीतर सभी महान और व्यापक रूप से उपयोग किए जाते हैं। लेकिन अधिक विशेष रूप से, मैं दृढ़ता से पायथन सीखने का सुझाव देता हूं जो गणित के लिए बहुत उपयोगी है, लेकिन गणित में कुछ अन्य के रूप में प्रतिबंधित नहीं है (यदि वह जीवन में बाद में अधिक विकल्प चाहता है)। पायथन के साथ शुरुआत करना आसान है लेकिन सीखने के लिए बहुत सारी चीजें हैं। यह दूसरों के विपरीत भी मुफ़्त है। C ++ एक अच्छा विकल्प हो सकता है लेकिन शुरुआत से ही अधिक बाधाएं हो सकती हैं।


प्रोजेक्ट यूलर के लिए +2, मुख्य प्रश्न पर एक टिप्पणी के रूप में जोड़ने जा रहा था जब तक कि मैंने आपका जवाब नहीं देखा। ओपी और उसके दोस्त को निश्चित रूप से एक साथ इसमें शामिल होना चाहिए।
cobaltduck

10
  • गणितज्ञों के लिए, सबसे बड़ी बारी एल्गोरिदम है। आपके मित्र को उन्हें पायथन (इसके अनुकूल) में लागू करना शुरू करना चाहिए।

  • MATLAB जैसे संख्यात्मक कंप्यूटिंग वातावरण मैट्रिक्स जोड़तोड़, कार्यों की प्लॉटिंग और डेटा, एल्गोरिदम के कार्यान्वयन के लिए उपयोगी होंगे।


10

यह गणित के क्षेत्र पर निर्भर करता है जिसमें वह रुचि रखता है।

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

मैं आपको एक इंट्रो ट्यूटोरियल और एल्गोरिदम के लिए विशुद्ध रूप से कार्यात्मक डेटा संरचनाओं के लिए एक बढ़िया के लिए हास्केल सीखने की सलाह दूंगा।

यदि वह मैट्रिक्स एनालिसिस, डिफरेंशियल इक्वेशन या डायनामिकल सिस्टम में अधिक है, तो मैं मैटलैब , न्यूमपी या ऑक्टेव की सिफारिश करूंगा । APL के माध्यम से Dyalog भी ब्याज की हो सकती है; हालाँकि मैं उस पर उसे शुरू नहीं करूँगा। संख्यात्मक व्यंजनों , जबकि C ++ में एल्गोरिदम के लिए एक अच्छे मार्गदर्शक के रूप में सेवा करने के लिए अनुकूलित किया जा सकता है।

यदि वह सांख्यिकी करना चाहता है तो R प्राकृतिक विकल्प है।


5

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

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

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

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

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

लेकिन जैसा मैंने कहा, सही परियोजना के साथ भाषा सीखना एक खुशी बन जाता है, जो भी परियोजना हो सकती है।


3

यदि आपका मित्र औपचारिक तर्क प्राप्त करता है, और आर्टिफिशियल इंटेलिजेंस को दिलचस्प पाता है, तो वह प्रोलॉग पर एक नज़र डालना पसंद कर सकता है ।

इस भाषा के साथ, आप अपनी भविष्यवाणी (प्रारंभिक मान्यताओं, "तथ्यों") और अनुमान के नियमों ("संबंध") को बताते हैं, और फिर प्रश्न पूछते हैं।

प्रोलॉग तब बंद हो जाता है और यह पता लगाता है कि क्या केवल दिए गए तथ्यों और संबंधों का उपयोग करके प्रश्न का उत्तर दिया जा सकता है, और यदि हां, तो आपको उत्तर बताता है।

तो आप इसे बताएं कि "टॉम एक बिल्ली है" और "सभी बिल्लियाँ जानवर हैं" और पूछें "क्या टॉम एक जानवर है?" और आपको जवाब "सच" मिलेगा।

या आप इसे "उन सभी जानवरों को सूचीबद्ध करने के लिए कह सकते हैं जिनके बारे में आप जानते हैं" और आपको एकल आइटम सूची "टॉम" मिल जाएगी।

बेशक वाक्यविन्यास उससे थोड़ा अधिक जटिल है, लेकिन आपको सामान्य विचार मिलता है।


प्रोलोग निराशात्मक रूप से पहले-क्रम के तर्क के करीब है, लेकिन वास्तव में असंगत है, क्योंकि इसमें "अप्रमाणित" और "झूठे" को भेद करने का कोई तरीका नहीं है। यह कुछ मायनों में एक साफ-सुथरी भाषा है, लेकिन मैं इसे किसी गणितज्ञ पर नहीं डालूंगा और इसे प्रोग्रामिंग लॉजिक कहूंगा।
डेविड थॉर्नले

क्या आप केवल नकार का परीक्षण नहीं कर सकते हैं?
बिल माइकेल

2

अपने मित्र को यह प्रयास करने के लिए प्रोत्साहित करने का सबसे अच्छा तरीका यह हो सकता है कि वह प्रोग्रामिंग के बारे में बहुत अधिक सोचने के बिना प्रोग्रामिंग शुरू कर दे।

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

SITP एमआईटी प्रेस वेब साइट पर स्वतंत्र रूप से देखा जा सकता है ।

यदि आपका मित्र गणितीय रूप से झुका हुआ है, तो लिस्प कोई कठिनाई पेश नहीं करेगा, और यह आपको किसी विशेष वाक्यविन्यास को सीखने से मुक्त करता है। मुझे लगता है कि Lisp हास्केल की तुलना में सीखना आसान है।


1

मैं हास्केल से सहमत हूं, लेकिन व्यावहारिक दृष्टिकोण से, उसे व्यापक रूप से उपयोग की जाने वाली अमूर्त मशीन पर एक भाषा भी सीखनी चाहिए। मेरा मतलब है एक JVM भाषा या बेशक .NET भाषा।

इन प्लेटफार्मों पर भाषाएं हैं जो प्रमुख भाषाओं की तुलना में थोड़ी अधिक दिलचस्प हैं। जेवीएम पर क्लोजर और स्काला पर एक नजर है। .NET प्लेटफ़ॉर्म पर F # पर एक नज़र है।

Microsoft अनुसंधान से एक .NET भाषा भी थी जिसे c-omega कहा जाता था जो बहुत ही रोचक था, लेकिन सिर्फ एक शोध परियोजना थी।


1

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

सॉफ्टवेयर इंजीनियरिंग और इलेक्ट्रिकल इंजीनियरिंग को कंप्यूटर इंजीनियरिंग में जोड़ा जा सकता है।


0

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

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

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


0

पाइथन के चारों ओर एक पूर्ण मुक्त गणितीय पुस्तकालय और समुदाय है। मैं "ऋषि" के साथ शुरू करता हूं, उसे वास्तव में इसका उपयोग करने का आनंद लेना चाहिए और संयोग से पायथन में प्रोग्रामिंग सीखना होगा।


0

मुझे लगता है कि आपको अपने दोस्त को कुछ अलग प्रकार दिखाने चाहिए, जैसे:

  • सी
  • लिस्प / योजना
  • बेसिक
  • सीमा-खोल
  • Prolog

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

एक साधारण प्रोसेसर के लिए मशीन कोड (या कोडांतरक) भी दिलचस्प हो सकता है। मैं हमेशा खुश रहा हूं मैंने अपने पहले C64 पर मशीन कोड के साथ शुरुआत की । ( एमओएस 6510 ) हाथों का अनुभव जो सीमित समय के साथ "बर्बाद" होने पर एक वयस्क के रूप में प्राप्त करना कठिन है।


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

0

मेरे लिए, प्रोग्रामिंग "कुछ करने के लिए", "क्या होगा?" सवाल:

  • "मैं अपनी खुद की वेब साइट बनाना चाहूंगा", इसलिए HTML आदि के बारे में जानें।

  • "मुझे नफरत है कि मुझे एक्स पर क्लिक करना है या मैं इस वेब साइट पर वाई को हर बार देखता हूं। क्या मुझे इसे स्वचालित करने का कोई तरीका नहीं है?" तो आप बुकमार्कलेट या ब्राउज़र एक्सटेंशन लिखने के बारे में जानें।

  • "मैं अपने सभी संगीत को सूचीबद्ध करना चाहता हूं और जिन उपकरणों को मैंने देखा है उनमें से कोई भी ऐसा नहीं है जो मैं चाहता हूं", इसलिए आप डेटाबेस के बारे में सीखते हैं।

  • "मैं अपने मठ क्लब के लिए खर्चों को ट्रैक करना चाहता हूं", इसलिए आप स्प्रेडशीट, प्रोग्रामिंग मैक्रोज़ या शायद डेटाबेस के बारे में भी सीखते हैं।

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


-2

हास्केल और गणितज्ञ जाने का रास्ता है, मेरी राय में। अधिकांश कार्यात्मक भाषाएं गणित के लिए भी अच्छी हैं। पायथन भी अच्छा है, गणित के प्रलेखन की जांच करें ।

यह मॉड्यूल हमेशा उपलब्ध है। यह सी मानक द्वारा परिभाषित गणितीय कार्यों तक पहुंच प्रदान करता है।

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

इस मॉड्यूल द्वारा निम्नलिखित कार्य दिए गए हैं ...

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