मेरी पसंदीदा प्रोग्रामिंग भाषाएँ: द जर्नी

Mar 19 2023
जब से मैं विश्वविद्यालय में था (लगभग 2009) अब तक, मैंने देखा कि कई प्रोग्रामिंग भाषाएँ उभरी हैं या 90 की भाषाएँ परिपक्व और अधिक मजबूत हो गई हैं। यह भ्रमित करने वाला था क्योंकि मुझे अपने करियर के लिए प्रोग्रामिंग लैंग्वेज चुननी थी।
क्रेडिट: https://unsplash.com/photos/IUY_3DvM__w

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

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

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

चलो शुरू करो!

A. विश्वविद्यालय/कॉलेज में पढ़ाया जाता है

क्रेडिट: https://unsplash.com/photos/vdXMSiX-n6M

हर किसी का अपना शुरुआती बिंदु होता है। मेरे लिए, मैंने 2008 के आसपास प्रोग्रामिंग सीखी जब मैं विश्वविद्यालय प्रवेश परीक्षा (SNMPTN) पास करने में असफल रहा। उस अंतराल वर्ष के दौरान, मैंने जावास्क्रिप्ट सीखा जिसे मैं फ़ायरफ़ॉक्स वेब ब्राउज़र पर आज़मा सकता हूँ। मुझे सीखने की सामग्री मेरे दोस्त से मिली जो बांडुंग में निजी विश्वविद्यालय में प्रोग्रामिंग कक्षा में भाग लेता है।

उस समय, मैं वास्तव में यह नहीं समझ पाया था कि जावास्क्रिप्ट कोड का एक सेट मुझे पॉप-अप विंडो और अलर्ट कैसे दे सकता है। यहां तक ​​कि, उस समय मुझे वास्तव में पता नहीं था कि फ्रंटएंड वेब ऐप, डेस्कटॉप ऐप, मोबाइल ऐप, बैकएंड वेब ऐप आदि हैं।

फिर, अंतत: मैंने यूनिवर्सिटी की परीक्षा पास की और यूनिवर्सिटीज पेंडिडिकन इंडोनेशिया में शामिल हो गया। मैंने 2009 में कंप्यूटर साइंस की डिग्री के लिए दाखिला लिया। यह आईटी की दुनिया और कंप्यूटर साइंस में कूदने का मेरा शुरुआती बिंदु था।

मूल रूप से, मैंने इन प्रोग्रामिंग भाषाओं को अपने व्याख्यानों या उनके सहायकों से सीखा जब मैंने कुछ पाठ्यक्रम लिए:

  • पास्कल: एल्गोरिथम और प्रोग्रामिंग I पाठ्यक्रम में दाखिला लेने पर मैंने इसे सीखा
  • C/C++: एल्गोरिथम और प्रोग्रामिंग II और डेटा स्ट्रक्चर कोर्स में दाखिला लेने पर मैंने इसे सीखा
  • जावास्क्रिप्ट: मैंने इसे वेब प्रोग्रामिंग कोर्स में दाखिला लेने के दौरान सीखा
  • PHP: वेब प्रोग्रामिंग कोर्स में नामांकित होने पर मैंने इसे सीखा
  • जावा: ऑब्जेक्ट ओरिएंटेड प्रोग्रामिंग, मोबाइल कंप्यूटिंग, डाटाबेस सिस्टम II और आर्टिफिशियल इंटेलिजेंस में नामांकित होने पर मैंने इसे सीखा
  • SQL: मैंने इसे डेटाबेस सिस्टम I और डेटाबेस सिस्टम II कोर्स में नामांकित होने पर सीखा
  • बाश: ऑपरेटिंग सिस्टम पाठ्यक्रम में नामांकन के समय मैंने इसे सीखा

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

लेकिन जब मुझे अपनी पहली फ्रीलांस नौकरी मिली, तो मैं जावास्क्रिप्ट, पीएचपी और एसक्यूएल का इस्तेमाल करता था। अतिरिक्त के रूप में मैंने HTML, CSS, XML और JSON भी सीखा। फिर, मेरी इंटर्नशिप ने इसी तरह के स्टैक का भी इस्तेमाल किया। अंत में, जब मुझे अपनी पहली नौकरी मिली तब भी मैंने HTML/CSS, Javascript, PHP और SQL का उपयोग किया। आईटी की दुनिया में पेशेवर रूप से प्रवेश करने के लिए वे भाषाएं मेरे लिए महत्वपूर्ण मोड़ हैं।

