Skip to content

पोस्ट

शिल्प में महारत: एक सीनियर सॉफ्टवेयर इंजीनियर के आवश्यक कौशल

31 अक्टूबर 2012 • 5 मिनट पढ़ना

शिल्प में महारत: एक सीनियर सॉफ्टवेयर इंजीनियर के आवश्यक कौशल

जब मैं “सीनियर डेवलपर” सुनता हूं तो मैं किसी ऐसे व्यक्ति के बारे में सोचता हूं जिसने प्रोग्रामिंग में महारत हासिल की है। मैं एक ऐसे व्यक्ति के बारे में सोचता हूं जो एक सिस्टम को डिज़ाइन, कोड और टेस्ट कर सकता है। वे सिस्टम आर्किटेक्चर या कंपोनेंट डिज़ाइन के बारे में बात कर सकते हैं। वे डिज़ाइन पैटर्न को समझते और उपयोग करते हैं। यह व्यक्ति प्रदर्शन की बाधाओं का अनुमान लगा सकता है, लेकिन जानता है कि पूर्व-अनुकूलन नहीं करना चाहिए। यह व्यक्ति उपयुक्त होने पर असिंक्रोनस प्रोग्रामिंग, क्यूइंग, कैशिंग, लॉगिंग, सुरक्षा और दृढ़ता का लाभ उठाएगा। जब पूछा जाए तो वे अपनी पसंद और फायदे-नुकसान की विस्तृत व्याख्या दे सकते हैं। अधिकांश मामलों में उन्होंने ऑब्जेक्ट-ओरिएंटेड प्रोग्रामिंग और डिज़ाइन में महारत हासिल की है, यह पूर्ण नहीं है क्योंकि अन्य भाषाएं जैसे javascript, F#, scheme शक्तिशाली हैं और मूल रूप से ऑब्जेक्ट-ओरिएंटेड नहीं हैं। वे जोखिम प्रबंधन में निपुण हैं और सबसे महत्वपूर्ण बात यह है कि वे उपरोक्त सभी को अपने साथियों तक संप्रेषित कर सकते हैं।

महारत क्या है? एक सामान्यतः स्वीकृत विचार है कि किसी भी एक कौशल में महारत हासिल करने के लिए मानव शरीर और मन को एक कौशल को समझने और आंतरिक बनाने के लिए 10,000 घंटे के दोहराव की आवश्यकता होती है। यह मैल्कम ग्लैडवेल की पुस्तक Outliers में विस्तार से लिखा गया है।

मैल्कम ग्लैडवेल के Outliers में कुछ उदाहरण हैं:

मोजार्ट ने 21 की कम उम्र में अपना पहला कॉन्सर्टो लिखा। जो पहली बार में कम लगता है, लेकिन वह 11 साल की उम्र से संगीत लिख रहा था।

द बीटल्स को शुरू में नकारा गया था। उन्हें बताया गया था कि उनमें दम नहीं है और उन्हें काम की एक अलग लाइन पर विचार करना चाहिए। उन्होंने जर्मनी में 3 साल बिताए, विभिन्न स्थानों पर लगभग 1200 बार खेले, हर बार 5 से 8 घंटे की लंबाई में। वे आज के बीटल्स के रूप में फिर से उभरे जिन्हें हम जानते और प्यार करते हैं।

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

पीटर नॉर्विग भी अपने निबंध “Teach Yourself Programming in Ten Years” में 10,000 घंटे के नियम पर चर्चा करते हैं।

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

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

एक सॉफ्टवेयर इंजीनियर के कौशल सेट को मापने का एक बेहतर अधिक वस्तुनिष्ठ तरीका होना चाहिए। जॉन हॉगलैंड ने एक कंप्यूटर प्रोग्रामर के कौशल मैट्रिक्स के साथ आया है। यह एक प्रोग्रामर के कौशल स्तर को मापने का एक सामान्य, वस्तुनिष्ठ तरीका देता है, जो अन्यथा अधिकतर आंत की भावना पर छोड़ दिया जाता है।

सॉफ्टवेयर इंजीनियरों को देखते समय मैं कौशल के 4 स्तर देखता हूं: प्रकाशस्तंभ, सीनियर, मिड-लेवल और जूनियर।

प्रकाशस्तंभ (10+ वर्ष) वह है जिसने एक कौशल में महारत हासिल की है और अपने संबंधित अनुशासन को बेहतर बनाने के लिए तैयार है। कुछ उदाहरणों में शामिल हैं: टेड नेवार्ड, अंकल बॉब मार्टिन, डोनाल्ड नुथ, ओरेन एनी, पीटर नॉर्विग, लिनस टॉर्वाल्ड्स। यह आपके कौशल-सेट के आधार पर बदल सकता है।

सीनियर (7 से 10+ वर्ष, स्तर 3) वह है जिसने पिछले 10,000 घंटे एक विशिष्ट शैली में प्रोग्रामिंग में बिताए हैं। डिज़ाइन पैटर्न की मजबूत समझ है, वे उपयुक्त होने पर असिंक्रोनस प्रोग्रामिंग, क्यूइंग, कैशिंग, लॉगिंग, सुरक्षा और दृढ़ता का लाभ उठाते हैं।

यह बहुत संभव है कि एक सीनियर कभी प्रकाशस्तंभ तक नहीं पहुंचे। प्रकाशस्तंभ अक्सर बोलते और लिखते हुए पाए जाते हैं। वे सक्रिय रूप से अपने अनुशासन को प्रभावित करने की कोशिश कर रहे हैं।

मिड-लेवल (4 से 6 वर्ष, स्तर 2) वह है जो दिन-प्रतिदिन की प्रोग्रामिंग को समझता है। वे स्वतंत्र रूप से काम करते हैं और मजबूत समाधान बनाते हैं। हालांकि, उन्हें अभी तक बड़े या जटिल सिस्टम बनाने या बनाए रखने का अनुभव नहीं है। सामान्य तौर पर मिड-लेवल डेवलपर कंपोनेंट स्तर के विकास के साथ बेहतरीन हैं।

जूनियर (1 से 3 वर्ष, स्तर 1) वह है जो प्रोग्रामिंग की मूल बातें समझता है। उनके पास या तो सॉफ्टवेयर इंजीनियरिंग या कंप्यूटर साइंस में डिग्री है या वे स्व-शिक्षित हैं। उनके कोड की निरंतर समीक्षा की जाती है। एल्गोरिदम, रखरखाव और संरचना के संबंध में मार्गदर्शन दिया जाता है।

लेखक: चक कॉनवे सॉफ्टवेयर इंजीनियरिंग और जेनेरेटिव AI में विशेषज्ञता रखते हैं। उनसे सोशल मीडिया पर जुड़ें: X (@chuckconway) या उन्हें YouTube पर देखें।

↑ शीर्ष पर वापस

आपको यह भी पसंद आ सकता है