markuswinkler द्वारा फोटो (https://unsplash.com/@markuswinkler)
डेवलपर्स के बारे में खबरें पढ़ना और यह धारणा न बनाना मुश्किल है कि टैलेंट की कमी है। यह बात सही भी लगती है, है ना? कंपनियाँ किसी को प्रति वर्ष $100,000 का भुगतान नहीं करेंगी यदि वे आसानी से किसी सस्ते विकल्प के साथ वह नौकरी भर सकतीं। लेकिन डेवलपर्स की कोई कमी नहीं है। मेरी बात पर विश्वास नहीं है?
एक सामान्य डेवलपर जॉब डिस्क्रिप्शन को कॉपी-पेस्ट करें और LinkedIn पर एक फ्री जॉब पोस्टिंग बनाएँ। आपको कम से कम एक दर्जन आवेदक मिल जाएँगे। जॉब को प्रमोट करने के लिए LinkedIn को भुगतान करें और आपको दर्जनों और आवेदक मिल जाएँगे। एक हायरिंग मैनेजर के रूप में, मैंने ऐसा दर्जनों बार होते देखा है।
किसी रोल के लिए आवेदन करने वाले सैकड़ों लोगों के साथ, आपको उन्हें प्रति वर्ष 100 हज़ार से कम की पेशकश (lowball) करने में सक्षम होना चाहिए, है ना?
गलत।
डेवलपर्स की कोई कमी नहीं है
अधिक सटीक रूप से कहें तो, खुद को डेवलपर कहने वाले लोगों की कोई कमी नहीं है। कमी योग्य (qualified) डेवलपर्स की है।
फर्स्ट एड देने से आप डॉक्टर नहीं बन जाते। स्प्रेडशीट का उपयोग करने से आप अकाउंटेंट नहीं बन जाते। और एक ऐप बनाने से आप डेवलपर नहीं बन जाते।
यह डेवलपमेंट के किसी भी डोमेन के लिए सच है। React जानने से आप एक योग्य फ्रंटएंड डेव (frontend dev) नहीं बन जाते। Node.js या Django जानने से आप एक योग्य बैकएंड डेव (backend dev) नहीं बन जाते। और Solidity में ERC-721 टोकन की प्रोग्रामिंग करने से आप एक योग्य ब्लॉकचेन डेवलपर नहीं बन जाते। उस हिसाब से देखा जाए तो, एक न्यूरल नेट (neural net) को ट्रेन करने से आप डीप लर्निंग इंजीनियर नहीं बन जाते।
फ्रंटएंड इंजीनियरिंग का एक उदाहरण
फ्रंटएंड डेवलपमेंट को देखना और यह सोचना आसान है कि “ओह, मैं बस कुछ divs को React कंपोनेंट्स के रूप में वायरफ्रेम करूँगा, कुछ CSS जोड़ दूँगा, और लो, मेरे पास एक वेब ऐप है।” खैर, आपके पास ऐप तो होगा, लेकिन संभावना है कि वह धीमा, अव्यवस्थित और खराब SEO वाला होगा।
आपको विभिन्न ब्राउज़रों का ध्यान रखना आना चाहिए। आपको यह जानना होगा कि कंपोनेंट लोड को कैसे ऑप्टिमाइज़ किया जाए और सही समय और स्थान पर APIs को कैसे कॉल किया जाए। आपको एक ऐसा कोडबेस (codebase) तैयार करना आना चाहिए जिसमें कई इंजीनियर एक-दूसरे के काम में बाधा डाले बिना योगदान दे सकें। आपको पता होना चाहिए कि आप एक ही काम करने वाले किसी दूसरे CSS समाधान के बजाय एक विशेष समाधान को क्यों चुन रहे हैं। अपनी उत्पादकता (productivity) में सुधार के लिए आपको उचित रूप से आधुनिक टूलिंग (modern tooling) का उपयोग करना चाहिए। यदि पेज धीरे लोड हो रहा है, तो आपको उसे तेज़ करने का तरीका पता होना चाहिए। आपको पता होना चाहिए कि SEO और मोबाइल ऑप्टिमाइज़ेशन कैसे काम करता है। आपको कई प्रकार की लाइब्रेरीज़ (libraries) का ज्ञान होना चाहिए ताकि आप बार-बार एक ही चीज़ को शुरू से न बनाएँ (reinvent the wheel)। और हालाँकि आपको UI या UX विशेषज्ञ होने की आवश्यकता नहीं है, लेकिन आपको कम से कम बेसिक्स (basics) पता होने चाहिए। आपको मेमोरी लीक्स (memory leaks) की पहचान करनी चाहिए और उनसे बचना चाहिए। आपको अपने ऐप को इस तरह से आर्किटेक्ट करना चाहिए कि A/B टेस्ट्स आसानी से चल सकें। आपके आर्किटेक्चर (architecture) में सही एब्स्ट्रैक्शन्स (abstractions) होने चाहिए ताकि फीचर्स और लाइब्रेरीज़ को बदलना आसान हो।
कंपनियों को अंततः कड़ी ठोकर खाकर यह पता चलता है कि खुद को डेवलपर कहने वाला हर व्यक्ति वास्तव में यह नहीं जानता कि वह क्या कर रहा है। और चूँकि खराब सॉफ्टवेयर किसी कंपनी के रेवेन्यू को पूरी तरह से डूबा सकता है, इसलिए वे जानती हैं कि केवल योग्य डेवलपर्स को ही काम पर रखना है।
आइए ब्लॉकचेन डेवलपर्स के साथ भी यही अभ्यास करें।
केवल मेननेट (mainnet) पर स्मार्ट कॉन्ट्रैक्ट (smart contract) डाल देने मात्र से, आप अपने आप एक स्मार्ट कॉन्ट्रैक्ट डेवलपर नहीं बन जाते।
तो आपको एक योग्य स्मार्ट कॉन्ट्रैक्ट डेवलपर क्या बनाता है?
पिछले उदाहरण की तरह ही, आप यह भी जानते हैं कि ‘क्या नहीं करना चाहिए’ की एक लंबी सूची होती है। केवल इसलिए कि आपका कोड कंपाइल (compile) हो जाता है और टेस्ट पास कर लेता है, इसका मतलब यह नहीं है कि वह एक अच्छा कोड है। बैकएंड इंजीनियर्स जानते हैं कि वे डेटाबेस को जैसे चाहें वैसे इंडेक्स (index) कर सकते हैं, लेकिन किसी के नाम के पहले अक्षर के आधार पर इंडेक्सिंग करना एक बुरा विचार है क्योंकि सामान्य अक्षरों वाले इंडेक्स ओवरलोड हो जाएँगे। फ्रंटएंड डेवलपर्स जानते हैं कि जब इंटरनेट धीमा हो तो खाली पेजों से बचने के लिए कम से कम कंपोनेंट माउंट्स को API कॉल्स पर निर्भर होना चाहिए। वे जानते हैं कि कुछ CSS पैटर्न्स कुछ खास ब्राउज़रों पर काम नहीं करते हैं या दूसरों की तुलना में कम परफॉर्म करते हैं।
क्या आप ब्लॉकचेन के लिए इसी तरह की सूची बना सकते हैं? (Google किए बिना?) अभी प्रयास करें। सूची कितनी लंबी है? क्या आप सुनिश्चित हैं कि आपने प्रमुख मुद्दों को कवर कर लिया है?
हायरिंग मैनेजर्स (Hiring managers) यह विश्वास करना चाहते हैं कि आपको पता है कि यह सूची क्या है। 4 सप्ताह के बुनियादी अध्ययन और सरल स्मार्ट कॉन्ट्रैक्ट्स बनाने के बाद आप इस बात से गहराई से परिचित नहीं हो जाते कि क्या ‘नहीं’ करना है।
हमने अभी कवर किया कि क्या नहीं करना है, लेकिन बार-बार आने वाली समस्याओं को हल करने के अच्छे तरीके जानने के बारे में क्या? क्या आप जानते हैं कि पैटर्न्स (patterns) क्या हैं, या क्या आप पहिए का फिर से बुरी तरह से आविष्कार (reinvent the wheel) करने जा रहे हैं क्योंकि आप इंस्टीट्यूशनल नॉलेज (institutional knowledge) का पुन: उपयोग नहीं कर रहे हैं? क्या आप जानते हैं कि आपको L2 पर होना चाहिए या नहीं, और यदि हाँ, तो आप L1 के साथ कैसे संचार करने जा रहे हैं? क्या आप सभी आवश्यकताओं से एक कदम पीछे हटकर यह सोच सकते हैं कि अपने डेटा को गैस (gas) के लिहाज़ से कुशल तरीके से और इस तरह से कैसे मॉडल किया जाए जो भविष्य के बदलावों के लिए लचीला हो? सुरक्षा (Security) एक बहुत बड़ा मुद्दा है। एक ही तरह के हैक्स बार-बार होते हैं क्योंकि डेवलपर्स आमतौर पर इसका अध्ययन नहीं करते हैं। इस वजह से प्रतिष्ठित हायरिंग मैनेजर्स ब्लॉकचेन डेवलपर्स को काम पर रखने से डरते हैं।
इनमें से कोई भी बात गेटकीप (gatekeep) करने या कृत्रिम विशिष्टता (artificial exclusivity) बनाए रखने के लिए नहीं है। न ही इसका उद्देश्य उन लोगों को नीचा दिखाना है जो अपनी यात्रा के शुरुआती चरण में हैं।
मुख्य बात यह है कि यदि आप केवल ऑनलाइन कोर्सेज पर आधारित कुछ सरल प्रोजेक्ट्स ही दिखा सकते हैं, तो कंपनियों के पास आपके आवेदन को अस्वीकार करने का एक ठोस कारण है।
गिलास आधा भरा हुआ

https://pixabay.com/photos/optimism-optimistic-pessimism-619018/ से फोटो
लेकिन सिर्फ इसलिए कि गिलास 50% भरा हुआ है, इसका मतलब यह नहीं है कि यह आधा खाली है।
तथ्यों की एक उपयोगी और सच्ची ‘गिलास-आधा-भरा’ वाली व्याख्या भी है।
कोई भी समझदार व्यक्ति प्रोग्रामिंग के लगभग किसी भी डोमेन में एक सीनियर इंजीनियर बन सकता है यदि वह पर्याप्त रूप से कड़ी और लंबी ट्रेनिंग करे। किसी विषय में महारत हासिल करने में कुछ भी जादुई या रहस्यमय नहीं है। ऐसा लाखों बार किया जा चुका है, और लाखों बार फिर से किया जाएगा।
वास्तव में, आप इसे पूरी तरह से अपने दम पर कर सकते हैं। अब निश्चित रूप से, हमारा मानना है कि RareSkills सीनियर इंजीनियर बनने के आपके रास्ते को तेज़ कर सकता है। लेकिन इस यात्रा को शुरू करना और पूरा करना आपके हाथ में है।
इससे आपको डरना नहीं चाहिए, बल्कि इससे आपको उत्साहित होना चाहिए। आपको बस अपने साथियों से आगे जाना है, फिर कंपनियाँ आपके पीछे आएँगी। यह इतना आसान है। हाँ, यह कड़ी मेहनत का काम है, लेकिन अगर कोई आपसे यह कहता है कि आप बिना कड़ी मेहनत के एक मनचाही और उच्च वेतन वाली नौकरी पा सकते हैं, तो वह आपको धोखा दे रहा है (selling snake oil)। हाँ, यह बहुत अद्भुत है कि आप एक कठिन और महंगे लॉ स्कूल, LSAT और बार एग्जाम से गुज़रे बिना एक वकील के बराबर सैलरी पा सकते हैं। लेकिन स्मार्ट तरीके से काम करने का मतलब कड़ी मेहनत से बचना नहीं है। इसका मतलब उन गतिविधियों पर कड़ी मेहनत करना है जो कुशलता से परिणाम देती हैं।
कड़ी मेहनत की सही परिभाषा
कड़ी मेहनत का मतलब अवांछनीय (undesirable) काम नहीं है।
एक भयानक बॉस के लिए बिना भविष्य वाली नौकरी (dead end job) में कड़ी मेहनत करना, बुरी मेहनत है जिससे आपको बचना चाहिए। एक दुर्लभ कौशल (rare skill) प्राप्त करने के लिए कड़ी मेहनत करना जो आपको एक रोमांचक क्षेत्र में सबसे आगे रखता है, एक वांछनीय (desirable) कड़ी मेहनत है। ऐसी चीजों का अध्ययन करने में कड़ी मेहनत करना जो वास्तव में आपके ज्ञान या नौकरी के आवेदन को आगे नहीं बढ़ाती है, अवांछनीय कड़ी मेहनत है। वह कड़ी मेहनत जो आपको आपके लक्ष्य की ओर लंबी छलांग (quantum leaps) लगाने में मदद करती है, वांछनीय कड़ी मेहनत है।
कंपनियाँ अच्छे कारणों से सीनियर इंजीनियर्स को अत्यधिक प्राथमिकता देती हैं। इससे बचा नहीं जा सकता। एक योग्य डेवलपर बनने का कोई शॉर्टकट नहीं है।
हालाँकि, यदि आप अत्यधिक कुशलता (peak efficiency) के साथ अध्ययन करते हैं, तो यह यात्रा उतनी लंबी नहीं हो सकती है जितना आप सोचते हैं।
हम यहाँ इसी लिए हैं। यदि आप इसे किस्मत पर छोड़ दें तो एक सीनियर इंजीनियर बनने में सालों लग जाते हैं। हमारा मानना है कि यदि आप प्रेरित और चतुर लोगों के साथ, और उन लोगों के मार्गदर्शन में अध्ययन करते हैं जिन्होंने यह यात्रा पूरी कर ली है, तो यात्रा बहुत छोटी हो सकती है।
हम चाहते हैं कि आप एक योग्य डेवलपर बनें। वास्तव में उनकी कमी है।
मूल रूप से 11 नवंबर, 2022 को प्रकाशित