प्रोग्रामिंग भाषाएँ: जावास्क्रिप्ट, पास्कल, सी, सी ++, पीएचपी, जावा, एसक्यूएल, बाश

बी। अन्य साथियों से प्रभावित

क्रेडिट: https://unsplash.com/photos/IgUR1iX0mqM

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

  • पायथन: मैंने इस प्रोग्रामिंग भाषा को पहली बार ब्रामांडित्यो से सीखा। मैंने Django (HTTP RESTful API), Celery (Async टास्क), Sentry (एरर ट्रेसिंग टूल्स), CherryPy (HTTP RESTful API), PyGame (गेम फ्रेमवर्क) और कई चीज़ें सीखीं।
  • एरलांग: मैंने इस प्रोग्रामिंग भाषा को पहली बार ब्रामांडित्यो से सीखा। मैंने अभी मौलिक सीखा है और मैं कठिन था।
  • सी #: मैंने इस प्रोग्रामिंग भाषा को पहली बार रेंडी और यूसुफ से सीखा। मैंने माइक्रोसॉफ्ट लुमिया (विंडोज फोन ओएस) के लिए सी # के साथ ऐप बनाना सीखा।
  • ActionScript 3.0: मैंने इस प्रोग्रामिंग लैंग्वेज को पहली बार यूसुफ, गिरी और गिलांग ए. अजीज से सीखा। मैंने Adobe Flash के साथ गेम और शैक्षिक ऐप्स बनाना सीखा
  • Node.js: मैंने इस प्रोग्रामिंग भाषा को पहली बार Bramandityo से सीखा। मैंने Express.js (HTTP RESTful API) और सॉकेट.io (वेबसॉकेट फ्रेमवर्क) सीखा
  • अमृत: मैंने इस प्रोग्रामिंग भाषा को पहली बार ब्रमांडित्यो से सीखा। मैंने बैकएंड वेब एप्लिकेशन (HTTP RESTful API + WebSocket) के लिए फीनिक्स वेब फ्रेमवर्क के बारे में सीखा

गिरी POSS UPI में भी थे लेकिन उन्होंने गिलंग ए. अजीज के साथ मल्टीमीडिया प्रयोगशाला में काफी काम किया। अगर मुझे अभी भी ठीक से याद है, तो वे सहकर्मी एडोब एंबेसडर का हिस्सा थे। रेंडी और युसूफ के लिए ये दोनों माइक्रोसॉफ्ट स्टूडेंट पार्टनर थे जो उस समय माइक्रोसॉफ्ट टेक्नोलॉजीज के बारे में काफी फैलाते थे।

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

  • क्लाउड कंप्यूटिंग कंप्यूटिंग का भविष्य बन जाएगा। फिर, अब मैं Google क्लाउड प्लेटफ़ॉर्म और कई SaaS प्रदाताओं के साथ बहुत काम करता हूँ
  • पायथन अधिक लोकप्रिय हो जाएगा। फिर, पायथन IaaC के लिए Ansible, डेटा साइंस, डेटा एनालिटिक्स और डेटा साइंस के साथ प्राथमिक भाषा बन गया। लगभग क्लाउड सेवाओं में उनका पायथन एसडीके भी है। इसे JetBrains और StackOverFlow द्वारा सबसे लोकप्रिय भाषाओं के रूप में भी माना जाता है। और भी कई उपकरण जो अब व्यापक रूप से उपयोग किए जा रहे हैं
  • उन्होंने ज्ञान साझा किया जिसे वितरित कंप्यूटिंग कहा जाता है। इसका मतलब है कि आपके पास अपने वेब एप्लिकेशन की सेवा करने या ईटीएल नौकरियों जैसे व्यापक कार्य चलाने के लिए केवल एक ही सर्वर नहीं है। उस समय, उन्होंने उल्लेख किया कि अजवाइन सिर्फ एक उपकरण है जिसका उपयोग वितरित कंप्यूटिंग करने के लिए किया जा सकता है। अब अजवाइन के बगल में, हमारे पास हडूप के ऊपर अपाचे स्पार्क, संदेश-कतार के लिए अपाचे काफ्का और कई अन्य हैं
  • लिनक्स भी भविष्य है। इसलिए मैंने उनसे इस बारे में बहुत कुछ सीखा। उस समय, इंजीलवादी ने कहा था कि लिनक्स क्लाउड कंप्यूटिंग के लिए मूल्यवान नहीं है। लेकिन अब, लगभग क्लाउड प्रदाता अपने मुख्य वितरण के रूप में लिनक्स का उपयोग करते हैं। यहां तक ​​कि इंजीलवादी कंपनी लिनक्स और अन्य ओपन सोर्स सॉफ्टवेयर प्रदान करती है।
  • जावास्क्रिप्ट केवल वेब ब्राउज़र में ही नहीं चलेगी। किसी दिन, Node.js बैकएंड प्रोग्रामिंग लैंग्वेज भी बन जाएगी। फिर, अधिकांश सास सेवाओं के लिए Node.js बैकएंड बन जाता है, हम Node.js के साथ बैकएंड वेब ऐप बनाने के लिए जावास्क्रिप्ट का उपयोग कर सकते हैं या यहां तक ​​कि हाइब्रिड मोबाइल एप्लिकेशन के निर्माण के लिए जावास्क्रिप्ट का उपयोग कर सकते हैं।
  • OpenERP या अब बन गया Odoo उद्यम के लिए आशाजनक ERP समाधानों में से एक है। उस समय, कोई था जिसने कहा था कि OpenERP या Odoo एंटरप्राइज़-ग्रेड के लिए मूल्यवान नहीं है। लेकिन अब जैसा कि ब्रमांडित्यो ने कहा, ईआरपी के निर्माण के लिए ओडू एक लोकप्रिय समाधान है।
  • और कई अन्य जिन्हें मैं अभी भी याद करने की कोशिश कर रहा हूं लेकिन उनके अधिकांश कथन वास्तविक होते जा रहे हैं। मुझे लगता है कि वह मेरे अन्य साथियों की तुलना में अधिक भविष्यवादी है।

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

