पोस्ट
शिल्प में महारत: एक सीनियर सॉफ्टवेयर इंजीनियर के आवश्यक कौशल
31 अक्टूबर 2012 • 5 मिनट पढ़ना

जब मैं “सीनियर डेवलपर” सुनता हूं तो मैं किसी ऐसे व्यक्ति के बारे में सोचता हूं जिसने प्रोग्रामिंग में महारत हासिल की है। मैं एक ऐसे व्यक्ति के बारे में सोचता हूं जो एक सिस्टम को डिजाइन, कोड और परीक्षण कर सकता है। वे सिस्टम आर्किटेक्चर या घटक डिजाइन के बारे में बात कर सकते हैं। वे डिजाइन पैटर्न को समझते हैं और उपयोग करते हैं। यह व्यक्ति प्रदर्शन की बाधाओं का अनुमान लगा सकता है, लेकिन पूर्व-अनुकूलन न करना जानता है। यह व्यक्ति जब उपयुक्त हो तो अतुल्यकालिक प्रोग्रामिंग, कतारबद्धता, कैशिंग, लॉगिंग, सुरक्षा और दृढ़ता का लाभ उठाएगा। जब पूछा जाए तो वे अपनी पसंद और पेशेवरों और विपक्षों का विस्तृत विवरण दे सकते हैं। अधिकांश मामलों में उन्होंने ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग और डिजाइन में महारत हासिल की है, यह एक निरपेक्ष नहीं है अन्य भाषाएं जैसे जावास्क्रिप्ट, F#, स्कीम शक्तिशाली हैं और हृदय से ऑब्जेक्ट-ओरिएंटेड नहीं हैं। वे जोखिम प्रबंधन में निपुण हैं और सबसे महत्वपूर्ण बात यह है कि वे अपने साथियों को पूर्वोक्त सभी बातों को संप्रेषित कर सकते हैं।
महारत क्या है? एक सामान्यतः स्वीकृत विचार है कि किसी भी एक कौशल में महारत हासिल करने के लिए मानव शरीर और मन को किसी कौशल को समझने और आंतरिक करने के लिए 10,000 घंटे की पुनरावृत्ति की आवश्यकता होती है। यह मैल्कम ग्लैडवेल की पुस्तक Outliers में विस्तार से लिखा गया है।
मैल्कम ग्लैडवेल के Outliers में कुछ उदाहरण हैं:
मोजार्ट ने 21 साल की कम उम्र में अपनी पहली कॉन्सर्टो बनाई। जो पहली नजर में युवा लगता है, लेकिन वह 11 साल की उम्र से संगीत लिख रहे हैं।
द बीटल्स को शुरुआत में खारिज कर दिया गया था। उन्हें कहा गया कि उनके पास सरसों नहीं है और उन्हें काम की एक अलग लाइन पर विचार करना चाहिए। उन्होंने जर्मनी में 3 साल बिताए, विभिन्न स्थानों पर लगभग 1200 बार प्रदर्शन किया, प्रत्येक बार 5 से 8 घंटे की लंबाई में। वे आज हम जिन द बीटल्स को जानते और प्यार करते हैं, उनके रूप में फिर से उभरे।
और अंत में, बिल गेट्स ने 20 साल की उम्र में हार्वर्ड से बाहर निकल कर माइक्रोसॉफ्ट की स्थापना की। कुछ के लिए यह मूर्खतापूर्ण लग सकता है, लेकिन 20 साल की उम्र में विचार किया जाए तो उन्होंने अपने युवा जीवन का लगभग आधा समय प्रोग्रामिंग में बिताया था। 1975 में, दुनिया में शायद केवल 50 लोगों के पास उनके जैसा अनुभव था। उनके अनुभव ने उन्हें माइक्रोसॉफ्ट में भविष्य को देखने की दूरदर्शिता दी।
पीटर नॉर्विग ने अपने निबंध “Teach Yourself Programming in Ten Years” में भी 10,000 घंटे के नियम पर चर्चा की है।
पुस्तक Mastery by George Leonard में, एक कौशल में महारत हासिल करने के तरीके पर विस्तृत विवरण दिया गया है। किसी को कौशल का बार-बार अभ्यास करना चाहिए। जितनी अधिक पुनरावृत्ति होगी, आप प्रत्येक पुनरावृत्ति में अंतर के बारे में अधिक जागरूक हो जाएंगे। केवल इस अंतर्दृष्टि के साथ ही आप बेहतर हो सकते हैं।
सॉफ्टवेयर उद्योग के शीर्षक (जूनियर, मिड-लेवल और सीनियर) भ्रामक हैं और संगठन से संगठन तक असंगत हैं। मैंने ऐसी कंपनियों के साथ काम किया है, जिन्होंने एक सीनियर डेवलपर को किसी ऐसे व्यक्ति के रूप में परिभाषित किया है जिसके पास 5 साल या उससे अधिक का अनुभव है। अनुभव की गुणवत्ता का कोई उल्लेख नहीं है, बस यह कि वे 5 साल के लिए कंप्यूटर के सामने बैठे हैं। इन लोगों के साथ काम करने में, उनमें से कई ने अभी तक ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग को समझा नहीं था, फिर भी उन्हें सीनियर डेवलपर माना जाता था।
एक सॉफ्टवेयर इंजीनियर के कौशल सेट को मापने के लिए एक बेहतर अधिक उद्देश्यपूर्ण तरीका होना चाहिए। John Haugeland एक कंप्यूटर प्रोग्रामर के कौशल मैट्रिक्स के साथ आया है। यह एक प्रोग्रामर के कौशल स्तर को मापने का एक सामान्य, उद्देश्यपूर्ण तरीका देता है, जो अन्यथा ज्यादातर अंतर्ज्ञान के लिए छोड़ दिया जाता है।
सॉफ्टवेयर इंजीनियरों को देखते समय मैं कौशल के 4 स्तर देखता हूं: लुमिनरी, सीनियर, मिड-लेवल और जूनियर।
लुमिनरी (10+ साल) वह है जिसने एक कौशल में महारत हासिल की है और अपने संबंधित अनुशासन को बेहतर बनाने के लिए निकल पड़ा है। कुछ उदाहरणों में शामिल हैं: Ted Neward, Uncle Bob Martin, Donald Knuth, Oren Eini, Peter Norvig, Linus Torvalds। यह आपके कौशल सेट के आधार पर बदल सकता है।
सीनियर (7 से 10+ साल, स्तर 3) वह है जिसने पिछले 10,000 घंटे एक विशिष्ट शैली में प्रोग्रामिंग में बिताए हैं। डिजाइन पैटर्न की एक मजबूत समझ है। वे जब उपयुक्त हो तो अतुल्यकालिक प्रोग्रामिंग, कतारबद्धता, कैशिंग, लॉगिंग, सुरक्षा और दृढ़ता का लाभ उठाते हैं।
यह बहुत संभव है कि एक सीनियर कभी लुमिनरी तक नहीं पहुंचे। लुमिनरी अक्सर बोलते और लिखते हुए पाए जाते हैं। वे सक्रिय रूप से अपने अनुशासन को प्रभावित करने की कोशिश कर रहे हैं।
मिड-लेवल (4 से 6 साल, स्तर 2) वह है जो दिन-प्रतिदिन की प्रोग्रामिंग को समझता है। वे स्वतंत्र रूप से काम करते हैं और मजबूत समाधान बनाते हैं। हालांकि, उन्हें अभी तक बड़ी या जटिल प्रणालियों को बनाने या बनाए रखने का अनुभव नहीं हुआ है। सामान्य तौर पर मिड-लेवल डेवलपर घटक स्तर के विकास के साथ बहुत अच्छे होते हैं।
जूनियर (1 से 3 साल, स्तर 1) वह है जो प्रोग्रामिंग की मूल बातों को समझता है। उनके पास सॉफ्टवेयर इंजीनियरिंग या कंप्यूटर विज्ञान में डिग्री है या वे स्व-सिखाए गए हैं। उनके कोड की लगातार समीक्षा की जाती है। एल्गोरिदम, रखरखाव और संरचना के संबंध में मार्गदर्शन दिया जाता है।
लेखक: Chuck Conway एक AI इंजीनियर हैं जिनके पास सॉफ्टवेयर इंजीनियरिंग का लगभग 30 साल का अनुभव है। वह व्यावहारिक AI सिस्टम बनाते हैं—कंटेंट पाइपलाइन, इंफ्रास्ट्रक्चर एजेंट, और ऐसे टूल जो वास्तविक समस्याओं को हल करते हैं—और अपनी सीख को साझा करते हैं। सोशल मीडिया पर उनसे जुड़ें: X (@chuckconway) या YouTube और SubStack पर उनसे मिलें।