मैं 8 साल से पेशेवर रूप से प्रोग्रामिंग कर रहा हूं, और जब से मैं एक शौक के रूप में 12 साल का था।
गणित आवश्यक नहीं है, तर्क है। गणित बहुत उपयोगी है, हालांकि यह कहना जरूरी नहीं है कि यह कहना है कि एक आदमी को मारने के लिए, एक बंदूक आवश्यक नहीं है, आप एक चाकू का उपयोग कर सकते हैं। खैर, यह सच है, लेकिन यह बंदूक इसे बहुत आसान बनाती है।
एक जोड़े नंगे न्यूनतम हैं, जो आपको पहले से ही मिलना चाहिए। आपको मूल बीजगणितीय अभिव्यक्तियों और संकेतन, और सामान्य कंप्यूटर समकक्षों को जानना होगा। उदाहरण के लिए, आपको यह जानना होगा कि एक घातांक क्या है (3 से 3 की 27 है), और सामान्य कंप्यूटर अभिव्यक्ति 3 ^ 3 है। बीजगणित के लिए आम धारणाएं भाषाओं के बीच परिवर्तन नहीं करती हैं, लेकिन उनमें से कई कुछ हद तक एकीकृत पद्धति का उपयोग करती हैं। अन्य (आपकी ओर देख रहे हैं LISP) नहीं। आपको संचालन के आदेश को भी जानना होगा।
आपको एल्गोरिथम विचार को समझने की आवश्यकता है। पहले यह, फिर यह, जो इस गणना में उपयोग किया जाता है पैदा करता है। संभावना है कि आप इसे समझ रहे हैं या आप नहीं करते हैं, और यदि आप इसे नहीं समझते हैं तो कूदने के लिए यह काफी कठिन बाधा है; मैंने पाया है कि यह कुछ ऐसा है जो आपको मिलता है, और वास्तव में ऐसा कुछ नहीं जो आप सीख सकते हैं। इसके विपरीत, कुछ लोगों को कला नहीं मिलती है। उन्हें चित्रकार नहीं बनना चाहिए। इसके अलावा, सीएस पाठ्यक्रम में ऐसे छात्र हैं जो यह पता नहीं लगा सकते हैं कि यह काम क्यों नहीं करता है: x = z + w; z = 3; y = 5; ऐसा नहीं है कि वे इसके अलावा नहीं समझते हैं, यह है कि वे अस्पष्ट एक्सप्रेस की आवश्यकता को समझ नहीं रहे हैं। अगर वे इसे समझते हैं, तो कंप्यूटर को भी सही होना चाहिए? यदि आप यह नहीं देख सकते हैं कि उपरोक्त तीन पंक्तियों में क्या गलत है, तो प्रोग्रामर न बनें।
अंत में, आपको यह जानना होगा कि प्रोग्रामिंग के आपके डोमेन के अंतर्गत कौन सा गणित है। लेखांकन सॉफ्टवेयर बुनियादी बीजगणित पर रोक सकता है। यदि आप भौतिकी की प्रोग्रामिंग कर रहे हैं, तो आपको भौतिकी (शिथिल) और गणित को 3-आयामी ज्यामिति (यूक्लिडियन) में जानना होगा। यदि आप आर्किटेक्चर सॉफ्टवेयर की प्रोग्रामिंग कर रहे हैं, तो आपको त्रिकोणमिति जानना होगा।
यह आगे गणित फिर भी चला जाता है; जो भी डोमेन आप के लिए प्रोग्रामिंग कर रहे हैं, आपको मूल बातें समझने की आवश्यकता है। यदि आप भाषा विश्लेषण सॉफ्टवेयर प्रोग्रामिंग कर रहे हैं, तो आपको संभाव्यता, सांख्यिकी, व्याकरण सिद्धांत (कई भाषाएँ) आदि जानने की आवश्यकता होगी।
अक्सर कई बार, कुछ डोमेन की आवश्यकता होती है, या इससे लाभ उठा सकते हैं, आपको लगता है कि ज्ञान असंबंधित है। उदाहरण के लिए, यदि आप ऑडियो सॉफ़्टवेयर प्रोग्रामिंग कर रहे थे, तो आपको वास्तव में तरंगों से निपटने के लिए त्रिकोणमिति जानने की आवश्यकता है।
परिमाण चीजों को भी बदलता है। यदि आप 1000 वस्तुओं का वित्तीय डेटा सेट कर रहे हैं, तो यह कोई बड़ी बात नहीं है। यदि यह 10 मिलियन रिकॉर्ड था, हालांकि, आपको वेक्टर गणित को वास्तव में जानने से बहुत लाभ होगा, और बाइनरी स्तर पर छंटनी की गहरी समझ है (सिस्टम कैसे वर्णानुक्रम में सॉर्ट करता है? यह कैसे जानता है कि 'ए' 'बी' से कम है) '?)
आप पाते हैं कि एक प्रोग्रामर के रूप में, आपके सामान्य ज्ञान का आधार विस्फोट हो रहा है, क्योंकि प्रत्येक परियोजना को प्रोग्रामिंग के प्रत्यक्ष क्षेत्र के बाहर अधिक सीखने की आवश्यकता होगी। यदि आप स्वयं सीखने के बारे में व्यंग्य या आलसी हैं, और अनिवार्य रूप से 'होमवर्क' करने के लिए सप्ताह में 10+ घंटे खर्च करने का विचार पसंद नहीं करते हैं, तो प्रोग्रामर न बनें।
अगर आपको सोचा हुआ व्यायाम पसंद है, अगर आपको सीखना पसंद है, अगर आप गणित के बिना अमूर्त चीजों के बारे में सोच सकते हैं जैसे कि बिना स्केचपैड के बिना कैलकुलेटर या डिज़ाइन के, यदि आपके पास जीवन और शौक में व्यापक स्वाद है, अगर आप आत्म-आलोचनात्मक हैं और फेंक सकते हैं ' इष्ट के विचार, अगर आपको सही चीजें पसंद हैं, तो एक प्रोग्रामर बनें। गणित पर इस निर्णय को आधार न बनाएं, बल्कि तार्किक रूप से सोचने और सीखने की क्षमता है। वे हैं जो महत्वपूर्ण हैं; गणित सिर्फ उप-उत्पाद है।