प्रोग्रामिंग भाषाएँ: पायथन, एरलांग, सी #, एक्शनस्क्रिप्ट 3.0, नोड.जेएस, एलिक्सिर

C. यह मेरे काम से संबंधित है

क्रेडिट: https://unsplash.com/photos/QBpZGqEMsKg

सी.1. प्रशिक्षण

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

टीम और मैंने कोडइग्निटर वेब फ्रेमवर्क का उपयोग किया जो PHP प्रोग्रामिंग भाषा के लिए है। दृश्यपटल पक्ष के लिए, मैंने jQuery और MetroUI CSS का उपयोग किया। तो उपस्थिति विंडोज 8 ओएस के समान थी। मुख्य डेटाबेस MySQL था।

ऐप को लिनक्स ऑन-प्रिमाइसेस सर्वर में तैनात किया गया था। अखंड वास्तुकला लागू किया गया था और सब कुछ एकल नोड ऑन-प्रिमाइसेस सर्वर पर होस्ट किया गया था।

क्योंकि मैंने टीम के साथ काम किया है, इसलिए हमें एक-दूसरे को सहयोग करने देने के लिए Git अनिवार्य है। मुझे यह इंटर्नशिप मेरे सीनियर से मिली है।

प्रोग्रामिंग भाषाएँ: HTML/CSS, Javascript, PHP, SQL

सी.2. मेरी पहली फ्रीलांस

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

बैकएंड भाग ने कोडइग्निटर वेब फ्रेमवर्क का उपयोग किया। दृश्यपटल भाग के लिए, अभी भी jQuery का उपयोग करें लेकिन ट्विटर बूटस्ट्रैप के साथ। मुख्य डेटासंग्रह MySQL था।

लिनक्स ऑन-प्रिमाइसेस सर्वर में तैनात ऐप। अखंड वास्तुकला लागू किया गया था। सब कुछ एकल नोड ऑन-प्रिमाइसेस सर्वर पर परिनियोजित किया गया था।

क्योंकि मैंने टीम के साथ काम किया है, इसलिए हमें एक-दूसरे को सहयोग करने देने के लिए Git अनिवार्य है। मुझे यह इंटर्नशिप फिर से मेरे सीनियर से मिली

प्रोग्रामिंग भाषाएँ: HTML/CSS, Javascript, PHP, SQL

सी.3. ऑनलाइन ट्रैवल एजेंट (ओटीए) में मेरी पहली नौकरी

मेरी पहली नौकरी 2014 से 2016 तक ओटीए कंपनी में सॉफ्टवेयर इंजीनियर की थी। वेबसाइट फ्लाइट टिकट, ट्रेन टिकट और होटल बुकिंग मुहैया कराती थी। वेब ऐप इन-हाउस कोर सर्विसेज का फ्रंट पार्ट था। मूल रूप से, यह अंतिम उपयोगकर्ता के लिए उप उत्पाद था।

