महान हैकर्स
Originalजुलाई 2004
(यह निबंध Oscon 2004 में दिए गए एक वक्तव्य से प्राप्त है.)
कुछ महीने पहले मैंने एक नया पुस्तक पूरी की, और समीक्षाओं में मैं शब्दों जैसे "उत्प्रेरक" और "विवादास्पद" देखता हूं। "मूर्खतापूर्ण" जैसे शब्दों का तो कहना ही क्या।
मैं पुस्तक को विवादास्पद बनाना नहीं चाहता था। मैं इसे कुशल बनाने की कोशिश कर रहा था। मैं लोगों का समय नहीं बर्बाद करना चाहता था जो उन्हें पहले से ही मालूम चीजों को बताता। यह अधिक कुशल है केवल उन्हें अंतर देना। लेकिन मुझे लगता है कि यह एक चौंकाने वाली पुस्तक देगा।
एडिसन
कौन सा विचार सबसे विवादास्पद है, इसके बारे में कोई विवाद नहीं है: यह सुझाव कि धन में अंतर इतना बड़ा समस्या नहीं हो सकता जितना हम सोचते हैं।
मैंने पुस्तक में नहीं कहा कि धन में अंतर एक अच्छी चीज है। मैंने कहा कि कुछ स्थितियों में यह अच्छी चीजों का संकेत हो सकता है। एक धड़कता सिर दर्द अच्छी चीज नहीं है, लेकिन यह किसी अच्छी चीज का संकेत हो सकता है - उदाहरण के लिए, कि आप सिर पर मार खाने के बाद होश में आ रहे हैं।
धन में अंतर उत्पादकता में अंतर का संकेत हो सकता है। (एक समाज में, वे एक ही हैं।) और यह लगभग निश्चित रूप से एक अच्छी चीज है: अगर आपका समाज उत्पादकता में कोई अंतर नहीं है, तो यह शायद इसलिए नहीं है कि हर कोई थॉमस एडिसन है। यह शायद इसलिए है क्योंकि आपके पास कोई थॉमस एडिसन नहीं है।
एक कम-तकनीकी समाज में आप उत्पादकता में कम अंतर देखते हैं। अगर आपके पास एक आवारा कबीले हैं जो आग के लिए छड़ियां इकट्ठा कर रहे हैं, तो सबसे अच्छे छड़ी इकट्ठा करने वाले और सबसे खराब के बीच उत्पादकता में कितना अंतर होगा? शायद दो गुना? जबकि जब आप लोगों को एक जटिल उपकरण जैसे कंप्यूटर देते हैं, तो उससे क्या कर सकते हैं, इसमें अंतर भारी होता है।
यह एक नया विचार नहीं है। फ्रेड ब्रुक्स ने 1974 में इस पर लिखा था, और उद्धृत अध्ययन 1968 में प्रकाशित हुआ था। लेकिन मुझे लगता है कि उन्होंने प्रोग्रामरों के बीच अंतर का अनुमान लगाया था। उन्होंने कोड की पंक्तियों में उत्पादकता के बारे में लिखा था: सबसे अच्छे प्रोग्रामर किसी दिए गए समस्या को दस गुना तेजी से हल कर सकते हैं। लेकिन क्या अगर समस्या दी नहीं है? प्रोग्रामिंग में, और कई क्षेत्रों में, कठिन हिस्सा समस्याएं हल करना नहीं है, बल्कि समस्याएं क्या हैं, यह तय करना है। कल्पना को मापना कठिन है, लेकिन व्यवहार में यह कोड की पंक्तियों में मापी जाने वाली उत्पादकता पर हावी हो जाती है।
किसी भी क्षेत्र में उत्पादकता में अंतर होता है, लेकिन ऐसे कम क्षेत्र हैं जहां यह इतना अधिक होता है। प्रोग्रामरों के बीच अंतर इतना महान है कि यह प्रकार का अंतर बन जाता है। मुझे नहीं लगता कि यह प्रोग्रामिंग का कोई अंतर्निहित गुण है। हर क्षेत्र में, प्रौद्योगिकी उत्पादकता में अंतर को बढ़ा देती है। मुझे लगता है कि जो कुछ प्रोग्रामिंग में हो रहा है वह बस यह है कि हमारे पास प्रौद्योगिकी का काफी अधिक लाभ है। लेकिन हर क्षेत्र में लीवर लंबा होता जा रहा है, इसलिए जो अंतर हम देख रहे हैं वह कुछ ऐसा है जो अधिक से अधिक क्षेत्र देखेंगे जैसे समय बीतता है। और कंपनियों और देशों की सफलता इस पर निर्भर करेगी कि वे इससे कैसे निपटते हैं।
यदि प्रौद्योगिकी के साथ उत्पादकता में अंतर बढ़ता है, तो सबसे उत्पादक व्यक्तियों का योगदान न केवल असमानुपातिक रूप से बड़ा होगा, बल्कि वास्तव में समय के साथ बढ़ता जाएगा। जब आप उस बिंदु तक पहुंच जाते हैं जहां एक समूह के उत्पादन का 90% केवल 1% सदस्यों द्वारा बनाया जाता है, तो आप बड़ा नुकसान उठाते हैं अगर कुछ (चाहे वह वाइकिंग हमले हों, या केंद्रीय योजना) उनकी उत्पादकता को औसत तक खींच ले।
अगर हम उनसे अधिक से अधिक प्राप्त करना चाहते हैं, तो हमें इन विशेष रूप से उत्पादक लोगों को समझना होगा। उन्हें क्या प्रेरित करता है? उन्हें अपना काम करने के लिए क्या चाहिए? आप उन्हें कैसे पहचान सकते हैं? आप उन्हें अपने लिए काम करने के लिए कैसे लाते हैं? और फिर तो यह सवाल है, आप खुद कैसे एक बन सकते हैं?
केवल धन से अधिक
मैं कुछ सुपर-हैकरों को जानता हूं, इसलिए मैंने बैठकर सोचा कि उनमें क्या समान है। उनकी परिभाषित गुणवत्ता शायद यह है कि वे वास्तव में प्रोग्रामिंग करना पसंद करते हैं। सामान्य प्रोग्रामर बिल चुकाने के लिए कोड लिखते हैं। महान हैकर इसे एक ऐसी चीज मानते हैं जिसे वे मनोरंजन के लिए करते हैं, और जिसके लिए वे खुश हैं कि लोग उन्हें भुगतान करते हैं।
महान प्रोग्रामर कभी-कभी धन के प्रति उदासीन माने जाते हैं। यह पूरी तरह से सही नहीं है। यह सच है कि उन्हें केवल दिलचस्प काम करना चाहिए। लेकिन अगर आप काफी पैसा कमा लेते हैं, तो आप जो चाहते हैं उस पर काम कर सकते हैं, और इस कारण हैकर आकर्षित होते हैं वास्तव में बहुत बड़ी राशि कमाने के विचार से। लेकिन जब तक उन्हें हर रोज काम पर आना पड़ता है, तो वे उस पर कितना भुगतान मिलता है इससे ज्यादा उस पर ध्यान देते हैं कि वे वहां क्या करते हैं।
आर्थिक रूप से, यह सबसे महत्वपूर्ण तथ्य है, क्योंकि इसका मतलब है कि आपको महान हैकरों को उनके मूल्य के लगभग कुछ भी नहीं देना पड़ता। एक महान प्रोग्रामर सामान्य प्रोग्रामर से दस या सौ गुना अधिक उत्पादक हो सकता है, लेकिन वह खुद को भाग्यशाली मानेगा अगर उसे तीन गुना अधिक भुगतान मिलता है। जैसा कि मैं बाद में समझाऊंगा, यह इसलिए भी है क्योंकि महान हैकर नहीं जानते कि वे कितने अच्छे हैं। लेकिन यह भी इसलिए है क्योंकि धन मुख्य चीज नहीं है जिसे वे चाहते हैं।
हैकर क्या चाहते हैं? सभी कारीगरों की तरह, हैकर अच्छे उपकरण पसंद करते हैं। वास्तव में, यह एक अवतरण है। अच्छे हैकर बुरे उपकरणों का उपयोग करना असहनीय पाते हैं। वे बस उन परियोजनाओं पर काम करने से इनकार कर देंगे जिनमें गलत बुनियादी ढांचा है।
एक स्टार्टअप में जहां मैं एक बार काम करता था, हमारे बुलेटिन बोर्ड पर टिके हुए एक चीजों में से एक IBM का एक विज्ञापन था। यह एक AS400 का चित्र था, और शीर्षक पढ़ता था, मुझे लगता है, "हैकर इसे घृणा करते हैं।" [1]
जब आप किसी परियोजना के लिए बुनियादी ढांचा क्या उपयोग करना है, यह केवल एक तकनीकी निर्णय नहीं है। यह एक सामाजिक निर्णय भी है, और यह शायद दोनों में से अधिक महत्वपूर्ण है। उदाहरण के लिए, अगर आपकी कंपनी कुछ सॉफ्टवेयर लिखना चाहती है, तो यह एक सुरक्षित विकल्प लग सकता है कि उसे जावा में लिखा जाए। लेकिन जब आप एक भाषा चुनते हैं, तो आप एक समुदाय भी चुन रहे हैं। आप जावा परियोजना पर काम करने के लिए जिन प्रोग्रामरों को नियुक्त कर पाएंगे वे स्मार्ट नहीं होंगे जितने कि आप पायथन में लिखी गई परियोजना पर काम करने के लिए नियुक्त कर सकते हैं। और आपके हैकरों की गुणवत्ता शायद उस भाषा से ज्यादा महत्वपूर्ण है जिसे आप चुनते हैं। हालांकि, इसके बारे में कहा जा सकता है कि अच्छे हैकर पायथन को जावा से क्यों पसंद करते हैं।
व्यावसायिक प्रकार लोकप्रिय भाषाओं को पसंद करते हैं क्योंकि वे भाषाओं को मानक के रूप में देखते हैं। वे कंपनी को बेटामैक्स पर दांव नहीं लगाना चाहते हैं। हालांकि, भाषाओं के बारे में बात यह है कि वे केवल मानक नहीं हैं। यदि आपको नेटवर्क पर बिट्स को स्थानांतरित करना है, तो TCP/IP का उपयोग करें। लेकिन एक प्रोग्रामिंग भाषा केवल एक प्रारूप नहीं है। एक प्रोग्रामिंग भाषा अभिव्यक्ति का माध्यम है।
मैंने पढ़ा है कि जावा ने अब कोबोल को सबसे लोकप्रिय भाषा के रूप में पार कर लिया है। एक मानक के रूप में, आप इससे अधिक नहीं चाह सकते। लेकिन एक अभिव्यक्ति के माध्यम के रूप में, आप बहुत बेहतर कर सकते हैं। मैं जिन महान प्रोग्रामरों को जानता हूं, उनमें से केवल एक ही है जो स्वेच्छा से जावा में प्रोग्रामिंग करेगा। और मैं जिन महान प्रोग्रामरों को जानता हूं जो सन के लिए, जावा पर काम नहीं करते, उनमें से शून्य है।
महान हैकर्स आमतौर पर ओपन सोर्स सॉफ्टवेयर का उपयोग करने पर जोर देते हैं। न केवल क्योंकि यह बेहतर है, बल्कि क्योंकि यह उन्हें अधिक नियंत्रण देता है। अच्छे हैकर नियंत्रण पर जोर देते हैं। यही है जो उन्हें अच्छे हैकर बनाता है: जब कुछ टूट जाता है, तो उन्हें इसे ठीक करने की जरूरत होती है। आप चाहते हैं कि वे इस तरह महसूस करें कि वे आपके लिए लिख रहे हैं सॉफ्टवेयर। आप आश्चर्यचकित नहीं होने चाहिए जब वे संचालन प्रणाली के बारे में भी वैसा ही महसूस करें।
कुछ साल पहले एक वेंचर कैपिटलिस्ट मित्र ने मुझे एक नई स्टार्टअप के बारे में बताया जिसमें वह शामिल था। यह आशाजनक लग रहा था। लेकिन अगली बार जब मैं उनसे बात कर रहा था, तो उन्होंने कहा कि उन्होंने अपना सॉफ्टवेयर विंडोज एनटी पर बनाने का फैसला किया है और उन्होंने एक बहुत अनुभवी एनटी डेवलपर को अपना मुख्य तकनीकी अधिकारी बना लिया है। जब मैंने यह सुना, तो मुझे लगा कि ये लोग नष्ट हो गए हैं। एक, सीटीओ एक प्रथम श्रेणी का हैकर नहीं हो सकता था, क्योंकि एक प्रमुख एनटी डेवलपर बनने के लिए उसे एनटी को स्वेच्छा से, बार-बार उपयोग करना पड़ा होगा, और मैं एक महान हैकर ऐसा करते हुए नहीं सोच सकता; और दो, यहां तक कि अगर वह अच्छा था, तो उसे अच्छे लोगों को अपने लिए काम करने के लिए भर्ती करने में मुश्किल होगी अगर प्रोजेक्ट को एनटी पर बनाना होता।
अंतिम सीमा
सॉफ्टवेयर के बाद, एक हैकर के लिए सबसे महत्वपूर्ण उपकरण शायद उसका कार्यालय है। बड़ी कंपनियां मानती हैं कि कार्यालय स्थान का कार्य रैंक को व्यक्त करना है। लेकिन हैकर अपने कार्यालयों का उपयोग इससे अधिक के लिए करते हैं: वे अपने कार्यालय का उपयोग सोचने के लिए करते हैं। और अगर आप एक प्रौद्योगिकी कंपनी हैं, तो उनके विचार ही आपका उत्पाद हैं। इसलिए हैकरों को शोरगुल और विचलित वातावरण में काम करने के लिए मजबूर करना, रंग कारखाने में काम करने जैसा है जहां हवा कालिख से भरी हो।
कार्टून पट्टी डिलबर्ट क्यूबिकल्स के बारे में बहुत कुछ कहता है, और इसके लिए अच्छा कारण है। मैं जानने वाले सभी हैकर उन्हें घृणा करते हैं। बीच में बाधा होने की संभावना ही पर्याप्त है कि हैकर कठिन समस्याओं पर काम करने से रोक दिए जाएं। यदि आप क्यूबिकल वाले कार्यालय में वास्तविक काम करना चाहते हैं, तो आपके पास दो विकल्प हैं: घर पर काम करें, या जब कोई और वहां नहीं होता है, तब सुबह जल्दी या देर रात या सप्ताहांत पर आएं। क्या कंपनियों को नहीं पता कि यह कुछ गलत होने का संकेत है? एक कार्यालय वातावरण ऐसा होना चाहिए जो आपके काम में मदद करे, न कि ऐसा जिसके बावजूद आप काम करें।
सिस्को जैसी कंपनियां गर्व महसूस करती हैं कि वहां हर कोई क्यूबिकल में काम करता है, यहां तक कि सीईओ भी। लेकिन वे उतने उन्नत नहीं हैं जितना वे सोचते हैं; स्पष्ट रूप से वे अभी भी कार्यालय स्थान को रैंक का एक चिह्न मानते हैं। ध्यान दें कि सिस्को अपने भीतर बहुत कम उत्पाद विकास करने के लिए प्रसिद्ध है। वे नई प्रौद्योगिकी को उन स्टार्टअप को खरीदकर प्राप्त करते हैं जिन्होंने इसे बनाया था - जहां शायद हैकरों को शांत काम करने का स्थान मिला होगा।
एक बड़ी कंपनी जो हैकरों की जरूरतों को समझती है, वह माइक्रोसॉफ्ट है। मैंने एक बार माइक्रोसॉफ्ट के लिए एक भर्ती विज्ञापन देखा जिसमें एक दरवाजे की बड़ी तस्वीर थी। हमारे लिए काम करो, यह प्रस्ताव था, और हम आपको एक ऐसा स्थान देंगे जहां आप वास्तव में काम कर सकें। और आप जानते हैं, माइक्रोसॉफ्ट बड़ी कंपनियों में उल्लेखनीय है क्योंकि वे अपने भीतर सॉफ्टवेयर विकसित करने में सक्षम हैं। शायद अच्छी तरह से नहीं, लेकिन पर्याप्त।
यदि कंपनियां चाहती हैं कि हैकर उत्पादक हों, तो उन्हें घर पर क्या करते हैं, उस पर नज़र डालनी चाहिए। घर पर, हैकर खुद को व्यवस्थित कर सकते हैं ताकि वे अधिक काम कर सकें। और जब वे घर पर काम करते हैं, तो हैकर शोरगुल, खुले स्थानों में काम नहीं करते; वे दरवाजों वाले कमरों में काम करते हैं। वे आरामदायक, पड़ोसी जगहों पर काम करते हैं जहां लोग हों और जब उन्हें किसी बात पर गौर करने की जरूरत हो, तो घूमने के लिए कोई जगह हो, न कि एकड़ों पार्किंग लॉट में लगे ग्लास बॉक्स में। उनके पास एक सोफा होता है जिस पर वे थके महसूस करते हैं तो लेट सकते हैं, न कि अपने डेस्क पर बैठकर काम करते हुए नाटक करते हुए। वहां कोई लोग नहीं होते जो शाम को प्राइम हैकिंग घंटों के दौरान वैक्यूम क्लीनर के साथ गुरुजते हों। वहां कोई बैठक या, भगवान न करें, कॉर्पोरेट रिट्रीट या टीम-बिल्डिंग व्यायाम नहीं होते। और जब आप उस कंप्यूटर पर क्या कर रहे हैं, देखेंगे, तो यह उससे पहले कहा गया कुछ मजबूत करता है। वे कार्य में जावा और विंडोज का उपयोग कर सकते हैं, लेकिन घर पर, जहां वे खुद चुन सकते हैं, आप उन्हें अधिक संभावना से पर्ल और लिनक्स का उपयोग करते हुए पाएंगे।
वास्तव में, कोबोल या जावा सबसे लोकप्रिय भाषा होने के बारे में ये आंकड़े भ्रामक हो सकते हैं। अगर हम जानना चाहते हैं कि कौन से उपकरण सबसे अच्छे हैं, तो हमें उस चीज पर नज़र डालनी चाहिए जिसका चयन हैकर स्वतंत्र रूप से करते हैं - यानी अपने स्वयं के परियोजनाओं में। जब आप इस प्रश्न का उत्तर देते हैं, तो आप पाते हैं कि ओपन सोर्स ऑपरेटिंग सिस्टम पहले से ही प्रभुत्व स्थापित कर चुके हैं, और सबसे बड़ी भाषा शायद पर्ल है।
दिलचस्प
अच्छे उपकरणों के साथ, हैकर दिलचस्प परियोजनाओं चाहते हैं। एक परियोजना को दिलचस्प क्या बनाता है? ओह, स्पष्ट रूप से गुप्त विमान या विशेष प्रभाव सॉफ्टवेयर जैसे खुलकर सेक्सी एप्लिकेशन काम करना दिलचस्प होगा। लेकिन कोई भी एप्लिकेशन दिलचस्प हो सकता है अगर यह नए तकनीकी चुनौतियों को पेश करता है। इसलिए यह पूर्वानुमान करना मुश्किल है कि हैकर कौन से समस्याओं को पसंद करेंगे, क्योंकि कुछ तब दिलचस्प हो जाते हैं जब उन पर काम करने वाले लोग एक नया प्रकार का समाधान खोज लेते हैं। आईटीए (जिन्होंने ऑर्बिट्ज के भीतर का सॉफ्टवेयर लिखा) से पहले, वे लोग जो एयरलाइन किराया खोजों पर काम कर रहे थे, शायद सोचते थे कि यह सबसे बोरिंग एप्लिकेशनों में से एक है। लेकिन आईटीए
यह एक ऐसा क्षेत्र है जहां प्रबंधक अंतर कर सकते हैं। जैसे कि एक माता-पिता जो बच्चे से कहते हैं, मैं दांव लगाता हूं कि आप 10 मिनट में अपने पूरे कमरे को साफ नहीं कर सकते, एक अच्छा प्रबंधक कभी-कभी एक समस्या को एक और दिलचस्प समस्या के रूप में परिभाषित कर सकता है। स्टीव जॉब्स इस में विशेष रूप से अच्छे प्रतीत होते हैं, आंशिक रूप से केवल उच्च मानकों को रखने में। मैक से पहले कई छोटे, सस्ते कंप्यूटर थे। उन्होंने समस्या को इस तरह परिभाषित किया: एक सुंदर वाला बनाओ। और यह संभवतः किसी भी गाज या छड़ी से अधिक विकासकर्ताओं को प्रेरित किया होगा।
निश्चित रूप से उन्होंने वितरित किया। जब मैक पहली बार दिखाई दिया, आपको इसे चालू करने की जरूरत नहीं थी कि यह अच्छा होगा; आप केस से ही जान सकते थे। कुछ सप्ताह पहले मैं केंब्रिज में सड़क पर चल रहा था, और किसी के कचरे में मुझे एक मैक कैरी केस दिखाई दिया। मैंने अंदर देखा, और वहां एक मैक एसई था। मैंने इसे घर ले जाकर प्लग इन किया, और यह बूट हो गया। खुश मैकिंटोश चेहरा, और फिर फाइंडर। मेरे भगवान, यह इतना सरल था। यह बस जैसे... गूगल।
हैकर्स उच्च मानकों वाले लोगों के लिए काम करना पसंद करते हैं। लेकिन केवल सख्त होना काफी नहीं है। आपको सही चीजों पर जोर देना होगा। जो आमतौर पर यह मतलब है कि आपको खुद एक हैकर होना चाहिए। मैंने कभी-कभी प्रोग्रामर्स का प्रबंधन कैसे करें इस बारे में लेख देखे हैं। वास्तव में दो लेख होने चाहिए: एक अगर आप खुद एक प्रोग्रामर हैं, और एक अगर आप नहीं हैं। और दूसरा को संभवतः दो शब्दों में संक्षिप्त किया जा सकता है: छोड़ दो।
समस्या दिन-प्रतिदिन के प्रबंधन में नहीं है। वास्तव में अच्छे हैकर लगभग स्वयं-प्रबंधित हैं। समस्या यह है कि अगर आप हैकर नहीं हैं, तो आप अच्छे हैकर कौन हैं, यह नहीं बता सकते। एक समान समस्या अमेरिकी कारों को इतना बेहद बनाती है। मैं इसे डिजाइन पैरेडॉक्स कहता हूं। आप सोच सकते हैं कि आप अपने उत्पादों को सुंदर बना सकते हैं केवल एक महान डिजाइनर को डिजाइन करने के लिए नियुक्त करके। लेकिन अगर आपका स्वयं का स्वाद अच्छा नहीं है, तो आप एक अच्छे डिजाइनर को कैसे पहचानेंगे? परिभाषा के अनुसार, आप उसके पोर्टफोलियो से नहीं पता लगा सकते। और आप उन पुरस्कारों या नौकरियों से नहीं जा सकते जो उसके पास हैं, क्योंकि डिजाइन में, अन्य क्षेत्रों की तरह, वे आमतौर पर फैशन और चमकदार बातचीत द्वारा चलाए जाते हैं, वास्तविक क्षमता दूर तीसरे स्थान पर होती है। इससे बचने का कोई तरीका नहीं है: आप सुंदर चीजें बनाने वाली प्रक्रिया का प्रबंधन नहीं कर सकते, बिना यह जाने कि क्या सुंदर है। अमेरिकी कारें बेहद बेहूदा हैं क्योंकि अमेरिकी कार कंपनियों का नेतृत्व बुरे स्वाद वाले लोगों द्वारा किया जाता है।
इस देश के कई लोग स्वाद को कुछ अस्पष्ट या यहां तक कि हल्के में लेते हैं। यह न तो अस्पष्ट है और न ही हल्का है। डिजाइन को चलाने के लिए, एक प्रबंधक को किसी कंपनी के उत्पादों का सबसे मांगने वाला उपयोगकर्ता होना चाहिए। और अगर आपका स्वाद वास्तव में अच्छा है, तो आप, जैसा कि स्टीव जॉब्स करते हैं, अपने को संतुष्ट करने को एक ऐसी समस्या बना सकते हैं जिस पर अच्छे लोग काम करना पसंद करते हैं।
नस्टी छोटी समस्याएं
यह कहना काफी आसान है कि कौन सी समस्याएं दिलचस्प नहीं हैं: वे जहां बजाय कुछ बड़ी, स्पष्ट समस्याओं को हल करने के, आपको कई नस्टी छोटी समस्याओं को हल करना पड़ता है। प्रोजेक्टों में से सबसे बुरे में से एक बग से भरे सॉफ्टवेयर के लिए इंटरफेस लिखना है। एक और है जब आपको किसी व्यक्तिगत ग्राहक की जटिल और अस्पष्ट जरूरतों के लिए कुछ अनुकूलित करना होता है। हैकर्स के लिए ये प्रकार की परियोजनाएं हजार कटों की मृत्यु हैं।
नस्टी छोटी समस्याओं की विशेषता यह है कि आप उनसे कुछ नहीं सीखते। एक कंपाइलर लिखना दिलचस्प है क्योंकि यह आपको कंपाइलर क्या है, यह सिखाता है। लेकिन बग से भरे सॉफ्टवेयर के लिए एक इंटरफेस लिखना कुछ नहीं सिखाता, क्योंकि बग यादृच्छिक हैं। [3] इसलिये यह केवल कुशलता नहीं है जो अच्छे हैकर्स को नस्टी छोटी समस्याओं से दूर रखती है। यह अधिक आत्म-संरक्षण का मामला है। नस्टी छोटी समस्याओं पर काम करना आपको मूर्ख बना देता है। अच्छे हैकर इसलिए इससे बचते हैं क्योंकि मॉडल्स चीज़बर्गर से बचते हैं।
निश्चित रूप से कुछ समस्याओं में यह प्रकृति अंतर्निहित होती है। और आपूर्ति और मांग के कारण, वे विशेष रूप से अच्छा भुगतान करते हैं। तो एक कंपनी जो महान हैकर्स को उबाऊ समस्याओं पर काम करने के लिए प्राप्त करने का तरीका पाती है, वह बहुत सफल होगी। आप ऐसा कैसे करेंगे?
यह जहां होता है वह स्टार्टअप हैं। हमारे स्टार्टअप में हमारे पास रॉबर्ट मॉरिस एक सिस्टम एडमिनिस्ट्रेटर के रूप में काम कर रहा था। यह बार मिट्ज़वाह में रोलिंग स्टोन्स का प्रदर्शन करने जैसा है। आप ऐसी प्रतिभा को नहीं भर सकते। लेकिन लोग किसी भी मात्रा में कठोर श्रम करेंगे जिनके वे संस्थापक हों।[4]
बड़ी कंपनियां समस्या को पार्टिशन करके हल करती हैं। वे स्मार्ट लोगों को अपने लिए काम करने के लिए प्राप्त करते हैं क्योंकि वे एक अलग अनुसंधान और विकास विभाग स्थापित करते हैं जहां कर्मचारियों को ग्राहकों की नस्टी छोटी समस्याओं पर सीधे काम नहीं करना पड़ता। [5] इस मॉडल में, अनुसंधान विभाग एक खदान की तरह काम करता है। वे नई विचारों का उत्पादन करते हैं; शायद कंपनी के बाकी हिस्से उन्हें उपयोग कर पाएंगे।
आपको इस चरम तक जाने की जरूरत नहीं हो सकती। बॉटम-अप प्रोग्रामिंग एक और तरीका सुझाता है कि कंपनी को पार्टिशन करें: स्मार्ट लोगों को उपकरण निर्माता के रूप में काम करने दें। अगर आपकी कंपनी x करने के लिए सॉफ्टवेयर बनाती है, तो एक समूह को ऐसे सॉफ्टवेयर लिखने के लिए उपकरण बनाने का काम दें, और दूसरा जो इन उपकरणों का उपयोग करके अनुप्रयोग लिखता है। इस तरह आप शायद स्मार्ट लोगों को अपने कोड का 99% लिखने के लिए प्राप्त कर सकते हैं, लेकिन उन्हें पारंपरिक अनुसंधान विभाग में होने की तुलना में लगभग इतना ही अलग रख सकते हैं। उपकरण निर्माता के पास उपयोगकर्ता होंगे, लेकिन वे केवल कंपनी के स्वयं के डेवलपर्स होंगे। [6]
अगर माइक्रोसॉफ्ट इस दृष्टिकोण का उपयोग करता, तो उनका सॉफ्टवेयर सुरक्षा छेद से इतना भरा नहीं होता, क्योंकि वास्तविक अनुप्रयोग लिखने वाले कम स्मार्ट लोग निम्न स्तरीय काम जैसे मेमोरी आवंटन नहीं करते। बजाय सीधे C में वर्ड लिखने के, वे वर्ड-भाषा के बड़े लेगो ब्लॉक को जोड़ने में व्यस्त होंगे। (डुप्लो, मुझे लगता है, तकनीकी शब्द है।)
क्लम्पिंग
दिलचस्प समस्याओं के साथ, अच्छे हैकर्स को क्या पसंद है वह अन्य अच्छे हैकर हैं। महान हैकर आमतौर पर एक साथ जमा होते हैं - कभी-कभी बहुत शानदार तरीके से, जैसा कि जेरॉक्स पार्क में हुआ था। इसलिए आप अच्छे हैकर्स को उस अनुपात में आकर्षित नहीं करेंगे जिस अनुपात में आप उनके लिए एक अच्छा वातावरण बनाते हैं। क्लम्पिंग की प्रवृत्ति का मतलब है
महान हैकर होना, अकेले ही किसी कंपनी को सफल बनाने के लिए पर्याप्त नहीं है। यह गूगल और आईटीए के लिए काम करता है, जो इस समय दो गर्म स्थान हैं, लेकिन यह थिंकिंग मशीन या जेरॉक्स की मदद नहीं कर सका। सन को कुछ समय के लिए अच्छा चलन मिला था, लेकिन उनका व्यावसायिक मॉडल एक नीचे की एलिवेटर है। इस स्थिति में, यहां तक कि सबसे अच्छे हैकर भी आपकी मदद नहीं कर सकते।
मुझे लगता है, हालांकि, कि सभी अन्य चीजों के बराबर होने पर, एक कंपनी जो महान हैकरों को आकर्षित कर सकती है, उसे एक विशाल लाभ होगा। ऐसे लोग हैं जो इससे असहमत हो सकते हैं। जब हम 1990 के दशक में वेंचर कैपिटल फर्मों के चक्कर लगा रहे थे, तो कई ने हमें बताया कि सॉफ्टवेयर कंपनियां महान सॉफ्टवेयर लिखकर नहीं जीतती हैं, बल्कि ब्रांड, चैनलों पर कब्जा करके और सही सौदे करके जीतती हैं।
वे वास्तव में इस पर विश्वास करते प्रतीत होते थे, और मुझे लगता है कि मैं इसका कारण जानता हूं। मुझे लगता है कि कई वेंचर कैपिटलिस्ट, कम से कम अनजाने में, माइक्रोसॉफ्ट जैसी कंपनी की तलाश कर रहे हैं। और बेशक, यदि माइक्रोसॉफ्ट आपका मॉडल है, तो आपको ऐसी कंपनियों की तलाश नहीं करनी चाहिए जो महान सॉफ्टवेयर लिखकर जीतने की उम्मीद करती हैं। लेकिन वेंचर कैपिटलिस्ट गलत हैं कि वे अगली माइक्रोसॉफ्ट की तलाश कर रहे हैं, क्योंकि कोई भी स्टार्टअप अगली माइक्रोसॉफ्ट नहीं हो सकता, जब तक कि कोई अन्य कंपनी ठीक उस सही क्षण पर झुक कर अगली आईबीएम न बन जाए।
माइक्रोसॉफ्ट का उपयोग मॉडल के रूप में करना गलत है, क्योंकि उनका पूरा संस्कृति उस एक भाग्यशाली ब्रेक से उत्पन्न होती है। माइक्रोसॉफ्ट एक खराब डेटा बिंदु है। यदि आप उन्हें बाहर फेंक दें, तो आप पाएंगे कि अच्छे उत्पाद बाजार में जीतने की प्रवृत्ति रखते हैं। वेंचर कैपिटलिस्टों को अगली एप्पल या अगली गूगल की तलाश करनी चाहिए।
मुझे लगता है कि बिल गेट्स इसे जानते हैं। गूगल के बारे में उन्हें जो चिंता है, वह उनके ब्रांड की शक्ति नहीं है, बल्कि यह तथ्य है कि उनके पास बेहतर हैकर हैं। [7]
पहचान
तो महान हैकर कौन हैं? आप किस तरह जान सकते हैं कि आप किसी को मिलते हैं? यह बहुत कठिन होता है। यहां तक कि हैकर भी नहीं बता सकते। मुझे अब पक्का लगता है कि मेरा दोस्त ट्रेवर ब्लैकवेल एक महान हैकर है। आप शायद स्लैशडॉट पर पढ़े होंगे कि उसने अपना स्वयं का सेगवे [1] बनाया है।
इस परियोजना के बारे में अद्भुत बात यह थी कि उसने एक दिन में (पायथन में, इसके अलावा) सारा सॉफ्टवेयर लिखा था।
ट्रेवर के लिए, यह उसके लिए सामान्य है। लेकिन जब मैंने पहली बार उससे मिला, तो मुझे लगा कि वह एक पूरा मूर्ख है। वह रॉबर्ट मॉरिस के कार्यालय में खड़ा था और उससे कुछ-कुछ बकवास कर रहा था, और मुझे याद है कि मैं रॉबर्ट को इस पागल को उसके कार्यालय से बाहर भेजने के लिए प्रबल संकेत कर रहा था ताकि हम लंच पर जा सकें। रॉबर्ट कहते हैं कि उन्होंने भी पहले ट्रेवर को गलत माना था।
समस्या इस तथ्य से और बढ़ जाती है कि हैकर, अपने सामाजिक अवहेलना के बावजूद, कभी-कभी स्मार्ट दिखने के लिए काफी प्रयास करते हैं। जब मैं ग्रेजुएट स्कूल में था, तो मैं कभी-कभी एमआईटी एआई लैब में घूमने जाता था। शुरू में यह थोड़ा डरावना था। वहां सभी इतनी तेजी से बोलते थे। लेकिन कुछ समय बाद मैंने तेजी से बोलने का तरीका सीख लिया। आपको तेज नहीं सोचना पड़ता; बस हर चीज कहने के लिए दोगुना शब्दों का उपयोग करें।
इस तरह के शोर में, अच्छे हैकर पहचानना मुश्किल है। मैं अब भी नहीं बता सकता। आप उनके रिज्यूमे से भी नहीं बता सकते। ऐसा लगता है कि एक हैकर को पहचानने का एकमात्र तरीका है कि आप उसके साथ किसी चीज पर काम करें।
और यही कारण है कि उच्च-तकनीकी क्षेत्र केवल विश्वविद्यालयों के आसपास ही होते हैं। यहां सक्रिय घटक केवल प्रोफेसर नहीं हैं, बल्कि छात्र हैं। स्टार्टअप विश्वविद्यालयों के आसपास उग आते हैं क्योंकि विश्वविद्यालय वादे के युवा लोगों को एक साथ लाते हैं और उन्हें एक ही परियोजनाओं पर काम करने के लिए मजबूर करते हैं। स्मार्ट लोग जानते हैं कि अन्य स्मार्ट लोग कौन हैं, और मिलकर वे अपनी नई परियोजनाएं बनाते हैं।
क्योंकि आप किसी महान हैकर को केवल उसके साथ काम करके ही पहचान सकते हैं, हैकर खुद नहीं जान पाते कि वे कितने अच्छे हैं। यह अधिकांश क्षेत्रों में एक हद तक सच है। मैंने पाया है कि जो लोग किसी चीज में महान हैं, वे अपनी ही महानता पर इतने आश्वस्त नहीं होते, जितने कि वे अन्य लोगों की अक्षमता पर हैरान होते हैं।
लेकिन हैकरों के लिए यह जानना कि वे कितने अच्छे हैं, बहुत कठिन है, क्योंकि उनके काम की तुलना करना मुश्किल है। अधिकांश अन्य क्षेत्रों में यह आसान है। 100 मीटर में, आप 10 सेकंड में जान जाते हैं कि कौन सबसे तेज है। गणित में भी एक सामान्य सहमति प्रतीत होती है कि कौन से प्रश्न हल करने में कठिन हैं, और अच्छा समाधान क्या है। लेकिन हैकिंग लेखन की तरह है। कौन कह सकता है कि दो उपन्यासों में से कौन बेहतर है? निश्चित रूप से लेखक नहीं।
हैकरों के साथ, कम से कम, अन्य हैकर बता सकते हैं। क्योंकि, उपन्यासकारों के विपरीत, हैकर परियोजनाओं पर सहयोग करते हैं। जब आप किसी को कुछ कठिन समस्याओं को हल करने के लिए भेजते हैं, तो आप जल्दी ही जान जाते हैं कि वह उन्हें कितनी मुश्किल से हल करता है। लेकिन हैकर अपने काम को देख नहीं सकते। इसलिए, यदि आप किसी महान हैकर से पूछते हैं कि वह कितना अच्छा है, तो वह लगभग निश्चित रूप से कहेगा, मुझे नहीं पता। वह केवल विनम्र नहीं हो रहा है। वह वास्तव में नहीं जानता।
और हम में से कोई भी नहीं जानता, सिवाय उन लोगों के जिनके साथ हमने वास्तव में काम किया है। जो हमें एक अजीब स्थिति में रखता है: हमें नहीं पता कि हमारे नायक कौन होने चाहिए। जो हैकर प्रसिद्ध होते हैं, वे आमतौर पर प्रचार के यादृच्छिक दुर्घटनाओं से प्रसिद्ध होते हैं। कभी-कभी मुझे किसी महान हैकर का उदाहरण देना होता है, और मैं कभी नहीं जानता कि किसका उपयोग करूं। मेरे दिमाग में जो पहले नाम आते हैं, वे हमेशा ऐसे लोग होते हैं जिनके साथ मैंने व्यक्तिगत रूप से काम किया है, लेकिन यह मूर्खतापूर्ण लगता है कि मैं उन्हें उपयोग करूं। इसलिए, मुझे लगता है, शायद मुझे रिचर्ड स्टॉलमैन, या लिनस टोर्वाल्ड्स, या एलन के, या कोई प्रसिद्ध व्यक्ति ऐसा कहना चाहिए।
लेकिन मुझे नहीं पता कि क्या ये लोग महान हैकर हैं। मैंने कभी भी किसी चीज पर उनके साथ काम नहीं किया है।
यदि हैकिंग का माइकल जॉर्डन कोई है, तो कोई नहीं जानता, उसके अलावा भी।
पालन-पोषण
अंत में, हैकरों ने सभी उस प्रश्न के बारे में सोचा है: महान हैकर कैसे बनें? मुझे नहीं पता कि क्या आप खुद को एक बना सकते हैं। लेकिन यह निश्चित रूप से संभव है कि आप ऐसी चीजें करें जो आपको मूर्ख बना देती हैं, और यदि आप खुद को मूर्ख बना सकते हैं, तो आप शायद खुद को स्मार्ट भी बना सकते हैं।
एक अच्छे हैकर बनने का कुंजी शायद यह है कि आप उस पर काम करें जिसे आप पसंद करते हैं। जब मैं उन महान हैकरों के बारे में सोचता हूं जिन्हें मैं जानता हूं, तो एक चीज जो उनमें सामान्य है वह है कि उन्हें उस चीज पर काम करने में अत्यधिक कठिनाई होती है जिसे वे नहीं चाहते हैं। मुझे नहीं पता कि यह कारण है या प्रभाव; यह दोनों हो सकता है।
किसी चीज को अच्छी तरह से करने के लिए आपको उसे प्यार करना होता है। इसलिए जहां तक आप हैकिंग को एक ऐसी चीज बनाए रख सकते हैं जिसे आप प्यार करते हैं, आप इसे अच्छी तरह से करने की संभावना रखते हैं। 14 साल की उम्र में प्रोग्रामिंग के बारे में आपके पास जो आश्चर्य था, उसे बनाए रखने की कोशिश करें। यदि आप चिंतित हैं कि आपका वर्तमान काम आपके दिमाग को खराब कर रहा है, तो यह संभवतः ऐसा ही है।
सर्वश्रेष्ठ हैकर अक्सर स्मार्ट होते हैं, बेशक, लेकिन ऐसा कई क्षेत्रों में होता है। क्या कोई ऐसी विशेषता है जो हैकरों के लिए अद्वितीय है? मैंने कुछ दोस्तों से पूछा, और सबसे महत्वपूर्ण चीज जिसका उल्लेख किया गया वह उत्सुकता थी। मैं हमेशा मान लेता था कि सभी स्मार्ट लोग उत्सुक होते हैं - कि उत्सुकता ज्ञान का पहला व्युत्पन्न है। लेकिन लगता है कि हैकर विशेष रूप से उत्सुक होते हैं, खासकर कि कैसे चीजें काम करती हैं। यह तर्कसंगत है, क्योंकि कार्यक्रम वास्तव में चीजों के कार्य का विशाल वर्णन हैं।
कई दोस्तों ने हैकरों की एकाग्रता की क्षमता का उल्लेख किया - उनकी क्षमता, जैसा कि एक ने कहा, "अपने ही दिमाग के बाहर की सब कुछ को छोड़ देने की।" मैंने निश्चित रूप से इसे देखा है। और मैंने कई हैकरों को यह कहते सुना है कि वे एक बीयर भी आधी पी लेते हैं तो वे बिल्कुल भी प्रोग्राम नहीं कर सकते। इसलिए शायद हैकिंग के लिए कुछ विशेष केंद्रित करने की क्षमता की आवश्यकता होती है। शायद महान हैकर अपने दिमाग में एक बड़ी मात्रा में संदर्भ लोड कर सकते हैं, ताकि जब वे कोड की एक पंक्ति देखते हैं, तो वे केवल उस पंक्ति को ही नहीं, बल्कि उसके चारों ओर के पूरे कार्यक्रम को देखते हैं। जॉन मैकफी ने लिखा था कि बिल ब्रैडली का बास्केटबॉल खिलाड़ी के रूप में सफलता उनकी असाधारण बाह्य दृष्टि के कारण थी। "पूर्ण" दृष्टि का मतलब लगभग 47 डिग्री का ऊर्ध्वाधर बाह्य दृष्टि होता है। बिल ब्रैडली के पास 70 था; वह जमीन पर देख रहे थे जब वह बास्केट को देख सकते थे। शायद महान हैकरों के पास कोई ऐसी जन्मजात क्षमता होती है। (मैं एक बहुत ही घनी भाषा का उपयोग करके धोखा देता हूं, जो कोर्ट को छोटा कर देती है।)
यह क्यूबिकल के बारे में असंगति को समझा सकता है। शायद सुविधाओं के लोग, जिनके पास कोई एकाग्रता नहीं है जिसे तोड़ा जा सके, को इस बात का कोई अंदाजा नहीं है कि एक क्यूबिकल में काम करना एक हैकर के लिए अपने दिमाग को ब्लेंडर में रखने जैसा महसूस होता है। (जबकि बिल, यदि ऑटिज्म की अफवाहें सच हैं, तो इसे बहुत अच्छी तरह से जानता है।)
महान हैकरों और सामान्य रूप से स्मार्ट लोगों के बीच एक अंतर जो मैंने देखा है वह है कि हैकर अधिक राजनीतिक रूप से गलत होते हैं। जहां तक अच्छे हैकरों के बीच एक गुप्त हस्ताक्षर है, यह तब होता है जब वे एक-दूसरे को इतना अच्छी तरह से जानते हैं कि वे ऐसे विचार व्यक्त कर सकते हैं जिनके लिए आम जनता उन्हें पत्थरबाजी करके मार डालेगी। और मुझे समझ में आता है कि प्रोग्रामिंग में राजनीतिक रूप से गलत होना एक उपयोगी गुण होगा। कार्यक्रम बहुत जटिल होते हैं और, कम से कम अच्छे प्रोग्रामरों के हाथों में, बहुत प्रवाही होते हैं। ऐसी परिस्थितियों में मान्यताओं पर सवाल उठाने की आदत होना मददगार होता है।
क्या आप इन गुणों को पैदा कर सकते हैं? मुझे नहीं पता। लेकिन कम से कम उन्हें दबा नहीं सकते। इसलिए यह एक महान हैकर बनने का मेरा सर्वश्रेष्ठ प्रयास है। यदि महान हैकर बनना संभव है, तो ऐसा करने का तरीका यह हो सकता है कि आप अपने साथ यह सौदा करें: आप कभी भी बोरिंग परियोजनाओं पर काम नहीं करेंगे (जब तक कि आपके परिवार को भूखा नहीं मरना पड़ता), और बदले में, आप कभी भी अर्द्ध-असफल काम नहीं करने देंगे। सभी महान हैकर जिन्हें मैं जानता हूं, ऐसा ही सौदा करते हैं, हालांकि शायद उनमें से किसी के पास इसमें कोई विकल्प नहीं था।
नोट्स
[1] इंसाफ के लिए, मुझे कहना होगा कि IBM अच्छा हार्डवेयर बनाता है। मैंने यह IBM लैपटॉप पर लिखा है।
[2] वे वास्तव में खतरनाक साबित हुए। उन्होंने कुछ महीनों बाद बंद कर दिया।
[3] मुझे लगता है कि लोग जब "जीवन का अर्थ" की बात करते हैं तो यही मतलब होता है। सतह पर, यह एक अजीब विचार लगता है। जीवन एक अभिव्यक्ति नहीं है; इसका कोई अर्थ कैसे हो सकता है? लेकिन इसमें एक ऐसा गुण हो सकता है जो काफी कुछ अर्थ जैसा महसूस होता है। किसी कंपाइलर जैसे एक परियोजना में, आपको कई समस्याओं का समाधान करना होता है, लेकिन समस्याएं एक पैटर्न में आती हैं, जैसे कि एक संकेत में। जबकि जब आपको हल करनी वाली समस्याएं यादृच्छिक होती हैं, तो वे शोर की तरह लगती हैं।
[4] एक समय एल्बर्ट आइंस्टीन ने रेफ्रिजरेटर डिजाइन करने का काम किया था। (उनके पास इक्विटी थी।)
[5] यह कहना मुश्किल है कि कंप्यूटर दुनिया में शोध क्या है, लेकिन एक पहली अनुमान के रूप में, यह वह सॉफ्टवेयर है जिसके उपयोक्ता नहीं हैं।
मुझे नहीं लगता कि प्रकाशन ही है जो सर्वश्रेष्ठ हैकरों को अनुसंधान विभागों में काम करने के लिए प्रेरित करता है। मुझे लगता है कि मुख्य रूप से वर्ड 13.27 के कोरियाई संस्करण को बोलने वाले पेपरक्लिप के साथ एकीकरण की समस्याओं पर एक उत्पाद प्रबंधक के साथ तीन घंटे की बैठक नहीं करनी पड़ना है।
[6] कुछ समान चीजें निर्माण उद्योग में काफी समय से हो रही हैं। जब आप कुछ सौ साल पहले एक घर बनवाते थे, तो स्थानीय निर्माता उसमें सब कुछ बनाते थे। लेकिन लगातार यह हो रहा है कि निर्माता वह जोड़ते हैं जो किसी और ने डिजाइन और निर्मित किया है। यह, डेस्कटॉप प्रकाशन के आगमन की तरह, लोगों को भयानक तरीकों से प्रयोग करने की स्वतंत्रता दी है, लेकिन यह निश्चित रूप से अधिक कुशल है।
[7] गूगल माइक्रोसॉफ्ट के लिए नेटस्केप से कहीं अधिक खतरनाक है। शायद किसी भी अन्य कंपनी से कभी भी खतरनाक रहा है। कम से कम इसलिए कि वे लड़ने के लिए संकल्पित हैं। अपनी नौकरी सूची पृष्ठ पर, वे कहते हैं कि उनका एक "मूल मूल्य" "बुरा न हो" है। सोयाबीन तेल या खनन उपकरण बेचने वाली कंपनी से ऐसा कथन केवल विचित्र होगा। लेकिन मुझे लगता है कि हम सभी कंप्यूटर दुनिया में जानते हैं कि यह किस पर एक युद्ध घोषणा है।
धन्यवाद जेसिका लिविंगस्टन, रॉबर्ट मोरिस और सारा हार्लिन को इस वक्तव्य के पहले संस्करणों को पढ़ने के लिए।