वे मुझे बहुत अलग लगते हैं, और मुझे यह कहने में मुश्किल होती है कि कौन अधिक महत्वपूर्ण है।
आप एक अद्भुत सॉफ्टवेयर मेंटेनर हो सकते हैं, लेकिन अपने आप में बहुत खराब प्रोग्रामर। कुछ लोग डिबगिंग कोड में अद्भुत हैं, इसके माध्यम से अपना रास्ता ढूंढते हैं, इसे ठीक करते हैं, और इसे थोड़ा सुधारते हैं। वे अक्सर चौकीदारों की तुलना में होते हैं, लेकिन यह एक असहमति है: उनके पास एक बेहतर स्थिति के लिए सच्चा ज्ञान और जानकारी हो सकती है।
लेकिन नए कोड लिखने और एल्गोरिदम को डिजाइन और कार्यान्वित करने में वे अभी भी खराब हो सकते हैं। उन्हें इस बात की समझ हो सकती है कि चीजें आम तौर पर एक तरह से या किसी अन्य तरीके से बेहतर होती हैं, और वे इस तथ्य के बाद भी समझ सकते हैं कि एक के बाद एक डिजाइन के फायदे। लेकिन उनके पास खुद के साथ आने वाला कठिन समय है। उनके पास इस तार्किक और समस्या को सुलझाने वाली मानसिकता की गहरी समझ का अभाव है।
वे दोनों मेरे दिमाग में महत्वपूर्ण हैं। आप केवल हैकर्स नहीं चाहते हैं जो अद्भुत समाधानों के साथ आ सकते हैं, लेकिन आपके कोडबेस को देखने के लिए जाने वाले नेत्रगोलकों की अगली पीढ़ी के लिए अचूक कोड का उत्पादन करते हैं। यह प्रोटोटाइप और अल्पकालिक परियोजनाओं के लिए ठीक हो सकता है, लेकिन एक बड़े पैमाने पर जो केवल इतने लंबे समय तक उड़ सकता है।
इसलिए पहला समूह भी आवश्यक है। लेकिन वे दूसरे समूह के साथ महान सॉफ्टवेयर डिजाइन करने में सक्षम नहीं होंगे। यह काफी सहजीवी है (और यह सबसे अच्छा है जब गुण वास्तव में एक ही डेवलपर में हैं)। मुझे लगता है कि यदि आप इसे चिकन और अंडे की समस्या के रूप में देखते हैं, तो मुझे यह मानना होगा कि ऐतिहासिक कारणों से तार्किक प्रकार थोड़ा अधिक मायने रखता है, क्योंकि उन्हें सिर बनाने के लिए पहले मौजूद होना था। लेकिन इसका मतलब यह है कि वे एक सॉफ्टवेयर की दुकान में अधिक महत्वपूर्ण हैं? मुझे ऐसा नहीं लगता। आप चीजों को एक साथ जोड़कर और ज्यादा आविष्कार न करके महान और सफल सॉफ्टवेयर तैयार कर सकते हैं।