मेरी टीम ने वेब पेज बनाने और मुख्य सेवाओं के साथ इंटरैक्ट करने के लिए कोडइग्निटर का इस्तेमाल किया। फ्रंटएंड भाग के लिए, हमने jQuery का उपयोग किया और कस्टम HTML/CSS टेम्प्लेट हमारे UX डिज़ाइनर द्वारा बनाए गए थे। मुख्य डेटासंग्रह MySQL था। सहयोग के लिए, हमने सबवर्जन या एसवीएन का इस्तेमाल किया।

लिनक्स ऑन-प्रिमाइसेस सर्वर में तैनात ऐप। अखंड वास्तुकला लागू किया गया था। सब कुछ एकल नोड ऑन-प्रिमाइसेस सर्वर पर परिनियोजित किया गया था।

प्रोग्रामिंग भाषाएँ: HTML/CSS, Javascript, PHP, SQL

सी.4। आईटी सलाहकार पर मेरा अनुभव

मैंने 2016 के आसपास यहां सॉफ्टवेयर इंजीनियर के रूप में काम किया। उस समय, मैंने इन-हाउस उत्पाद बनने के लिए ऑनलाइन संगीत प्रोटोटाइप बनाया। ऐप कई ट्रैक, संगीत एल्बम और कलाकारों का प्रबंधन कर सकता है। हर कोई वेब ब्राउजर या मोबाइल ऐप से अपना पसंदीदा संगीत सुन सकता है।

टीम के साथ, मैंने कई कंपोनेंट्स बनाए। मुख्य वेब एप्लिकेशन के लिए, मैंने Django और Django REST फ्रेमवर्क का उपयोग किया। इसमें मोबाइल इंजीनियर और एडमिन पेज द्वारा विकसित मोबाइल ऐप के लिए एपीआई शामिल है जो jQuery और ट्विटर बूटस्ट्रैप के शीर्ष पर बनाया गया है।

वेबसोकेट सर्वर के लिए, मैंने टोरनाडो वेबसर्वर का इस्तेमाल किया। तो पायथन का उपयोग करके, आप Node.js के साथ प्रतिस्पर्धा कर सकते हैं जिसमें सॉकेट.आईओ है। वेबसोकेट सर्वर मोबाइल एप्लिकेशन को रीयलटाइम सुविधाएं जैसे कि टिप्पणी, ऑनलाइन स्थिति और सुनने की गतिविधि साझा करने में मदद करता है। लेकिन उस समय Tornado की विशेषताएँ सीमित थीं। शायद अब विस्तार और बड़ा हो गया है।

इस कंपनी में, मैंने महत्वपूर्ण ज्ञान भी सीखा जैसे:

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

प्रोग्रामिंग भाषाएँ: एचटीएमएल/सीएसएस, जावास्क्रिप्ट, पायथन, एसक्यूएल

सी.5। डेटा एनालिटिक्स कंपनी में मेरा अनुभव

मैंने 2017 के आसपास यहां सॉफ्टवेयर इंजीनियर के रूप में काम किया। मैं जिन परियोजनाओं पर काम कर रहा था, वे थीं:

  • PHP से Python में कोर ट्रैकिंग API को फिर से लिखें क्योंकि हम AWS लैम्ब्डा में अवधारणा का प्रमाण देना चाहते हैं। मैंने सर्वर रहित एपीआई बनाने के लिए फ्लास्क और ज़प्पा का इस्तेमाल किया। संदेश कतार के लिए ट्रैकिंग API को AWS SQS, पुश नोटिफिकेशन के लिए AWS SNS, कैशिंग के लिए AWS Elasticache (Redis) और मुख्य डेटास्टोर के लिए AWS RDS (PostgreSQL) के साथ भी एकीकृत किया गया था। लेकिन इसे स्थगित कर दिया गया और मुझे दूसरी परियोजनाओं पर जाना चाहिए
  • मौजूदा PostgreSQL डेटाबेस से बड़े पैमाने पर डेटासेट खींचने के लिए Apache Sqoop + Cronjob के साथ ETL पाइपलाइन बनाएं,
  • DSP प्रदाता द्वारा प्रदान किए गए Datalake से बड़े पैमाने पर डेटासेट खींचने के लिए AWS इलास्टिक मैप रिड्यूस के शीर्ष पर Python और PySpark के साथ ETL पाइपलाइन बनाएँ। इस टास्क को क्रोनजॉब ने ट्रिगर किया था।
  • एडब्ल्यूएस इलास्टिक मैप रिड्यूस के शीर्ष पर पायथन और पाइस्पार्क के साथ ईटीएल पाइपलाइन का निर्माण वास्तविक समय डेटा स्टोरेज (एडब्ल्यूएस एस3) से बड़े पैमाने के डेटासेट को खींचने के लिए करें जो हमारी टीम द्वारा हमारे डाटालेक के लिए बनाए गए नए ट्रैकिंग एपीआई द्वारा निर्मित है। इस टास्क को क्रोनजॉब ने ट्रिगर किया था।

