स्नातक
Originalमार्च 2005
(इस निबंध के कुछ भाग उन विद्यार्थियों के उत्तरों के रूप में शुरू हुए जिन्होंने मुझे पत्र लिखकर प्रश्न भेजे थे।)
हाल ही में मुझे कंप्यूटर साइंस के स्नातक छात्रों से कई ईमेल मिले हैं, जिसमें पूछा गया है कि कॉलेज में क्या करना चाहिए। मैं शायद सलाह का सबसे अच्छा स्रोत न हो, क्योंकि मैं कॉलेज में दर्शनशास्त्र का छात्र था। लेकिन मैंने इतने सारे सीएस क्लास लिए कि अधिकांश सीएस छात्रों को लगा कि मैं एक हैकर हूँ। मैं निश्चित रूप से एक हैकर था, कम से कम।
हैकिंग
एक अच्छा हैकर बनने के लिए आपको कॉलेज में क्या करना चाहिए? दो मुख्य चीजें हैं जो आप कर सकते हैं: प्रोग्रामिंग में बहुत अच्छे बनें, और विशिष्ट, मजेदार समस्याओं के बारे में बहुत कुछ सीखें। ये सभी चीजें बराबर होती हैं, क्योंकि प्रत्येक आपको दूसरे को करने के लिए प्रेरित करती हैं।
प्रोग्रामिंग में अच्छा बनने का तरीका है (क) बहुत ज़्यादा (ख) कठिन समस्याओं पर काम करना। और खुद को कठिन समस्याओं पर काम करने के लिए तैयार करने का तरीका है किसी बहुत ही आकर्षक प्रोजेक्ट पर काम करना।
संभावना है कि यह प्रोजेक्ट क्लास असाइनमेंट नहीं होगा। मेरे दोस्त रॉबर्ट ने अंडरग्रेजुएट होने के दौरान नेटवर्क सॉफ्टवेयर लिखकर बहुत कुछ सीखा। उनकी एक परियोजना हार्वर्ड को अर्पानेट से जोड़ना था; यह मूल नोड्स में से एक था, लेकिन 1984 तक कनेक्शन खत्म हो गया था। [1] न केवल यह काम क्लास के लिए नहीं था, बल्कि क्योंकि उन्होंने अपना सारा समय इस पर बिताया और अपनी पढ़ाई को नजरअंदाज किया, इसलिए उन्हें एक साल के लिए स्कूल से निकाल दिया गया। [2] अंत में सब कुछ ठीक हो गया, और अब वह एमआईटी में प्रोफेसर हैं। लेकिन अगर आप उस हद तक नहीं जाते हैं तो आप शायद खुश रहेंगे; उस समय इससे उन्हें बहुत चिंता हुई थी।
प्रोग्रामिंग में अच्छा होने का एक और तरीका है ऐसे दूसरे लोगों को ढूँढ़ना जो इसमें अच्छे हैं, और उनसे सीखें कि वे क्या जानते हैं। प्रोग्रामर अपने काम के प्रकार और इस्तेमाल किए जाने वाले उपकरणों के अनुसार खुद को अलग-अलग समूहों में बाँट लेते हैं, और कुछ समूह दूसरों की तुलना में ज़्यादा होशियार होते हैं। अपने आस-पास देखें और देखें कि होशियार लोग किस पर काम कर रहे हैं; आमतौर पर इसके पीछे कोई न कोई कारण होता है।
आपके आस-पास के कुछ सबसे होशियार लोग प्रोफेसर हैं। इसलिए दिलचस्प काम खोजने का एक तरीका रिसर्च असिस्टेंट के तौर पर काम करना है। प्रोफेसर खास तौर पर ऐसे लोगों में रुचि रखते हैं जो उनके लिए थकाऊ सिस्टम-एडमिनिस्ट्रेशन जैसी समस्याओं को हल कर सकें, इसलिए यह दरवाज़े पर पैर रखने का एक तरीका है। उन्हें डर है कि कोई भी व्यक्ति नौकरी से निकाल दिया जाएगा और रिज्यूमे में गड़बड़ी की जाएगी। यह बहुत आम बात है कि असिस्टेंट के काम में शुद्ध वृद्धि होती है। इसलिए आपको यह स्पष्ट करना होगा कि आपका मतलब शुद्ध कमी से है।
अगर वे मना कर दें तो निराश न हों। अस्वीकृति हमेशा उतनी व्यक्तिगत नहीं होती जितनी कि अस्वीकार किए गए व्यक्ति की कल्पना होती है। बस अगले विकल्प पर आगे बढ़ें। (यह डेटिंग पर भी लागू होता है।)
सावधान रहें, क्योंकि हालांकि अधिकांश प्रोफेसर स्मार्ट होते हैं, लेकिन उनमें से सभी दिलचस्प चीजों पर काम नहीं करते हैं। प्रोफेसरों को अपने करियर को आगे बढ़ाने के लिए नए परिणाम प्रकाशित करने होते हैं, लेकिन शोध के अधिक दिलचस्प क्षेत्रों में अधिक प्रतिस्पर्धा होती है। इसलिए कम महत्वाकांक्षी प्रोफेसर जो करते हैं वह यह है कि वे ऐसे पेपर की एक श्रृंखला तैयार करते हैं जिनके निष्कर्ष नए होते हैं क्योंकि कोई और उनकी परवाह नहीं करता। इनसे बचना ही बेहतर है।
मैंने कभी रिसर्च असिस्टेंट के तौर पर काम नहीं किया, इसलिए मुझे लगता है कि इस रास्ते की सिफारिश करना थोड़ा बेईमानी भरा है। मैंने खुद कुछ लिखकर प्रोग्रामिंग सीखी, खास तौर पर विनोग्राड के SHRDLU को रिवर्स-इंजीनियर करने की कोशिश करके। मैं उस प्रोग्राम के प्रति उतनी ही जुनूनी थी जितनी एक नवजात शिशु की माँ होती है।
अकेले काम करने के चाहे जो भी नुकसान हों, लेकिन इसका फायदा यह है कि प्रोजेक्ट पूरी तरह आपका अपना है। आपको कभी भी किसी से समझौता करने या किसी की अनुमति लेने की ज़रूरत नहीं पड़ती और अगर आपके पास कोई नया विचार है तो आप बस बैठकर उसे लागू करना शुरू कर सकते हैं।
अपने खुद के प्रोजेक्ट में आपको नवीनता (जैसा कि प्रोफेसर करते हैं) या लाभप्रदता (जैसा कि व्यवसाय करते हैं) के बारे में चिंता करने की ज़रूरत नहीं है। सिर्फ़ इतना मायने रखता है कि प्रोजेक्ट तकनीकी रूप से कितना कठिन है, और इसका एप्लीकेशन की प्रकृति से कोई संबंध नहीं है। डेटाबेस जैसे "गंभीर" एप्लीकेशन अक्सर तकनीकी रूप से तुच्छ और नीरस होते हैं (यदि आप कभी अनिद्रा से पीड़ित हैं, तो डेटाबेस के बारे में तकनीकी साहित्य पढ़ने का प्रयास करें) जबकि गेम जैसे "तुच्छ" एप्लीकेशन अक्सर बहुत परिष्कृत होते हैं। मुझे यकीन है कि वहाँ ऐसी गेम कंपनियाँ हैं जो विश्वविद्यालय के सीएस विभागों के निचले नौ दसवें हिस्से में शोध की तुलना में अधिक बौद्धिक सामग्री वाले उत्पादों पर काम कर रही हैं।
अगर मैं अभी कॉलेज में होता तो शायद मैं ग्राफ़िक्स पर काम करता: उदाहरण के लिए, एक नेटवर्क गेम या 3D एनीमेशन के लिए एक टूल। जब मैं अंडरग्रेजुएट था, तब ग्राफ़िक्स को दिलचस्प बनाने के लिए पर्याप्त साइकिल नहीं थी, लेकिन अब काम करने के लिए इससे ज़्यादा मज़ेदार कुछ भी सोचना मुश्किल है।
गणित
जब मैं कॉलेज में था, तो बहुत से प्रोफेसर मानते थे (या कम से कम चाहते थे) कि कंप्यूटर विज्ञान गणित की एक शाखा है। यह विचार हार्वर्ड में सबसे मजबूत था, जहाँ 1980 के दशक तक कोई सीएस मेजर भी नहीं था; तब तक किसी को एप्लाइड मैथ में मेजर होना पड़ता था। लेकिन कॉर्नेल में भी यह लगभग उतना ही बुरा था। जब मैंने डरावने प्रोफेसर कॉनवे को बताया कि मुझे एआई (उस समय एक हॉट टॉपिक) में दिलचस्पी है, तो उन्होंने मुझसे कहा कि मुझे गणित में मेजर होना चाहिए। मुझे अभी भी यकीन नहीं है कि क्या उन्हें लगता था कि एआई के लिए गणित की आवश्यकता है, या क्या उन्हें लगता था कि एआई बकवास है और किसी कठोर विषय में मेजर करने से मेरी ऐसी बेवकूफी भरी महत्वाकांक्षाएँ दूर हो जाएँगी।
वास्तव में, एक हैकर के रूप में आपको जितने गणित की आवश्यकता होती है, वह अधिकांश विश्वविद्यालय विभागों द्वारा स्वीकार किए जाने से बहुत कम है। मुझे नहीं लगता कि आपको हाई स्कूल के गणित के अलावा कम्प्यूटेशन के सिद्धांत से कुछ अवधारणाओं की आवश्यकता है। (यदि आप उन्हें लिखने से बचना चाहते हैं तो आपको पता होना चाहिए कि n^2 एल्गोरिदम क्या है।) जब तक कि आप गणित के अनुप्रयोग लिखने की योजना नहीं बना रहे हों, बेशक। उदाहरण के लिए, रोबोटिक्स पूरी तरह से गणित है।
लेकिन जबकि आपको अधिकांश प्रकार की हैकिंग के लिए गणित की आवश्यकता नहीं है, सूत्रों को अलग करने के लिए 1001 तरकीबें जानने के अर्थ में, गणित अपने आप में अध्ययन करने के लिए बहुत ही उपयोगी है। यह लगभग किसी भी तरह के काम के लिए रूपकों का एक मूल्यवान स्रोत है।[3] काश मैंने कॉलेज में इस कारण से अधिक गणित का अध्ययन किया होता।
बहुत से लोगों की तरह, बचपन में मेरे साथ भी गणित का दुरुपयोग किया गया था। मैंने गणित को ऐसे सूत्रों के संग्रह के रूप में सोचना सीखा जो न तो सुंदर थे और न ही मेरे जीवन से उनका कोई संबंध था (भले ही उन्हें "शब्द समस्याओं" में अनुवाद करने का प्रयास किया गया हो), लेकिन परीक्षाओं में अच्छा प्रदर्शन करने के लिए उन्हें याद रखना पड़ता था।
कॉलेज में आप जो सबसे मूल्यवान काम कर सकते हैं, वह यह सीखना होगा कि गणित वास्तव में क्या है। यह आसान नहीं हो सकता है, क्योंकि बहुत से अच्छे गणितज्ञ बुरे शिक्षक होते हैं। और जबकि गणित पर कई लोकप्रिय किताबें हैं, कुछ ही अच्छी लगती हैं। मुझे लगता है कि सबसे अच्छी किताबें डब्ल्यूडब्ल्यू सॉयर की हैं। और बेशक यूक्लिड। [4]
सब कुछ
थॉमस हक्सले ने कहा था, "हर चीज के बारे में कुछ न कुछ सीखने की कोशिश करो और किसी चीज के बारे में सब कुछ सीखने की कोशिश करो।" अधिकांश विश्वविद्यालय इसी आदर्श को अपनाते हैं।
लेकिन सब कुछ क्या है? मेरे लिए इसका मतलब है, वह सब जो लोग कठिन समस्याओं पर ईमानदारी से काम करने के दौरान सीखते हैं। इस तरह के सभी काम एक दूसरे से जुड़े होते हैं, जिसमें एक क्षेत्र के विचारों और तकनीकों को अक्सर दूसरे क्षेत्रों में सफलतापूर्वक प्रत्यारोपित किया जा सकता है। यहां तक कि दूसरे क्षेत्र जो काफी दूर लगते हैं। उदाहरण के लिए, मैं निबंध उसी तरह लिखता हूं जैसे मैं सॉफ्टवेयर लिखता हूं: मैं बैठता हूं और एक खराब संस्करण 1 को जितनी तेजी से टाइप कर सकता हूं उतनी तेजी से लिखता हूं, फिर इसे फिर से लिखने में कई हफ्ते लगाता हूं।
कठिन समस्याओं पर काम करना, अपने आप में, पर्याप्त नहीं है। मध्यकालीन कीमियागर एक कठिन समस्या पर काम कर रहे थे, लेकिन उनका दृष्टिकोण इतना झूठा था कि इसका अध्ययन करने से सीखने के लिए बहुत कम था, सिवाय संभवतः लोगों की खुद को धोखा देने की क्षमता के। दुर्भाग्य से जिस तरह की AI मैं कॉलेज में सीखने की कोशिश कर रहा था, उसमें भी यही दोष था: एक बहुत ही कठिन समस्या, जिसे निराशाजनक रूप से अपर्याप्त तकनीकों के साथ हल किया गया था। बोल्ड? धोखाधड़ी के करीब।
सामाजिक विज्ञान भी काफी हद तक फर्जी हैं, क्योंकि वे बौद्धिक फैशन से बहुत प्रभावित हैं। अगर कोई भौतिक विज्ञानी 100 साल पहले के किसी सहकर्मी से मिले, तो वह उसे कुछ नई चीजें सिखा सकता है; अगर कोई मनोवैज्ञानिक 100 साल पहले के किसी सहकर्मी से मिले, तो वे सिर्फ़ वैचारिक बहस में उलझ जाएंगे। हां, बेशक, आप मनोविज्ञान की कक्षा लेकर कुछ सीखेंगे। मुद्दा यह है कि आप दूसरे विभाग में कक्षा लेकर ज़्यादा सीखेंगे।
मेरी राय में, गणित, कठिन विज्ञान, इंजीनियरिंग, इतिहास (विशेष रूप से आर्थिक और सामाजिक इतिहास, और विज्ञान का इतिहास), वास्तुकला और क्लासिक्स, सार्थक विभाग हैं। कला इतिहास में एक सर्वेक्षण पाठ्यक्रम सार्थक हो सकता है। आधुनिक साहित्य महत्वपूर्ण है, लेकिन इसके बारे में जानने का तरीका सिर्फ पढ़ना है। मैं संगीत के बारे में इतना नहीं जानता कि कह सकूँ।
आप सामाजिक विज्ञान, दर्शनशास्त्र और हाल ही में राजनीतिक दबावों के जवाब में बनाए गए विभिन्न विभागों को छोड़ सकते हैं। इनमें से कई क्षेत्र निश्चित रूप से महत्वपूर्ण समस्याओं के बारे में बात करते हैं। लेकिन जिस तरह से वे उनके बारे में बात करते हैं वह बेकार है। उदाहरण के लिए, दर्शनशास्त्र अन्य बातों के अलावा, एक दूसरे के प्रति हमारे दायित्वों के बारे में बात करता है; लेकिन आप इस बारे में एक बुद्धिमान दादी या ईबी व्हाइट से एक अकादमिक दार्शनिक से अधिक सीख सकते हैं।
मैं यहाँ अपने अनुभव से बोल रहा हूँ। मुझे शायद बुरा लगना चाहिए था जब लोग क्लिंटन पर हँसे थे जब उन्होंने कहा था कि "यह इस बात पर निर्भर करता है कि 'है' शब्द का क्या अर्थ है।" मैंने कॉलेज में "है" का अर्थ क्या है, इस पर लगभग पाँच कक्षाएँ लीं।
यह पता लगाने का एक और तरीका है कि कौन से क्षेत्र अध्ययन के लायक हैं , ड्रॉपआउट ग्राफ़ बनाना। उदाहरण के लिए, मैं ऐसे कई लोगों को जानता हूँ जिन्होंने गणित से कंप्यूटर विज्ञान में स्विच किया क्योंकि उन्हें गणित बहुत कठिन लगा, और कोई भी ऐसा नहीं जिसने इसके विपरीत किया। लोग कठिन चीजें बेवजह नहीं करते; कोई भी व्यक्ति कठिन समस्या पर तब तक काम नहीं करेगा जब तक कि वह आनुपातिक रूप से (या कम से कम लॉग(एन)) अधिक फायदेमंद न हो। इसलिए संभवतः गणित कंप्यूटर विज्ञान की तुलना में अध्ययन के लिए अधिक योग्य है। इसी तरह की तुलना करके आप विश्वविद्यालय के सभी विभागों का ग्राफ़ बना सकते हैं। नीचे आपको सबसे कम बौद्धिक सामग्री वाले विषय मिलेंगे।
यदि आप इस पद्धति का प्रयोग करेंगे तो आपको लगभग वही उत्तर मिलेगा जो मैंने अभी दिया है।
भाषा पाठ्यक्रम एक विसंगति है। मुझे लगता है कि उन्हें पाठ्येतर गतिविधियों के रूप में बेहतर माना जाना चाहिए, जैसे मिट्टी के बर्तन बनाने की कक्षाएँ। वे उस देश में रहने के साथ मिलकर कहीं अधिक उपयोगी होंगे जहाँ भाषा बोली जाती है। मैंने एक नए छात्र के रूप में अरबी का अध्ययन किया। यह बहुत काम था, और एकमात्र स्थायी लाभ सेमिटिक जड़ों को पहचानने की एक अजीब क्षमता और लोगों द्वारा शब्दों को पहचानने के तरीके के बारे में कुछ अंतर्दृष्टि थी।
स्टूडियो आर्ट और क्रिएटिव राइटिंग कोर्स वाइल्डकार्ड हैं। आमतौर पर आपको बहुत कुछ नहीं सिखाया जाता है: आप बस जो चाहें उस पर काम करते हैं (या काम नहीं करते हैं), और फिर शिक्षक की अस्पष्ट देखरेख में एक-दूसरे की रचनाओं की "आलोचना" करने बैठते हैं। लेकिन लेखन और कला दोनों ही बहुत कठिन समस्याएं हैं जिन पर (कुछ) लोग ईमानदारी से काम करते हैं, इसलिए वे करने लायक हैं, खासकर अगर आपको कोई अच्छा शिक्षक मिल जाए।
नौकरियाँ
बेशक कॉलेज के छात्रों को सिर्फ़ पढ़ाई के बारे में ही नहीं सोचना पड़ता। उन्हें दो व्यावहारिक समस्याओं पर भी विचार करना पड़ता है: नौकरी और ग्रेजुएट स्कूल।
सिद्धांत रूप में उदार शिक्षा से नौकरी के लिए प्रशिक्षण नहीं मिलना चाहिए। लेकिन हर कोई जानता है कि यह एक झूठ है। हर कॉलेज में हैकर्स व्यावहारिक कौशल सीखते हैं, और यह संयोग से नहीं होता।
नौकरी पाने के लिए आपको क्या सीखना चाहिए यह इस बात पर निर्भर करता है कि आप किस तरह की नौकरी चाहते हैं। अगर आप किसी बड़ी कंपनी में काम करना चाहते हैं, तो विंडोज पर ब्लब को हैक करना सीखें। अगर आप किसी अच्छी छोटी कंपनी या रिसर्च लैब में काम करना चाहते हैं, तो आपके लिए लिनक्स पर रूबी सीखना बेहतर रहेगा। और अगर आप अपनी खुद की कंपनी शुरू करना चाहते हैं, जो मुझे लगता है कि अधिक से अधिक आम होगी, तो सबसे शक्तिशाली टूल में महारत हासिल करें, क्योंकि आप अपने प्रतिद्वंद्वियों के खिलाफ दौड़ में होंगे, और वे आपके घोड़े होंगे।
कॉलेज में आपको जो कौशल सीखना चाहिए और जो कौशल आप नौकरी में इस्तेमाल करेंगे, उनके बीच कोई सीधा संबंध नहीं है। कॉलेज में आपको थोड़ा ऊंचा लक्ष्य रखना चाहिए।
वर्कआउट में एक फुटबॉल खिलाड़ी 300 पाउंड का बेंच प्रेस कर सकता है, भले ही उसे खेल के दौरान कभी भी इतना बल न लगाना पड़े। इसी तरह, अगर आपके प्रोफेसर आपको ऐसी चीजें सिखाने की कोशिश करते हैं जो नौकरी में आपकी ज़रूरत से ज़्यादा उन्नत हैं, तो ऐसा सिर्फ़ इसलिए नहीं हो सकता क्योंकि वे शिक्षाविद हैं, वास्तविक दुनिया से अलग हैं। हो सकता है कि वे आपको अपने दिमाग से वजन उठाने के लिए मजबूर कर रहे हों।
कक्षाओं में आपके द्वारा लिखे जाने वाले प्रोग्राम वास्तविक दुनिया में लिखे जाने वाले प्रोग्राम से तीन महत्वपूर्ण तरीकों से भिन्न होते हैं: वे छोटे होते हैं; आपको शुरुआत से शुरू करना होता है; और समस्या आमतौर पर कृत्रिम और पूर्वनिर्धारित होती है। वास्तविक दुनिया में, प्रोग्राम बड़े होते हैं, उनमें मौजूदा कोड शामिल होता है, और अक्सर आपको इसे हल करने से पहले यह पता लगाना होता है कि समस्या क्या है।
इन कौशलों को सीखने के लिए आपको कॉलेज छोड़ने (या यहां तक कि प्रवेश लेने) का इंतजार नहीं करना पड़ेगा। उदाहरण के लिए, यदि आप मौजूदा कोड से निपटना सीखना चाहते हैं, तो आप ओपन-सोर्स प्रोजेक्ट में योगदान दे सकते हैं। जिस तरह के नियोक्ता के लिए आप काम करना चाहते हैं, वह क्लास असाइनमेंट में अच्छे ग्रेड से उतना ही प्रभावित होगा।
मौजूदा ओपन-सोर्स प्रोजेक्ट्स में आपको तीसरे कौशल, यानी किस समस्या को हल करना है, पर ज़्यादा अभ्यास नहीं मिलता। लेकिन आपको अपनी नई परियोजनाएँ शुरू करने से कोई नहीं रोक सकता। और अच्छे नियोक्ता इससे और भी ज़्यादा प्रभावित होंगे।
आपको किस तरह की समस्या को हल करने की कोशिश करनी चाहिए? इसका उत्तर देने का एक तरीका यह पूछना है कि एक उपयोगकर्ता के रूप में आपको क्या चाहिए। उदाहरण के लिए, मैं स्पैम फ़िल्टरिंग के लिए एक अच्छे एल्गोरिदम पर ठोकर खाई क्योंकि मैं स्पैम प्राप्त करना बंद करना चाहता था। अब मैं चाहता हूं कि मेरे पास एक मेल रीडर हो जो किसी तरह मेरे इनबॉक्स को भरने से रोक सके। मैं अपने इनबॉक्स को टू-डू सूची के रूप में उपयोग करता हूं। लेकिन यह बोतलों को खोलने के लिए एक पेचकस का उपयोग करने जैसा है; जो वास्तव में एक बोतल खोलने वाला उपकरण है।
स्नातक विद्यालय
ग्रेजुएट स्कूल के बारे में क्या ख्याल है? क्या आपको जाना चाहिए? और आप एक अच्छे स्कूल में कैसे प्रवेश पा सकते हैं?
सिद्धांत रूप में, ग्रेजुएट स्कूल अनुसंधान में पेशेवर प्रशिक्षण है, और आपको तब तक नहीं जाना चाहिए जब तक आप अनुसंधान को करियर के रूप में नहीं करना चाहते। और फिर भी सीएस में पीएचडी पाने वाले आधे लोग अनुसंधान में नहीं जाते। मैं प्रोफेसर बनने के लिए ग्रेजुएट स्कूल नहीं गया था। मैं इसलिए गया क्योंकि मैं और अधिक सीखना चाहता था।
इसलिए अगर आप मुख्य रूप से हैकिंग में रुचि रखते हैं और आप स्नातक विद्यालय जाते हैं, तो आपको ऐसे बहुत से अन्य लोग मिलेंगे जो इसी तरह अपने तत्व से बाहर हैं। और अगर आपके आस-पास के आधे लोग भी उसी तरह अपने तत्व से बाहर हैं जिस तरह आप हैं, तो क्या आप वास्तव में अपने तत्व से बाहर हैं?
"कंप्यूटर विज्ञान" में एक बुनियादी समस्या है, और यह इस तरह की स्थितियों में सामने आती है। कोई भी निश्चित नहीं है कि "शोध" क्या होना चाहिए। बहुत सारे शोध हैकिंग हैं जिन्हें एक अकादमिक पेपर के रूप में एक और मात्रा में प्रकाशन प्राप्त करने के लिए ठूंसना पड़ा।
इसलिए यह पूछना भ्रामक है कि क्या आप ग्रेजुएट स्कूल में घर जैसा महसूस करेंगे, क्योंकि बहुत कम लोग कंप्यूटर विज्ञान में घर जैसा महसूस करते हैं। पूरा क्षेत्र अपने आप में असहज है। इसलिए यह तथ्य कि आप मुख्य रूप से हैकिंग में रुचि रखते हैं, आपको ग्रेजुएट स्कूल जाने से नहीं रोकना चाहिए। बस सावधान रहें कि आपको बहुत सी ऐसी चीजें करनी होंगी जो आपको पसंद नहीं हैं।
नंबर एक आपका शोध प्रबंध होगा। लगभग हर कोई अपने शोध प्रबंध को पूरा करने के बाद उससे नफरत करने लगता है। यह प्रक्रिया स्वाभाविक रूप से एक अप्रिय परिणाम उत्पन्न करती है, जैसे कि पूरे गेहूं के आटे से बना केक और बारह घंटे तक पकाया गया हो। कुछ शोध प्रबंधों को खुशी से पढ़ा जाता है, खासकर उनके लेखकों द्वारा।
लेकिन आपसे पहले हज़ारों लोगों ने शोध प्रबंध लिखने के दौरान कष्ट झेले हैं। और इसके अलावा, ग्रैजुएट स्कूल स्वर्ग के करीब है। बहुत से लोग इसे अपने जीवन के सबसे खुशी भरे समय के रूप में याद करते हैं। और लगभग सभी बाकी लोग, जिनमें मैं भी शामिल हूँ, इसे एक ऐसे दौर के रूप में याद करते हैं जो तब होता, जब उन्हें शोध प्रबंध नहीं लिखना पड़ता। [5]
ग्रैड स्कूल के साथ खतरा यह है कि आप पहले से ही डरावने हिस्से को नहीं देख पाते हैं। पीएचडी कार्यक्रम कॉलेज के दूसरे भाग के रूप में शुरू होते हैं, जिसमें कई साल की कक्षाएं होती हैं। इसलिए जब तक आप शोध प्रबंध लिखने के डर का सामना करते हैं, तब तक आप पहले से ही कई साल बिता चुके होते हैं। यदि आप अभी छोड़ देते हैं, तो आप ग्रैड-स्कूल ड्रॉपआउट हो जाएँगे, और आपको शायद यह विचार पसंद न आए। जब रॉबर्ट को 1988 का इंटरनेट वर्म लिखने के लिए ग्रैड स्कूल से बाहर निकाल दिया गया, तो मुझे उससे बहुत ईर्ष्या हुई कि उसने असफलता के कलंक के बिना बाहर निकलने का रास्ता खोज लिया।
कुल मिलाकर, ग्रेजुएट स्कूल शायद ज़्यादातर विकल्पों से बेहतर है। आप बहुत से होशियार लोगों से मिलते हैं, और आपकी उदास टालमटोल कम से कम एक शक्तिशाली आम बंधन होगी। और बेशक अंत में आपके पास पीएचडी होगी। मैं इसके बारे में भूल गया। मुझे लगता है कि यह कुछ मूल्यवान है।
पीएचडी का सबसे बड़ा फायदा (बेशक, शिक्षा जगत का यूनियन कार्ड होने के अलावा) यह हो सकता है कि यह आपको कुछ आधारभूत आत्मविश्वास देता है। उदाहरण के लिए, मेरे घर में हनीवेल थर्मोस्टेट का यूआई सबसे भयानक है। मेरी माँ, जिनके पास वही मॉडल है, ने अपने थर्मोस्टेट को संचालित करने का तरीका सीखने के लिए एक दिन लगन से उपयोगकर्ता पुस्तिका पढ़ी। उसने मान लिया कि समस्या उसके साथ है। लेकिन मैं खुद से सोच सकता हूँ "अगर कंप्यूटर विज्ञान में पीएचडी वाला कोई व्यक्ति इस थर्मोस्टेट को नहीं समझ सकता है, तो इसे बुरी तरह से डिज़ाइन किया गया होगा ।"
यदि आप इस अस्पष्ट अनुशंसा के बाद भी स्नातक विद्यालय जाना चाहते हैं, तो मैं आपको प्रवेश पाने के बारे में ठोस सलाह दे सकता हूँ। मेरे बहुत से मित्र अब सीएस प्रोफेसर हैं, इसलिए मेरे पास प्रवेश के बारे में अंदरूनी जानकारी है। यह कॉलेज से काफी अलग है। अधिकांश कॉलेजों में, प्रवेश अधिकारी तय करते हैं कि किसे प्रवेश मिलेगा। पीएचडी कार्यक्रमों के लिए, प्रोफेसर यह करते हैं। और वे इसे अच्छी तरह से करने की कोशिश करते हैं, क्योंकि जिन लोगों को वे प्रवेश देते हैं वे उनके लिए काम करने वाले हैं।
जाहिर है कि सर्वश्रेष्ठ स्कूलों में केवल सिफ़ारिशें ही मायने रखती हैं। मानकीकृत परीक्षण कुछ मायने नहीं रखते, और ग्रेड बहुत कम मायने रखते हैं। निबंध ज़्यादातर बेवकूफ़ी भरी बातें कहकर खुद को अयोग्य ठहराने का एक अवसर होता है। प्रोफेसरों को केवल सिफ़ारिशों पर भरोसा होता है, अधिमानतः उन लोगों से जो वे जानते हैं। [6]
इसलिए यदि आप पीएचडी कार्यक्रम में प्रवेश लेना चाहते हैं, तो मुख्य बात यह है कि आप अपने प्रोफेसरों को प्रभावित करें। और मेरे उन दोस्तों से जो प्रोफेसर हैं, मैं जानता हूँ कि उन्हें क्या प्रभावित करता है: केवल उन्हें प्रभावित करने की कोशिश करना नहीं। वे उन छात्रों से प्रभावित नहीं होते जो अच्छे ग्रेड प्राप्त करते हैं या उनके शोध सहायक बनना चाहते हैं ताकि वे ग्रेजुएट स्कूल में प्रवेश पा सकें। वे उन छात्रों से प्रभावित होते हैं जो अच्छे ग्रेड प्राप्त करते हैं और उनके शोध सहायक बनना चाहते हैं क्योंकि वे वास्तव में विषय में रुचि रखते हैं।
इसलिए कॉलेज में आप जो सबसे अच्छी चीज कर सकते हैं, चाहे आप ग्रेजुएट स्कूल में जाना चाहते हों या सिर्फ हैकिंग में अच्छे बनना चाहते हों, वह यह पता लगाना है कि आपको वास्तव में क्या पसंद है। प्रोफेसरों को आपको ग्रेजुएट स्कूल में जाने के लिए मनाना मुश्किल है, और समस्याओं को हल करने के लिए मनाना असंभव है। कॉलेज वह जगह है जहाँ दिखावा काम करना बंद कर देता है। इस बिंदु से, जब तक कि आप किसी बड़ी कंपनी के लिए काम नहीं करना चाहते, जो कि हाई स्कूल में वापस जाने जैसा है, आगे बढ़ने का एकमात्र तरीका वह करना है जो आपको पसंद है ।
नोट्स
[1] ऐसा लगता है कि किसी ने इस पर ध्यान नहीं दिया, जो दर्शाता है कि 1984 तक अर्पानेट (जो इंटरनेट बन गया) कितना महत्वहीन था।
[2] यही कारण है कि जब मैं नियोक्ता बना, तो मुझे GPA की परवाह नहीं थी। वास्तव में, हमने सक्रिय रूप से ऐसे लोगों की तलाश की जो स्कूल से बाहर फेल हो गए थे। हमने एक बार हार्वर्ड के आसपास पोस्टर लगाए थे, जिसमें लिखा था "क्या आपको अपनी कक्षाओं में खराब प्रदर्शन करने के कारण बाहर निकाल दिया गया है क्योंकि आपने अपना सारा समय अपने किसी प्रोजेक्ट पर काम करने में बिताया? हमारे लिए काम करने के लिए आओ!" हम एक ऐसे बच्चे को खोजने में कामयाब रहे जो फेल हो गया था, और वह एक बेहतरीन हैकर था।
जब हार्वर्ड अंडरग्रेजुएट्स को एक साल के लिए बाहर निकालता है, तो उन्हें नौकरी करनी पड़ती है। विचार यह है कि उन्हें दिखाया जाए कि वास्तविक दुनिया कितनी भयानक है, ताकि वे समझ सकें कि वे कॉलेज में होने के लिए कितने भाग्यशाली हैं। यह योजना उस लड़के के साथ उल्टी पड़ गई जो हमारे लिए काम करने आया था, क्योंकि उसे स्कूल में जितना मज़ा आया था, उससे कहीं ज़्यादा मज़ा आया और उस साल स्टॉक ऑप्शन से उसके किसी भी प्रोफेसर की तनख्वाह से ज़्यादा कमाई हुई। इसलिए साल के अंत में पश्चाताप करने के बजाय, उसने एक और साल की छुट्टी ली और यूरोप चला गया। आखिरकार उसने लगभग 26 साल की उम्र में स्नातक की उपाधि प्राप्त की।
[3] एरिक रेमंड का कहना है कि हैकर्स के लिए सबसे अच्छे रूपक सेट थ्योरी, कॉम्बिनेटरिक्स और ग्राफ थ्योरी में हैं।
ट्रेवर ब्लैकवेल आपको गणित की पढ़ाई करने वालों के लिए गणित की कक्षाएं लेने की याद दिलाते हैं। "'इंजीनियरों के लिए गणित' की कक्षाएं बहुत खराब हैं। वास्तव में 'इंजीनियरों के लिए x' की कक्षाएं बहुत खराब हैं, जहाँ x में गणित, कानून, लेखन और दृश्य डिजाइन शामिल हैं।"
[4] अन्य अत्यधिक अनुशंसित पुस्तकें: क्योरेंट और रॉबिंस द्वारा लिखित गणित क्या है?; हिल्बर्ट और कोहन-वोसेन द्वारा लिखित ज्यामिति और कल्पना। और ग्राफिक डिज़ाइन में रुचि रखने वालों के लिए, बायरन की यूक्लिड ।
[5] अगर आप एक बेहतरीन ज़िंदगी जीना चाहते हैं, तो आपको ग्रैजुएट स्कूल जाना होगा, पहले या दूसरे साल में चुपके से अपना शोध प्रबंध लिखना होगा और फिर अगले तीन साल तक बस मौज-मस्ती करनी होगी, एक बार में एक अध्याय लिखना होगा। यह संभावना ग्रैजुएट छात्रों के मुंह में पानी ला देगी, लेकिन मैं किसी ऐसे व्यक्ति को नहीं जानता जिसके पास इसे पूरा करने का अनुशासन हो।
[6] एक प्रोफेसर मित्र का कहना है कि हर साल उनके द्वारा दाखिला दिए जाने वाले 15-20% स्नातक छात्र "लॉन्ग शॉट" होते हैं। लेकिन लॉन्ग शॉट से उनका मतलब उन लोगों से है जिनके आवेदन हर तरह से सही हैं, सिवाय इसके कि प्रवेश समिति में कोई भी उन प्रोफेसरों को नहीं जानता जिन्होंने सिफारिशें लिखी हैं।
इसलिए यदि आप विज्ञान में स्नातक विद्यालय में प्रवेश लेना चाहते हैं, तो आपको किसी ऐसे कॉलेज में जाना होगा जहाँ वास्तविक शोध प्रोफेसर हों। अन्यथा आप प्रवेश समितियों के लिए जोखिम भरा दांव साबित होंगे, चाहे आप कितने भी अच्छे क्यों न हों।
जिसका मतलब है एक आश्चर्यजनक लेकिन जाहिर तौर पर अपरिहार्य परिणाम: छोटे उदार कला महाविद्यालयों का अंत हो चुका है। ज़्यादातर होशियार हाई स्कूल के बच्चे कम से कम विज्ञान में जाने के बारे में सोचते हैं, भले ही वे अंततः ऐसा न करना चाहें। ऐसे कॉलेज में क्यों जाएं जो उनके विकल्पों को सीमित करता है?
ट्रेवर ब्लैकवेल, एलेक्स लेविन, जेसिका लिविंगस्टन, रॉबर्ट मॉरिस, एरिक रेमंड और कई अज्ञात सीएस प्रोफेसरों को इस ड्राफ्ट को पढ़ने के लिए धन्यवाद , और उन छात्रों को भी धन्यवाद जिनके प्रश्नों से यह शुरू हुआ।