प्रोग्रामर बनना एक संचयी प्रक्रिया है, जो आपके कौशल को दिन-ब-दिन और साल-दर-साल मजबूत बनाती है और इसके अलावा प्रोग्रामिंग मजेदार और पुरस्कृत भी हो सकता है (मानसिक, आध्यात्मिक और आर्थिक रूप से)। यह गाइड एक प्रोग्रामर बनने के लिए एक बहुत आसान रास्ता देने का वादा नहीं करता है, और चरणों की सलाह अटूट नहीं है, लेकिन आपको आधुनिक प्रोग्रामिंग क्षेत्रों में से एक में एक प्रोग्रामर बनने का एक सामान्य प्रारूप जरूर मिलेगा।
संपादन करेंचरण
- निम्नलिखित विषयों में से एक में परिचयात्मक कोर्स (या उन सभी को) लेंः
- लॉजिक (Logic)
- डिस्क्रीट मैथेमेटिक्स (Discrete mathematics)
- प्रोग्रामिंग लेन्गवेज (विशेष रूप से C++/ Java/ Python)
- टेबल व्यू/क्वेरी और प्रोसीजर जैसे डेटाबेस कॉन्सेप्ट्स को जानें: यह करने के लिए आप किसी भी साधारण डेटाबेस पैकेज का उपयोग कर सकते हैं, जैसे कि:
- एमएस एक्सेस (MS Access)
- डीबी वी (DB V)
- फॉक्स प्रो (Fox Pro)
- पैराडोक्स (Paradox)
- MySQL सीखने के लिए एक अच्छा डेटाबेस है, यह आमतौर पर इस्तेमाल किया जाता है, क्योंकि यह नि: शुल्क है और आमतौर पर SQL क्वेरीस के साथ एक्सेस किया जाता है।
- फैसला करें आप किस प्रकार के प्रोग्रामर बनना चाहते हैं: प्रोग्रामर्स आम तौर पर निम्नलिखित श्रेणियों में से एक के अंतर्गत आते हैः
- वेब प्रोग्रामर
- डेस्कटॉप एप्लीकेशन प्रोग्रामर
- ऑपरेटिंग सिस्टम (OS) ओरिएंटेड प्रोग्रामर (एक ही ऑपरेटिंग सिस्टम से या ऑपरेटिंग सिस्टम के सेट से जुड़े हूए)
- प्लेटफॉर्म इंडिपेंडेंट प्रोग्रामर
- डिस्ट्रीव्यूटेड एप्लीकेशन्स प्रोग्रामर
- लाईब्रेरी / प्लेटफॉर्म / फ्रेमवर्क / कोर प्रोग्रामर
- सिस्टम प्रोग्रामर
- कर्नल प्रोग्रामर
- ड्राईवर प्रोग्रामर
- कम्पाइलर प्रोग्रामर
- प्रोग्रामिंग वैज्ञानिक
- अपनी पसंद के प्रोग्रामिंग क्षेत्र से संबंधित टेक्नोलॉजीस और प्रोग्रामिंग लेन्गवेजेस को जानें: निम्न वर्ग प्रोग्रामिंग को विभिन्न प्रकार के कार्यों में तोड़ते के हैं।
संपादन करेंवेब प्रोग्रामिंग (Web Programming)
- जानें वेब प्रोग्रामिंग किस जरूरत पर जोर देता है: वेब एप्लीकेशन्स सॉफ्टवेयर कॉम्पोनेंट्स वो हैं जो इंटरनेट आर्किटेक्चर के टॉप पर काम करने के लिए डिजाइन किए गए हैं। इसका मतलब है कि एप्लीकेशन्स वेब ब्राउज़र सॉफ्टवेयर जैसे मोजिला फायरफॉक्स या इंटरनेट एक्सप्लोरर के माध्यम से एक्सेस किए जाते हैं। इंटरनेट आर्किटेक्चर के टॉप पर बने होने की वजह से एक एक्टिव इंटरनेट कनेक्शन की आवश्यकता जरूरी नहीं होती है। इसका मतलब है वेब एप्लीकेशन्स स्टैंडर्ड वेब टैकनोलजी के टॉप पर बने हैं जैसे कि:
- एचटीटीपी (HTTP)
- एफटीपी (FTP)
- पीओपी3 (POP3)
- एसएमटीपी (SMTP)
- टीसीपी (TCP)
- प्रोटोकॉल्स
- एचटीएमएल (HTML)
- एक्सएमएल (XML)
- कॉल्डफ्यूजन
- एएसपी (ASP)
- जेएसपी (JSP)
- पीएचपी (PHP)
- एएसपी.नेट (ASP.NET)
- कई विभिन्न वेबसाइटें आम तौर पर कैसी दिखती हैं जानने के लिए उन्हें ब्राउज करें: (राइट क्लिक करें, फिर सोर्स पर क्लिक करें या F12 प्रेस करें) वेबसाइट के प्रकारों/सामग्री में विविधता देखें, वेबसाइटों की मात्रा का दौरा नहीं करें। आम तौर पर, आपको वेबसाइटों के निम्नलिखित प्रकारों में से प्रत्येक को कम से कम एक बार देखने की आवश्यकता होगी:
- कॉर्पोरेट उपस्थित साइट्स (वाणिज्यिक निगम, लाभ कॉर्पोरेट/संगठनों, सरकारी संगठनों के लिए नहीं)
- वेब इंडेक्सिंग इंजन (सर्च इंजन, मेटा सर्च साइट, विशेष सर्च इंजन, डाईरेक्ट्रीज)
- डाटा माइनिंग साइट्स
- पर्सनल साइट्स
- इंफोर्मेशनल/एन्साइक्लोपीडिक पेजेस (ब्लॉग्स और जर्नल्स, समाचार और समाचार एजेंसियां साइट, येलो पेजेस, मैनुअल लिस्टिंग, विकी, डाटाशीट, आदि)।
- शोसल साइट्स (शोसल पोर्टल्स, बुकमार्किंग साइट्स, नोट-टोकिंग साइट्स)
- कॉलाबोरेटिव साइट्स (इनमें ऊपर बताई गई अन्य उपरोक्त श्रेणियां भी शामिल हैं, जैसे कि विकी और ब्लोग्स)
- कम से कम एक बुद्धिशीलता की टेक्नीक/विधि और उस विधि को लागू करने के लिए प्रयोग किया जाने वाला सॉफ्टवेयर सीखें: उदाहरण के लिए: बुद्धिशीलता चित्र और एमएस विजिओ।
- वेबसाइट संरचना से परिचय करें: यह कन्सेप्चुअल वेब डायग्राम, साइट-मैप्स, और नेविगेशन संरचनाएँ बनाना है।
- ग्राफिक्स डिजाइन पर एक क्रैश कोर्स लें: कम से कम एक ग्राफिक्स एडिटिंग/ मेनिप्यूलेशन सॉफ्टवेयर पैकेज (वैकल्पिक, लेकिन दृढ़ता से सिफारिश करते हैं) जानने की कोशिश करें।
- इंटरनेट के बुनियादी ढांचे की मूल बातें जानें: बुनियादी विचार जानने में शामिल हैं:
- बेस वेब सर्विस प्रोटोकॉल्स (HTTP, FTP, SMTP, और POP3 या IMAP4)
- वेब सर्वर सॉफ्टवेयर (विशेषतः, उस प्लेटफॉर्म के लिए जिस पर आप ज्यादातर पर काम करेंगे)
- वेब ब्राउज़िंग सॉफ्टवेयर।
- ईमेल सर्वर और क्लाइंट सॉफ्टवेयर।
- एचटीएमएल और सीएसएस लेन्गवेजेस जानें: शायद आप HTML एडिटिंग के लिए WYSIWYG सॉफ्टवेयर पैकेज पाना चाहेंगे।
- एक्सएमएल और एक्सएमएल से संबंधित टेक्नोलॉजीस जानें: जैसे XSL और XPath (वैकल्पिक लेकिन अनुशंसित)।
- जब तक आप HTML से परिचित ना हो जाएँ, तब तक सिम्पल स्थैतिक वेबसाइट बनाएँ:
- एक क्लाइंट-साइड स्क्रिप्टिंग लेन्गवेज सीखें: अधिकांश यूजर्स जावास्क्रिप्ट को सीखते हैं। कुछ VBScript सीखते हैं, लेकिन यह सभी ब्राउज़रों के साथ संगत नहीं है।
- आप सीखी हुई क्लाइंट साइड स्क्रिप्टिंग लेन्गवेज के साथ परिचय करें: केवल उस लेन्गवेज का उपयोग कर अपने क्षमता तक पहुँचने की कोशिश करें। जब तक आप कम से कम अपने क्लाइंट साइड स्क्रिप्टिंग लेन्गवेज से परिचित ना हो जाएं, उसके बाद ही अगले कदम के लिए जाएँ।
- कम से कम एक सर्वर साइड प्रोग्रामिंग लेन्गवेज सीखें: आप एक सर्वर सॉफ्टवेयर तक खुद को सीमित करने के लिए चुनते हैं, तो उस सॉफ्टवेयर के द्वारा समर्थित प्रोग्रामिंग लेन्गवेजेस में से एक सीखें। यदि नहीं, तो प्रत्येक सर्वर सॉफ्टवेयर की कम से कम एक प्रोग्रामिंग लेन्गवेज सीखें।
- आप सर्वर साइड प्रोग्रामिंग लेन्गवेज सीखने के बाद खुद के लिए एक पायलट प्रोजेक्ट बनाएँ।
- अपनी खुद की वेबसाइट बनाएँ और अपने स्वयं के पेज के भीतर ऑनलाइन प्रयोग शुरू करें।
संपादन करेंडेस्कटॉप एप्लीकेशन प्रोग्रामिंग
- जानें आप डेस्कटॉप एप्लीकेशन प्रोग्रामिंग के साथ क्या करते हैं: अधिकांश डेस्कटॉप प्रोग्रामर व्यापार के समाधान के लिए कोड लिखते हैं, तो कारोबार के बारे में एक विचार पाना, उनके संगठनात्मक और वित्तीय संरचना का एक बड़ा समय बचा पाएंगे।
- विभिन्न कंप्यूटर हार्डवेयर आर्किटेक्चर्स के बारे में जानें: एक प्रारंभिक स्तर कोर्स डिजिटल सर्किट डिजाइल में और दूसरा कंप्यूटर आर्किटेक्चर में उपयोगी है; हालांकि, कुछ इसे एक स्टार्टिंग पॉइंट पर आगे बढ़ने जैसा देखते हैं, तो दो या तीन ट्यूटोरियल लेख पढ़ें (जैसे कि ये और ये) पर्याप्त हो सकता है। आप अपनी पहली प्रोग्रामिंग लेन्गवेज सीखने के बाद, वापस इस कदम के लिए जा सकते हैं।
- एक प्रवेश स्तर (बच्चों के') प्रोग्रामिंग लेन्गवेज सीखें: शर्माएँ नहीं, सिर्फ इसलिए कि इस तरह की एक लेन्गवेज सीखने के लिए आपको एक "बच्चा" कहा जा रहा है। इन प्रोग्रामिंग लेन्गवेजेस का एक उदाहरण स्क्रैच हो सकता है। ये प्रोग्रामिंग लेन्गवेजेस पहले प्रोग्रामिंग लेन्गवेज सीखने के दर्द को काफी कम कर सकती हैं। हालांकि, यह कदम वैकल्पिक है। यह पिछले चरण से पहले भी किया जा सकता है।
- इनसे परिचय करे: प्रोसीजरल, ऑब्जेक्ट ऑरिएंटेड, फन्सनल, प्रोग्रामिंग पैराडिग्म।
- प्रोसीजरल प्रोग्रामिंग लेन्गवेजेस में से एक में एक प्रारंभिक कोर्स लें: कोई फर्क नहीं पड़ता आप अपनी पसंद की लेन्गवेज के रूप में बाद में क्या लेन्गवेज चुनते हैं, बस किसी भी स्तर की प्रोसीजरल प्रोग्रामिंग होनी चाहिए। इसके अलावा, प्रोसीजरल प्रोग्रामिंग एक प्रारंभिक बिंदु के रूप में प्रोग्रामिंग के विचार प्राप्त करने में उपयोगी होने में सबसे आसान होने के लिए ज्यादातर प्रोग्रामर्स द्वारा मानी गई है।
- कम से कम एक एडवांस्ड मॉडलिंग टेक्नीक जानें जैसे कि UML या ORM के रूप में ।
- कुछ छोटे कंसोल या कंसोल की तरह एप्लीकेशन्स का लेखन शुरू करें: आप प्रोग्रामिंग लेन्गवेजेस की पुस्तकों में आम छोटे अभ्यास का उपयोग कर सकते हैं। इस के लिए, आप जिस प्रोग्रामिंग लेन्गवेज में लिख रहे हैं, उसमें प्रोग्राम लिखने के लिए एक टूल का चयन करें।
- आपकी चुनी हुई प्रोग्रामिंग लेन्गवेज में एक और अधिक एडवांस्ड कोर्स लें: आप अच्छी तरह से निम्नलिखित कॉन्सेप्ट्स को समझना और आगे जाने से पहले रिलेटिव केस में आसानी से उन्हें लागू करना सुनिश्चित करें:
- एक प्रोग्राम के यूजर्स के लिए इनपुटिंग और आउटपुटिंग इंफोर्मेशन।
- प्रोसीजरल लेन्गवेजेस में प्रोग्राम्स के लॉजिकल फ्लो और एक्जीक्यूशल फ्लो।
- वेरीयेवल्स को डिक्लेयर, असाइन और कम्पेयर करना।
- ब्रांचिंग प्रोग्रामिंग if..then..else और select/switch..case से बनी होती है।
- लूपिंग while..do, do..while/until, for..next से बनी होती है।
- आपकी प्रोग्रामिंग लेन्गवेज सिंटेक्स, फंक्शन्स बनाने और कॉल करने के लिए।
- डेटा टाइप्स और उन्हें मेनीपुलेट करना।
- यूजर डिफाइन्ड डेटा टाइप्स (रिकॉर्ड्स/स्ट्रक्ट्स /यूनिट्स) और उनके उपयोग।
- यदि आपकी लेन्गवेज समर्थन करती है तो ओवरलोडिंग फंक्शन्स को समझें।
- अपनी पसंद की लेन्गवेज को एक्सेस करने के तरीकें (पोइंटर्स, पीकिंग, आदि)
- यदि आपकी लेन्गवेज समर्थन करती है तो ऑपरेटर ओवरलोडिंग समझें।
- यदि आपकी लेन्गवेज समर्थन करती है तो डेलीगेट्स/फंक्शन्स पोइंटर्स समझें।
- आपकी सीखी हुईं एडवांस्ड टेक्नीक्स को लागू करें ।
- ऑब्जेक्ट-ओरिएंटेड पैराडिग्म
- एक और प्रोग्रामिंग पैराडिग्म में कम से कम एक प्रोग्रामिंग लेन्गवेज का एक प्रारंभिक कोर्स लें: प्रत्येक प्रोग्रामिंग पैराडिग्म में एक प्रोग्रामिंग लेन्गवेज सीखें, सबसे एडवांस्ड प्रोग्रामर यह करते हैं, हालांकि, आप आमतौर पर एक के साथ शुरू करें, अपने ज्ञान को लागू करने के लिए आप पहले एक से ही शुरू करें, और आपको प्रोग्रामिंग में असल-जिंदगी के अनुभव बाद में अन्य लेन्गवेज सीखें। निम्नलिखित लेन्गवेज क्षेत्रों में से एक का प्रयास करें:
- लॉजिक प्रोग्रामिंग पैराडिग्म
- फंक्शन्सनल प्रोग्रामिंग पैराडिग्म
- आपने अब तक सीखी हुई दो प्रोग्रामिंग लेन्गवेजेस की तुलना करने की कोशिश करें: हर एक की शक्तियों और कमजोरियों का मूल्यांकन करें। आम तौर पर यह इस के द्वारा किया जाता है:
- पहली प्रोग्रामिंग लेन्गवेज में अपने प्रारंभिक काम के सिम्पल नमूने लें और दूसरी प्रोग्रामिंग लेन्गवेज का उपयोग कर इसे फिर से लिखें।
- एक नया प्रोजेक्ट बनाएँ और दोनों लेन्गवेजेस का उपयोग कर इसे बनाने की कोशिश करें। कभी कभी, प्रोजेक्ट और लेन्गवेजेस की पसंद पर निर्भर करते हुए, आप दोनों लेन्गवेजेस में से एक में इस प्रोजेक्ट को लागू करने में सक्षम नहीं हो सकते!
- प्रत्येक लेन्गवेज के यूनिक फीचरर्स और दोनों लेन्गवेजेस के सिमिलर कंस्ट्रक्ट्स के बीच एक चीट-शीट या समरी-टेबल में तुलनाएँ लिखें।
- अन्य लेन्गवेज का प्रयोग करके दोनों लेन्गवेजेस में से यूनिक फीचरर्स की नकल करने के लिए तरीके खोजने की कोशिश करें।
- सीखी हुई लेन्गवेजेस में से एक का उपयोग कर विजुअल प्रोग्रामिंग कन्सेप्ट जानें: लगभग सभी प्रोग्रामिंग लेन्गवेजेस में वर्जन्स/लाइब्रेरी होती है जो विजुअल प्रोग्रामिंग और दूसरें कन्सोल या कन्सोल की तरह प्रोग्रामिंग का समर्थन करते हैं। यह इसके द्वारा पूरा किया जा सकता है:
- इवेंट ड्रिवन प्रोग्रामिंग से परिचय करें। अधिकांश विजुअल प्रोग्रामिंग इवेंट और इवेंट हेंडलिंग पर कुछ स्तर तक निर्भर करती हैं (आपकी चुनी हुई प्रोग्रामिंग लेन्गवेज का उपयोग करके)।
- आप जितना ज्यादा कर सकते हैं डेस्कटॉप सॉफ्टवेयर को प्रयोग करने की कोशिश करें और सॉफ्टवेयर क्या करता है समझें। ज्यादातर सॉफ्टवेयर विकास कंपनियां सॉफ्टवेयर का परीक्षण करने के लिए बीटा परीक्षण वर्जन के उत्पादों की पेशकश करती हैं, जो आप उपयोग कर सकते हैं। ऑन यूजर इंटरफेस एडवांसमेंट अप-टू-डेट रखें।
- ग्राफिकल यूजर इंटरफेस पर कुछ लेख या ट्यूटोरियल पढ़ें।
- आपके डिजाइन किए हुए छोटे से सॉफ्टवेयर प्रोजेक्ट्स पर अपने ज्ञान को लागू करने की शुरुआत करें: आप अपने दिन-प्रतिदिन के जीवन में समस्याओं पर अपने प्रोग्रामिंग विशेषज्ञता को लागू करने की कोशिश करें। उदाहरण के लिए, फ़ाइलों का नाम बदलने का प्रोग्राम लिखें, विजुअली टेक्स्ट फ़ाइल को कम्पेयर करें, एक डायरेक्ट्री में फ़ाइलों के नाम कॉपी करें, और इस तरह की अन्य चीजें करें। यह पहली बार में सिम्पल रखें।
- एक वर्चुअली स्नातक प्रोजेक्ट बनाएं: अब तक सीखी हुई विजुअल प्रोग्रामिंग की टेक्नीक्स को लागू करके, इसे पूरा करें।
- एडवांस्ड कोर्स लेकर सीखें हुए विजुअल फ्रेमवर्क/ लाइब्रेरी / पैकेज को विस्तार से समझें: ऑनलाइन रिसोर्सेस से अतिरिक्त ज्ञान लें और अपने फ्रेमवर्क के लिए और अधिक सुझाव और चालें सीखें।
- अपने प्रोग्रामिंग लेन्गवेजेस के लिए विजुअल तत्वों के अन्य पैकेज / लाइब्रेरी के लिए खोज करें और उन्हें जानें।
- ग्राफिक्स में एक कोर्स लें( ग्राफिक्स डिजाइन में नहीं): यह उन प्रोग्रामर्स के लिए बहुत उपयोगी होगा, जो यूजर इंटरफ़ेस तत्वों को लिखना चाहते हैं।
- एक गेम प्रोग्रामर (वैकल्पिक) बनें: गेम प्रोग्रामिंग, डेस्कटॉप प्रोग्रामिंग के अधिकांश भागों में माना जाता है। अगर आप एक गेम प्रोग्रामर बनना चाहते हैं, तो आपको इन चरणों को पूरा करने के बाद गेम प्रोग्रामिंग के बारे में अधिक जानने की जरूरत होगी। एक ग्राफिक्स कोर्स गेम प्रोग्रामर के लिए बहुत जरूरी है और पिछले चरणों में चुनाव की दूसरी लेन्गवेज एक लॉजिक/ फंक्शनल प्रोग्रामिंग लेन्गवेज (अधिमानतः प्रोलोग या लिस्प) होनी चाहिए।
संपादन करेंडिसट्रीब्यूटेड एप्लीकेशन प्रोग्रामिंग
- डिसट्रीब्यूटेड एप्लीकेशन्स प्रोग्रामिंग से निपटें: डिसट्रीब्यूटेड एप्लीकेशन प्रोग्रामिंग सबसे मुश्किल होने के लिए जाना जाता है और इसके लिए कंप्यूटर और कम्यूनिकेशन टेक्नोलॉजीस में विविध ज्ञान की आवश्यकता है।
- टेलीफोनी सिस्टम्स और उनके हार्डवेयर का एक गति में परिचय लें: यह कदम वैकल्पिक है। हालांकि, यह नेटवर्क टोपोलॉजी समझने में बहुत उपयोगी है।
- नेटवर्किंग हार्डवेयर आर्किटेक्चर और उनके टूल जैसे हब, स्विच और राउटर के साथ परिचय करें।
- प्रोटोकॉल और एसेन्सियल नेटवर्किंग में एक कोर्स लें: आपको डिसट्रीब्यूटेड एप्लीकेशन प्रोग्रामिंग शुरू करने से पहले ओपन सिस्टम इंटरकनेक्शन (ओएसआई) मॉडल, ईथरनेट, आईपी, टीसीपी, यूडीपी और एचटीटीपी की अच्छी समझ की जरूरत है।
- एक्सएमएल लेन्गवेज सीखें और इसके साथ खुद को परिचित करें।
- एक शेल स्क्रिप्टिंग लेन्गवेज सीखने के द्वारा शुरू करें: विंडोज बेस्ड प्रोग्रामिंग के लिए, कोई भी स्क्रिप्ट होगा जो कि विंडोज स्क्रिप्टिंग होस्ट के साथ काम करता हो। लिनक्स बेस्ड प्रोग्रामिंग के लिए, बाश स्क्रिप्ट और पर्ल पर्याप्त होगा। जावास्क्रिप्ट की दृढ़ता से दोनों प्लेटफार्मों के लिए निम्नलिखित कारणों से सिफारिश की जाती है:
- यह किसी भी ऑपरेटिंग सिस्टम में लगभग किसी भी स्क्रिप्टिंग होस्ट द्वारा समर्थन किया जाता है (विंडोज स्क्रिप्टिंग होस्ट डिफ़ॉल्ट रूप से जावास्क्रिप्ट का समर्थन करता है, लगभग सब लिनक्स डिसट्रीब्यूशन्स के पास जावास्क्रिप्ट स्क्रिप्टिंग कंसोल समर्थन के लिए एक पैकेज होता है)।
- यह कई डेवलपर्स द्वारा जानने में आसान माना जाता है।
- इसमें एक ALGOL द्वारा निकाली गया सिंटेक्स है, जो अगर आपको एक दूसरी प्रोग्रामिंग लेन्गवेज का चयन करने की आवश्यकता होती है, तब अन्य प्रोग्रामिंग लेन्गवेजेस के साथ आपका परिचय कराती हैं, C, C++, C#, जावा, J#, सभी ALGOL सिंटैक्स द्वारा निकाली गयी हैं।
- जावास्क्रिप्ट सीख कर, आप वेब पृष्ठों की क्लाइंट साइड स्क्रिप्टिंग के साथ खुद को परिचित करके एक बोनस पक्ष पाते है!
- पहली बार में अपनी पसंद की स्क्रिप्टिंग लेन्गवेज का प्रयोग करके केवल प्रोसीजरल प्रोग्रामिंग लागू करें: बाद में, आप अपनी स्क्रिप्टिंग लेन्गवेज और यह किसका समर्थन करता है, के अनुसार और अधिक एडवांस्ड प्रोग्रामिंग टेक्नीक्स और पैराडिग्म का उपयोग कर सकते हैं। सभी स्क्रिप्टिंग लेन्गवेजेस में किसी ना किसी स्तर पर कुछ प्रोसीजरल प्रोग्रामिंग पहलू हैं।
- आप मशीनों के बीच कम्यूनिकेशन करने के लिए स्क्रिप्टिंग लिखने के लिए सीखी हुई स्क्रिप्टिंग लेन्गवेज का प्रयोग करें: जानें यह करने के लिए क्या आवश्यक है। सिम्पल कम्यूनिकेशन पर्याप्त होगा।
- एक डेस्कटॉप स्क्रिप्टिंग/प्रोग्रामिंग लेन्गवेज के लिए एक ट्रांसफर सुनिश्चित करें: अधिमानतः, एक मल्टी-पैराडिग्म लेन्गवेज जैसे कि पायथन। उस दूसरी लेन्गवेज का एक सिम्पल परिचय लें। जावा कई प्रोग्रामर द्वारा कई कारणों से पसंद की लेन्गवेज मानी जाती है। हालांकि, C # इस क्षेत्र में तेजी से गति प्राप्त कर रहा है। जावा और C # निम्नलिखित कारणों के लिए पसंद किए जाते हैं:
- वे इस प्रकार हैं, ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग लेन्गवेजेस, जो प्रोग्रामर को इंप्लीमेंटेशन की बड़ी टीमों में ढालता हैं, वे दोनों कोड के कॉम्पोनेंट्स का समर्थन करते हैं।
- वे कुछ स्तर पर इवेंट-ड्रिवन प्रोग्रामिंग, साथ ही OO और प्रोसीजरल प्रोग्रामिंग का समर्थन करते हैं।
- फ्रेमवर्क जिस पर लेन्गवेज बनी होती है नेचर द्वारा डिसट्रीब्यूटेड किया जाता है(जावा के मामले में)।
- कई तैयार किये गए पैकेजेस की उपलब्धता जो नेटवर्किंग से डील करते हैं, दोनों ओपन-सोर्स कोड और ढांचे में निर्मित पैकेज हैं; यह प्रोग्रामर्स को दूसरों के काम पर निर्माण करना आसान बनाते हैं।
- लेन्गवेज की मूल सुविधाओं, विशेष रूप से जो नेटवर्किंग का समर्थन करती हैं, उन पर अधिक ध्यान केंद्रित करें: यूजर इंटरफ़ेस तत्वों जैसे आउटपुटिंग, विंडो डिजाइन और टेक्नीक और यूजर इंटरफ़ेस तत्वों पर कम ध्यान दें।
- डिसट्रीब्यूटेड एप्लीकेशन्स के डिजाइन और आर्किटेक्चर पर एक कोर्स लें: यह किताबों, ऑनलाइन ट्यूटोरियल या अकादमिक कोर्सेस का उपयोग करके किया जा सकता है। हालांकि, डिसट्रीब्यूटेड एप्लीकेशन्स के आर्किटेक्चर और उनके कॉन्सेप्ट को समझना आवश्यक है।
- अपनी पसंद के प्रोग्रामिंग लेन्गवेज के उपयोग से सर्विस कॉम्पोनेंट के निर्माण और सर्विसेस के बारे में जानें।
- निम्नलिखित टेक्नीक्स में से एक या एक से अधिक टेक्नीक्स को जानें: कम से कम उन सभी से परिचय प्राप्त करने की कोशिश करें: अधिकांश डिसट्रीब्यूटेड एप्लीकेशन प्रोग्रामर्स एक या दो प्रोग्रामिंग लेन्गवेजेस पर रूकते नहीं है, बल्कि प्रत्येक ऑपरेटिंग सिस्टम पर कम से कम एक प्रोग्रामिंग लेन्गवेज सीखते हैं। इसका मतलब अगर आप अपने एप्लीकेशन को "डिसट्रीब्यूटेड" करना चाहते हैं, तो आप कम से कम एक प्रमुख ऑपरेटिंग सिस्टम पर इसका एक वर्जन प्रदान करें।
- कॉमन ऑब्जेक्ट रिक्वेस्ट ब्रोकर आर्किटेक्चर (CORBA)
- सिम्पल ऑब्जेक्ट एक्सेस प्रोटोकॉल (SOAP)
- असिन्क्रोनस जावास्क्रिप्ट और XML (AJAX)
- डिसट्रीब्यूटेड कॉम्पोनेंट ऑब्जेक्ट मॉडल (DCOM)
- .NET रिमोटिंग
- XML वेब सर्विसेस
संपादन करेंलाइब्रेरी / प्लेटफॉर्म / फ्रेमवर्क / कोर प्रोग्रामिंग
- कोर प्रोग्रामिंग क्या है जानें: कोर प्रोग्रामर केवल वो एडवांस्ड प्रोग्रामर हैं, जो अन्य प्रोग्रामर द्वारा इस्तेमाल किया जाने वाले प्रोग्रामिंग एप्लीकेशन्स का प्रोग्रामिंग कोड यूनिट्स में स्थानांतरण करते हैं।
- अगर आपने पहले ऐसा नहीं किया है, तो एक प्रोग्रामिंग लेन्गवेज सीखें जो रियूजेवल कॉम्पोनेंट्स/पैकेजेस के निर्माण का समर्थन करती है।
- UML और ORM में एक एडवांस्ड कोर्स लें: अधिकांश लाइब्रेरी डेवलपर्स उनमें से एक या दोनों का उपयोग करते हैं।
- सॉफ्टवेयर इंजीनियरिंग में एक कोर्स लें।
- कम से कम मॉड्यूलर, कॉम्पोनेंट-बेस्ड, ऑब्जेक्ट ओरिएंटेड, और इवेंट ड्रिवन प्रोग्रामिंग टेक्नीक और कन्सेप्ट्स जानें: जितने ज्यादा अधिक आप प्रोग्रामिंग पैराडिग्म और लेन्गवेजेस को कवर करेंगे, उतने अधिक आप एक लाइब्रेरी/पैकेज प्रोग्रामर के रूप में सफल होंगे।
- ऑपरेटिंग सिस्टम के बारे में और इन ऑपरेटिंग सिस्टम के द्वारा समर्थित प्रोग्रामिंग फ्रेमवर्क बारे में और अधिक जानें।
- प्लेटफार्म इंडिपेंडेंट फ्रेमवर्क, प्रोग्रामिंग लेन्गवेजेस और टेक्नोलॉजीस को सीखने के प्रयासों पर ध्यान केंद्रित करें।
- यदि आपकी अब तक सीखी हुई प्रोग्रामिंग लेन्गवेजेस में ANSI/ ISO / IEEE / W3C स्टैंडर्ड वर्जन है, तो उनमें मास्टरी कीजिए:जब भी संभव हो स्टैंडर्ड कोड का उपयोग करने के लिए प्रयास करें।
- पहले से ही स्थापित सिम्पल लाइब्रेरीस की नकल करने की कोशिश करें, विशेष रूप से ऑपन सोर्स वाली: यह एक लाइब्रेरी/पैकेज प्रोग्रामर बनने के प्रारंभिक चरणों के दौरान उपयोगी है। साधारण पैकेज के साथ शुरू करें, जैसे कि यूनिट कनवर्जन और मध्यवर्ती वैज्ञानिक गणना पैकेज। अगर आप एक कॉलेज के छात्र रहे हैं, तो आप गैर प्रोग्रामिंग कोर्सेस का इस्तेमाल करें, उनके समीकरण और वैज्ञानिक कोर लाइब्रेरीस को लागू करने की कोशिश के द्वारा।
- अपने प्रोग्रामिंग के क्षेत्र में ओपन सोर्स पैकेज की खोज और प्रयास करें: पहले बायनेरिज़/ पैकेज के एक्जेक्यूटेबल्स डाउनलोड करें। इसका इस्तेमाल करने की और इसके मजबूत और कमजोर अंक खोजने की कोशिश करें। इसे करने के बाद, सोर्स डाउनलोड करें और इसे कैसे किया गया था यह पता लगाने की कोशिश करें। उन लाइब्रेरीस या उसके भागों को रिक्रियेट करने का प्रयास करें। सबसे पहले, उन कोड को देखने के बाद और फिर कोड को देखने से पहले करें। बाद के चरणों में, उन लाइब्रेरीस को सुधारने का प्रयास करें।
- प्रोग्रामर के कॉम्पोनेंट्स को डिसट्रीब्यूटेड करने और तैनात करने के लिए प्रयोग किया जाने वाले अलग अलग दृष्टिकोण जानें।
- आमतौर पर, लाइब्रेरी / पैकेज प्रोग्रामर प्रस्तुत सभी समस्याओं को रिकर्सिवली और/या इटरेटिवली सोचते हैं: प्रत्येक समस्या को छोटी समस्याओं के एक संग्रह (सिम्पल कार्यों का एक सीक्वेंस) के रूप में या छोटे क्षेत्र की समस्या की गुंजाइश को कम करने के लिए एक दोहराने वाली प्रक्रिया की तरह और फिर एक दूसरे पर उन क्षेत्रों को जमा करने के रूप में सोचने की कोशिश करें।
- लाइब्रेरी/पैकेज प्रोग्रामर जनरलाइजेशन करते हैं। जब एक साधारण विशिष्ट समस्या प्रस्तुत की जाती है, वे आम तौर पर एक अधिक सामान्य समस्या के बारे में सोचते हैं और सामान्य समस्या को हल करने की कोशिश करते है, जो स्वचालित रूप से छोटी समस्या का समाधान कर देगी।
संपादन करेंसिस्टम प्रोग्रामिंग
- सिस्टम प्रोग्रामिंग किस पर जोर देती है समझें: सिस्टम प्रोग्रामर प्रोग्रामिंग विज्ञान के साथ डील करते हैं, इसके विशिष्ट कार्यान्वयन के साथ नहीं। एक विशेष प्लेटफार्म के लिए अपने आप को बांधें नहीं।
- डेस्कटॉप एप्लीकेशन प्रोग्रामर्स पहले तीन चरणों का पालन करें।
- रेखीय बीजगणित में एक प्रारंभिक कोर्स लें।
- गणना में एक कोर्स लें।
- तार्किक और/या डिस्क्रीट मैथ में एक कोर्स लें।
- अलग अलग ऑपरेटिंग सिस्टम से अपना परिचय कराएँ: यह इसके द्वारा किया जा सकता है:
- ऑपरेटिंग सिस्टम कैसे इंस्टॉल्ड करते हैं इस पर एक विचार करें।
- सीखें कैसे एक पीसी पर कई ऑपरेटिंग सिस्टम इंस्टॉल करते हैं (वैकल्पिक, लेकिन अनुशंसित)।
- एक से अधिक ऑपरेटिंग सिस्टम इंस्टॉल करना। सिस्टम पर किसी भी मदद कर रहे पैकेज को इंस्टॉल नहीं करें; इसके बजाय, ऑपरेटिंग सिस्टम द्वारा प्रदान फंक्सनालिटी का उपयोग करें।
- कंप्यूटर हार्डवेयर आर्किटेक्चर पर एक कोर्स लें (या वैकल्पिक रूप से किताबें पढ़ें)।
- विभिन्न कंप्यूटर हार्डवेयर प्लेटफार्मों की समझ विकसित करें।
- अपनी पसंद के हार्डवेयर प्लेटफार्म/ऑपरेटिंग सिस्टम की असेम्बली लेन्गवेज के साथ एक परिचय करें: आप बाद में अन्य प्लेटफार्मों/ सिस्टम की असेम्बली सीखेंगे।
- प्रोसीजरल प्रोग्रामिंग के कंसेप्ट के साथ ANSI C और C++ लेन्गवेजेस को जानें।
- अपनी पसंद के प्लेटफार्म पर C/C++ स्टैंडर्ड लाइब्रेरीस को समझें और अभ्यास करें: स्टैंडर्ड टेम्पलेट लायब्रेरी पर और शायद एक्टिव टेम्पलेट लायब्रेरी ATL पर विशेष ध्यान दें।
- अपने विशिष्ट प्लेटफार्म के C-स्वाद की एक समझ पाने के लिए ऑनलाइन रिसोर्सेस, पुस्तकों और कोर्स खोजें।
- C और C++ के साथ एडवांस्ड कोड बनाने का अभ्यास करें।
- अधिक एडवांस्ड असेम्बली जानें।
- ऑपरेटिंग सिस्टम के डिजाइन में एक कोर्स लें।
- अपनी पसंद के विशिष्ट प्लेटफार्म के दस्तावेजों का पता लगाएं और पढ़ें: अगर आप एक यूनिक्स बेस्ड ऑपरेटिंग सिस्टम का चयन करते हैं तो यह आसान हो जाएगा। आप बाद में अच्छी तरह से काम करने के लिए सिस्टम को समझें।
- अपने अर्जित ज्ञान का अभ्यास करें: पहले छोटे प्रणाली उपयोगिताओं को पैदा करें। यह करने के लिए आम तौर पर उपयोगी है:
- आपके सिस्टम पर पहले से ही मौजूद छोटे टूल्स को दोबारा बनाने की कोशिश करें।
- अन्य ऑपरेटिंग सिस्टम में उपलब्ध पोर्ट उपयोगिताओं को आपके मे लाने के लिए कोशिश करें।
- लेन्गवेजेस को सबसे उपयोगी क्रम में जानें: यह एक ही जगह है, जहां पहली प्रोग्रामिंग लेन्गवेज मायने रखती है। सबसे पहले ANSI C सीखें, C ++ नहीं, C # नहीं, जावा नहीं और न D सीखें। फिर C ++ सीखें।
- पहली लेन्गवेज को C पर और C अकेले पर सीमित करें क्योंकि सिस्टम प्रोग्रामिंग प्रोग्रामर को निम्नलिखित कॉन्सेप्ट्स से परिचित होने की आवश्यकता है:
- सोर्स कोड का वास्तविक और पूर्ण कम्पाइलेशन।
- लो-लेवल ऑब्जेक्ट आउटपुट फ़ाइल्स।
- बायनेरिज़ जोड़ना।
- लो-लेवल मशीन-लेन्गवेज/असेम्बली प्रोग्रामिंग: सी लेन्गवेज को कुछ लोगों द्वारा असेम्बली में जानने के लिए प्रच्छन्न/आसान कहा जाता है। जो भी कोड आपको पसंद हो, यह उसमें असेम्बली लेन्गवेज कोड डालने का समर्थन करता है और यह (असेम्बली की तरह) केवल प्रोसीजरल है।
- पहली लेन्गवेज को C पर और C अकेले पर सीमित करें क्योंकि सिस्टम प्रोग्रामिंग प्रोग्रामर को निम्नलिखित कॉन्सेप्ट्स से परिचित होने की आवश्यकता है:
संपादन करेंप्रोग्रामिंग विज्ञान
- एक प्रोग्रामिंग वैज्ञानिक क्या करता है जानें: प्रोग्रामिंग वैज्ञानिक बहुत एडवांस्ड प्रोग्रामर हैं, जो बजाय एप्लीकेशन्स के विकास पर काम करते हैं, एन्क्रिप्शन की तरह कंप्यूटिंग टेक्नोलॉजीस को विकसित करते हैं, प्रोग्रामिंग लेन्गवेजेस और डाटा माइनिंग एल्गोरिदम पर काम करते हैं। यह स्तर कभी-कभार ही अकादमिक अध्ययन और समर्पण के बिना हासिल किया जाता है।
- कंप्यूटर विज्ञान के क्षेत्र में एक चार साल की डिग्री के समकक्ष वैज्ञानिक ज्ञान संचित करें: यह इनके द्वारा किया जा सकता है:
- एक वास्तविक शैक्षणिक डिग्री लेना (जो आम तौर पर होता है) ।
- आधुनिक विश्वविद्यालयों में से एक से इस तरह की डिग्री के लिए कोर्स की रूपरेखा जांचें और स्वयं अध्ययन करके या अलग कोर्स के रूप में, पढ़ें। यह सैद्धांतिक रूप से प्राप्त किया जा सकता है, लेकिन सिफारिश वाला पथ पहला है।
- विशेषता के एक क्षेत्र का फैसला करें: जितना विशिष्ट, उतना बेहतर। यह आपकी प्राथमिकताओं पर निर्भर करता है। यहां कंप्यूटर प्रोग्रामिंग विज्ञान के क्षेत्र में प्रमुख विषयों में से कुछ की सूची है:
- एल्गोरिथ्म डिजाइन (सर्चिंग, सोर्टिंग, एन्क्रिप्शन, डिक्रिप्शन और कम्यूनिकेशन में एरर का पता लगाना, कुछ उदाहरण हैं)
- प्रोग्रामिंग लेन्गवेज / कम्पाइलर डिजाइन / ऑप्टिमाइजेशन
- आर्टिफिसियल इंटेलीजेंस फील्ड्स (पैटर्न रिकग्नाइजेशन, स्पीच रिकग्नाइजेशन, नेचुरल लेन्गवेज प्रोसेसिंग, न्यूरल नेटवर्क)
- रोबोटिक्स
- साइंटिफिक प्रोग्रामिंग
- सुपरकंप्यूटिंग
- कम्प्यूटर एडेड डिजाइन (CAD/CAM)
- वर्चुअल रिएलिटी
- कंप्यूटर ग्राफिक्स (कम्प्यूटर ग्राफिक्स आमतौर पर गलत तरीके से ग्राफिक डिजाइन या ग्राफिकल यूजर इंटरफेस डिजाइन के साथ भ्रमित है । कम्प्यूटर ग्राफिक्स एक अध्ययन का क्षेत्र है, जिसमें कंप्यूटर ग्राफिक्स सिस्टम को दर्शाना और उसको मेनीपुलेट करना बताते हैं।)
- एक उच्च शैक्षणिक डिग्री पाने पर विचार करें। आपकी एक मास्टर की डिग्री या डॉक्टरेट पाने की भी इच्छा हो सकती है।
- अपनी पसंद के प्रोग्रामिंग क्षेत्र से संबंधित टेक्नोलॉजीस और प्रोग्रामिंग लेन्गवेजेस को जानें।
संपादन करेंसलाह
- कोई बात नहीं आप किस प्रकार की प्रोग्रामिंग की कोशिश करना चाहते हैं या किस स्तर पर आप करना चाहते हैं, स्कूल या अपने स्थानीय सामुदायिक कॉलेज में कक्षाएं लेने पर विचार करें। "कंप्यूटर साइंस" जैसे शब्दों से भयभीत मत हों। कोई भी क्लास जाने से पहले, आप पहले से सुनिश्चित करने के लिए कि आप प्रोग्रामिंग की बुनियादी बातों के शिक्षण पर ध्यान देना चाहते हैं, एक प्रशिक्षक या एक परामर्शदाता के साथ जाँच करें क्योंकि "कम्प्यूटर साक्षरता" जैसी क्लासेस कार्यालय एप्लीकेशन्स के साथ परिचित करवाने पर अधिक ध्यान केंद्रित करती हैं।