सी.6। डिजिटल मेंटल हेल्थकेयर कंपनी में मेरा अनुभव

मैंने यहां 2017 से 2022 तक सॉफ्टवेयर इंजीनियर के रूप में काम किया। मुझे किसी कंपनी से जुड़ने में काफी लंबा समय लगा है। मैंने उसी समय क्लाउड इंफ्रास्ट्रक्चर इंजीनियर के रूप में भी काम किया। क्योंकि उस समय हमारे पास सीमित जनशक्ति होती है। कुछ बैकएंड इंजीनियरों को हमारे क्लाउड इन्फ्रास्ट्रक्चर के प्रबंधन में भाग लेना चाहिए।

पहली बार जब मैं इस कंपनी में शामिल हुआ, तो मैंने मानसिक स्वास्थ्य देखभाल उपचार के लिए गेमिफिकेशन सेवा बनाने के लिए सॉफ्टवेयर इंजीनियर के रूप में काम किया। सेवा टाइपस्क्रिप्ट में लिखी गई थी और Express.js को वेब फ्रेमवर्क के रूप में उपयोग करती है। मुख्य डेटासंग्रह MongoDB था। कोड गुणवत्ता के लिए, मैंने TSLint और UnitTest का भी ट्रैविस CI का उपयोग किया। मैंने रैंचर v1.0 में डॉकर के रूप में सेवा तैनात की

प्रोग्रामिंग लैंग्वेज: नोड.जेएस, टाइपस्क्रिप्ट

पिछली परियोजनाओं को स्थगित कर दिया गया था। फिर, मैं पायथन और Django REST फ्रेमवर्क में लिखी गई मुख्य सेवाओं के निर्माण के लिए कोर टीम में चला गया। मुख्य सेवा में चिकित्सा सेवाएं और सेंसर सेवा शामिल हैं। चिकित्सा सेवाओं के लिए, मुख्य डेटासंग्रह PostgreSQL है। सेंसर सेवा के लिए, डेटासंग्रह MongoDB है। सेवा Rancher v1.0 पर डॉकर के रूप में तैनात है।

हमारे Django वेब ऐप के प्रतिक्रिया समय को बेहतर बनाने में मदद के लिए, हमने Celery + Redis का उपयोग किया ताकि प्रतिक्रिया अधिक तेज़ हो। कुछ ऐसे कार्य जिनमें अतुल्यकालिक कार्य की आवश्यकता होती है, मेलर सेवा से ईमेल भेजते हैं और अर्बन एयरशिप को पुश सूचना भेजते हैं।

हमारे Django वेब ऐप की कोड गुणवत्ता के लिए, हमने Flake8, Django UnitTest, Codecov और Travis CI का उपयोग किया। त्रुटि का पता लगाने के लिए, हमने संतरी का उपयोग किया और हमारे कोडबेस द्वारा उठाए गए प्रत्येक अपवाद को ट्रैक किया। हम अपने Django वेब ऐप की निगरानी के लिए Prometheus और UptimeRobot का भी उपयोग करते हैं।

चैट सर्विस के लिए हमने एजाबर्ड का इस्तेमाल किया जो एरलांग में लिखा गया है। तो, मेरे पास Erlang का उपयोग करके शीर्ष Ejabberd पर एक्सटेंशन बनाने का मौका था। Ejabberd MySQL को मुख्य डेटास्टोर के रूप में उपयोग करता है। मैंने mod_prometheus को संशोधित किया ताकि निर्यातित प्रोमेथियस को प्रति सेकंड ऑनलाइन उपयोगकर्ताओं की संख्या भेज सके। सेवा Rancher v1.0 पर Docker के रूप में तैनात की गई है। यह कठिन था लेकिन मजेदार था।

प्रोग्रामिंग भाषाएँ: पायथन, एसक्यूएल, एरलांग

मैंने यहां पहली बार क्लाउड इंफ्रास्ट्रक्चर इंजीनियर के तौर पर काम किया। पहले 2 साल से मैं अभी भी दो भूमिकाओं के लिए काम कर रहा हूं। लेकिन Q2 2020 में, मुझे क्लाउड इंफ्रास्ट्रक्चर टीम में क्लाउड इंफ्रास्ट्रक्चर इंजीनियर के रूप में पूरी तरह से काम करने के लिए ले जाया गया। इसलिए मैंने शायद ही कभी कोई प्रोग्रामिंग की हो जब मुझे समर्पित इंफ्रा आदमी होना चाहिए।

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

सॉफ्टवेयर इंजीनियर बैकग्राउंड होने के कारण, मैंने सॉफ्टवेयर बनाना भी शुरू किया, लेकिन इंफ्रास्ट्रक्चर इंजीनियरिंग के लिए। मैंने OpsGenie से एक शॉर्टकट बनाया है जो विशेष बार-बार अलर्ट के लिए AWX से Ansible Playbook चला सकता है। इसमें OpsGenie API और AWX API का उपयोग किया गया था। इस ऑटोमेशन के लिए बैकएंड सर्विस टाइपस्क्रिप्ट और Nest.js वेब फ्रेमवर्क में लिखी गई थी। मुख्य डेटासंग्रह PostgreSQL था। सेवा Rancher v1.0 पर डॉकर के रूप में तैनात है।

प्रोग्रामिंग लैंग्वेज: पायथन, टाइपस्क्रिप्ट, बाश, एसक्यूएल

सी.7. एजुकेशनल टेक्नोलॉजी कंपनी में मेरा अनुभव

मैंने 2022 में यहां क्लाउड इंफ्रास्ट्रक्चर इंजीनियर के रूप में काम किया। ज्यादातर समय, मैंने कुबेरनेट्स और सेल्फ-होस्ट किए गए डेटाबेस (MySQL Galera Cluster, Redis in Kubernetes, MySQL in Kubernetes) को मैनेज किया, इंफ्रास्ट्रक्चर रिक्वेस्ट और रिसर्च के लिए कुछ ऑटोमेशन पाइपलाइन बनाए रखी।

इस कंपनी में, मैंने कुछ प्रोजेक्ट बनाए:

  • एंबेसडर और क्लाउड फ्लेयर ऑटोमेशन। पहले, इसे मैन्युअल रूप से जोड़ा गया था और समय की बर्बादी हुई थी। मैंने नए एंबेसडर मेनिफेस्ट को पार्स करने के लिए BASH स्क्रिप्ट का उपयोग किया और Gitlab CI के माध्यम से स्वचालित रूप से क्लाउड फ्लेयर CNAME बनाया। लेकिन फिर, हम जीथब एक्शन में चले गए।
  • VPN सर्वर के लिए Pritunl Enterprise परिनियोजित करें। प्रिटुनल वीपीएन मेश का उपयोग करके वीपीएन सर्वर से कुबेरनेट्स पॉड तक पहुंच को भी एकीकृत किया। मैंने Kustomize और Gitlab CI का उपयोग करके प्रिटुनल वीपीएन मेश को तैनात किया।
  • उपयोगकर्ता पहुंच के लिए अन्सिबल प्लेबुक का विस्तार। मैंने प्रिटुनल एंटरप्राइज़ के साथ इंटरैक्ट करने के लिए प्रिटुनल एपीआई जोड़ा जैसे कि एमएफए एक्टिवेशन यूआरएल लाना, डिफॉल्ट पासवर्ड सेट करना और उचित वीपीएन प्रोफाइल डाउनलोड करना। मैंने इस प्रोजेक्ट पर Python, Ansible और Gitlab CI के साथ काम किया। लेकिन प्रबंधन द्वारा किए गए कुछ निर्णयों के बाद, हम Gitlab CI से Github Action में चले गए। इसलिए परियोजना में कुछ बदलाव आवश्यक थे।
  • BASH स्क्रिप्ट जेनकिंस का उपयोग करके किसी वीपीएन प्रोफ़ाइल को रीसेट करने के लिए स्वचालन बनाएँ

प्रोग्रामिंग भाषाएँ: पायथन, बाश

सी.8. अभी आईटी सलाहकार के पद पर कार्यरत हैं

अब, मैं यहां जनवरी 2023 से क्लाउड इंफ्रास्ट्रक्चर इंजीनियर के रूप में काम कर रहा हूं। ज्यादातर समय, मुझे इंफ्रास्ट्रक्चर रिक्वेस्ट ऑटोमेशन से संबंधित टिकट लेने का काम सौंपा जाता है। लेकिन मैंने ऑन-कॉल सप्ताह के दौरान एड-हॉक इंफ्रास्ट्रक्चर अनुरोधों पर भी काम किया। यहां तक ​​कि यह एल1 या एल2 ऑन-कॉल इंजीनियर बन गया है।

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

इसलिए इस कंपनी में मेरा मुख्य उद्देश्य ज्यादा से ज्यादा ऑटोमेशन बनाना है।

प्रोग्रामिंग भाषाएँ: पायथन, बाश

D. क्योंकि यह मल्टी प्लेटफॉर्म है

क्रेडिट: https://unsplash.com/photos/M5tzZtFCOfs

9 से अधिक वर्षों के बाद, मैंने महसूस किया कि कुछ ऐसी भाषाएँ हैं जिन्हें बहु-मंच माना जा सकता है। यह बहु-मंच क्यों है? क्योंकि यह कई प्लेटफॉर्म पर चल सकता है जिनका हम अभी उपयोग कर सकते हैं। मेरी राय में, यहाँ कुछ प्रसिद्ध मंच हैं जो पिछले 9 वर्षों से लोकप्रिय हैं:

  • सीएलआई
  • डेस्कटॉप अनुप्रयोग
  • दृश्यपटल वेब अनुप्रयोग
  • बैकएंड वेब अनुप्रयोग
  • मोबाइल एप्लिकेशन (स्मार्टफ़ोन ऐप, स्मार्टवॉच ऐप, आदि)
  • माइक्रोकंट्रोलर (IoT, रोबोटिक्स, आदि)
  • जावा: सीएलआई, डेस्कटॉप ऐप, बैकएंड वेब ऐप, मोबाइल ऐप, माइक्रोकंट्रोलर
  • जावास्क्रिप्ट / टाइपस्क्रिप्ट: सीएलआई, डेस्कटॉप ऐप, फ्रंटएंड वेब ऐप, बैकएंड वेब ऐप, मोबाइल ऐप, माइक्रोकंट्रोलर
  • पायथन: सीएलआई, डेकस्टॉप ऐप, बैकएंड वेब ऐप, मोबाइल ऐप, माइक्रोकंट्रोलर
  • सी #: सीएलआई, डेकस्टॉप ऐप, बैकएंड वेब ऐप, मोबाइल ऐप, माइक्रोकंट्रोलर

लेकिन मैंने Java या C# को क्यों नहीं चुना? दोनों भाषाएँ आशाजनक हैं और यहाँ तक कि पायथन की तुलना में अधिक रिक्तियाँ हैं। मैं अभी भी अपनी प्राथमिक प्रोग्रामिंग भाषाओं के रूप में पायथन का उपयोग करता हूं क्योंकि यह आसान है। यह ओओपी का समर्थन करता है लेकिन जावा जितना कठिन नहीं है। इसके अलावा, पायथन इंडेक्स पैकेज (पीआईपी) से पुस्तकालय स्वतंत्र और विविध हैं। साथ ही पायथन के पास लोकप्रिय बैकएंड वेब फ्रेमवर्क है जैसे कि Django, Flask, Falcon, Tornado और कई अन्य।

ईमानदार होने के लिए यह वास्तव में मुझे पायथन के साथ एक एप्लिकेशन बनाने में मदद करता है। इसके अलावा, जब मैं Ansible. मुझे लगता है कि मैं अपने पायथन कौशल को अन्सिबल मॉड्यूल विकसित करने के लिए प्रबंधित कर सकता हूं। यह मेरा उदाहरण Ansible मॉड्यूल है जिसे मैंने व्यक्तिगत उपयोग के लिए बनाया है:

इसके अलावा, मैंने पाया है कि पाइथन अधिक दिलचस्प है जब मुझे सेंट्री और सेलेरी जैसे टूल मिल गए हैं जो मुझे मेरे Django वेब एप्लिकेशन का समर्थन करने के लिए अधिक लचीला टूल बनाने में मदद कर सकते हैं। AWX (ओपन सोर्स Ansible Tower) भी ऐसे उपकरण हैं जो मुझे Ansible playbook को प्रबंधित करने में बहुत मदद करते हैं। इसके अलावा, मैं Apache Spark के लिए PySpark के साथ ETL नौकरियां बना सकता हूं। तो यह मुझे अन्य भाषाओं की तुलना में पायथन में अधिक रुचि देता है। ईमानदार होने के लिए, यह पायथन के बारे में मेरी व्यक्तिपरक राय है।

प्रोग्रामिंग भाषाएँ: पायथन, जावास्क्रिप्ट

ई। मेरे पसंदीदा टूल के मुख्य भाग के रूप में

क्रेडिट: https://unsplash.com/photos/oamw52SCGi0

पिछले 9 वर्षों से, भले ही वह वास्तविक परियोजनाओं या व्यक्तिगत परियोजनाओं के उद्देश्य से हो। अब तक, पायथन पर आधारित मेरे पसंदीदा उपकरण हैं:

  • Django, पायथन के लिए एक सुपर वेब फ्रेमवर्क
  • फ्लास्क, पायथन के लिए एक माइक्रो वेब फ्रेमवर्क
  • अजवाइन, एक कार्य कतार चौखटा। क्यू बैकएंड रेडिस, रैबिटएमक्यू और कई अन्य हो सकते हैं।
  • Gunicorn, Django या Flask के लिए वेब सर्वर
  • संतरी, कई प्लेटफार्मों के लिए त्रुटि अनुरेखण उपकरण
  • HTTP अनुरोधों को निष्पादित करने के लिए कुछ पुस्तकालय, डेटाबेस (MySQL, PostgreSQL, Redis, MongoDB, Elasticsearch), आदि तक पहुँचने के लिए।
  • ETL स्क्रिप्ट बनाने के लिए कुछ लाइब्रेरी (PySpark, boto3, पांडा, आदि)

क्लाउड इंफ्रास्ट्रक्चर इंजीनियर बनने पर मैंने जिन कुछ टूल का इस्तेमाल किया, वे हैं:

  • क्लाउड संसाधनों और रिमोट कॉन्फ़िगरेशन टूल के प्रावधान के लिए एक कोड के रूप में उत्तरदायी, बुनियादी ढांचा। पायथन में लिखा गया
  • AWX (ओपन सोर्स Ansible Tower), Python, Celery और Django में लिखा गया है
  • प्रोमेथियस, सर्वर और एप्लिकेशन के लिए निगरानी। गो में लिखा है।
  • ग्राफाना, बहुउद्देश्यीय डैशबोर्ड समाधान। Node.js में लिखा गया है।
  • टेराफॉर्म, क्लाउड संसाधनों के प्रावधान के लिए। गो में लिखा है।
  • पैकर, गो में लिखा गया है।
  • वॉल्ट, गो में लिखा गया है।
  • डॉकर, गो में लिखा गया है।
  • हेल्म चार्ट्स, गो में लिखा गया है।
  • कुबेरनेट्स, गो में लिखा गया है।
  • ArgoCD, गो में लिखा गया है।

पायथन और गो दोनों ही उपकरण का मुख्य हिस्सा हैं जो मुझे इस समय बहुत पसंद हैं। यह बिंदु एक मजबूत कारण बन सकता है कि मैं पायथन को क्यों चुनूं, फिर गो।

प्रोग्रामिंग भाषाएँ: पायथन, गो

एफ। आगे क्या है

9 वर्षों से अधिक के मेरे अनुभवों के आधार पर उपरोक्त खंड पूरी तरह से मेरी राय हैं। लेकिन अगर आप रुझान देखना चाहते हैं कि कौन से अधिक उद्देश्य सर्वेक्षण पर आधारित हैं, तो आप इन सर्वेक्षणों को देख सकते हैं:

आशा है कि आप 2023 और उसके बाद अपनी पसंदीदा प्रोग्रामिंग भाषाएं चुनेंगे।

निष्कर्ष

अभी के लिए, मैं इन प्रोग्रामिंग भाषाओं को चुनता हूँ:

  • Python, I really love this programming language since at university and my workplaces give me chances to use it for real projects. Moreover, Python has wide range support from just CLI app, web app, machine learning, data science, cloud infrastructure engineering and many mores. Moreover, you could see that Python is mentioned for 49 times in this article.
  • Javascript / Node.js / Typescript, as an alternative I choose Javascript because I learn this programming language since at university as well and still useful if I have to build backend web application beside Python. But for now, I like to build backend web application with Nest.js only. I don’t have experience in building mobile app or frontend web app with Javascript.
  • जाओ, मुझे वास्तव में इसमें निवेश करने के लिए समय चाहिए। क्योंकि मेरे पसंदीदा उपकरण जैसे कुबेरनेट्स और कुछ हैशिकॉर्प स्टैक गो में लिखे गए हैं। किसी दिन अगर मैं उन टूल्स के लिए एक्सटेंशन बनाना चाहता हूं, तो मुझे इसे गो में लिखना चाहिए। अधिकांश क्लाउड नेटिव

यह सिर्फ मेरी निजी राय है, हर किसी के अलग-अलग विचार और पसंदीदा प्रोग्रामिंग भाषाएं हो सकती हैं।

पढ़ने के लिए धन्यवाद।