如何成為一名黑客 原版在這里http://catb.org/~esr/faqs/hacker-howto.html
Copyright ? 2001 by Eric S. Raymond
譯文來自這里 http://www.aka.org.cn/Docs/hacker-howto_2001.html
翻譯:Barret
允許未經(jīng)作者及譯者的同意進(jìn)行非商業(yè)目的的轉(zhuǎn)載,但必須保持原文的完整性。
內(nèi)容一覽 為什么會有這份文檔? 什么是黑客? 黑客應(yīng)有的態(tài)度 黑客的基本技能 黑客文化中的地位 黑客和書呆子(Nerd)的聯(lián)系 風(fēng)格的意義 其它資源 FAQ(常問問題解答)
為什么會有這份文檔?
作為 Jargon File 的編輯和一些其他有名的類似性質(zhì)文章的作者,我經(jīng)常收到充滿熱情的網(wǎng)絡(luò)新手的email提問(確實如此) “我如何才能成為一名出色的黑客?”非常奇怪的是似乎沒有任何的FAQ或者Web形式的文檔來說明這個十分重要的問題,因此我寫了一份。
如果你現(xiàn)在讀的是這份文檔的離線拷貝,那么請注意當(dāng)前最新版本(英文版)在 http://www.tuxedo.org/~esr/faqs/hacker-howto.html可以得到。
注意:在這份文檔最后有 FAQ(常問問題解答)。請在向我提出任何關(guān)于這份文檔的疑問之前讀兩遍。
目前這份文檔有很多翻譯版本: 保加利亞語, 簡體中文, 繁體中文, 丹麥語, 荷蘭語, 法語, 德語, 匈牙利語, 印尼語, 日語, 朝鮮語, 葡萄牙語, 俄語及 瑞典語。注意由于這份文檔時有修正,所以以上翻譯版本可能有不同程度的過時。
什么是黑客?
Jargon File 包含了一大堆關(guān)于“hacker”這個詞的定義,大部分與技術(shù)高超和熱衷解決問題及超越極限有關(guān)。但如果你只想知道如何 成為 一名黑客,那么只有兩件事情確實相關(guān)。
這可以追溯到幾十年前第一臺分時小型電腦誕生, ARPAnet 實驗也剛展開的年代,那時有一個由程序設(shè)計專家和網(wǎng)絡(luò)名人所組成的, 具有分享特點的文化社群。這種文化的成員創(chuàng)造了 “hacker” 這個名詞。黑客們建立了 Internet。黑客們發(fā)明出了現(xiàn)在使用的 UNIX 操作系統(tǒng)。黑客們使 Usenet 運作起來, 黑客們讓 WWW 運轉(zhuǎn)起來。如果你是這個文化的一部分,如果你對這種文化有所貢獻(xiàn),而且這個社群的其它成員也認(rèn)識你并稱你為 hacker, 那么你就是一位黑客。
黑客精神并不僅僅局限在軟件的黑客文化中。有人用黑客態(tài)度對待其它事情,如電子學(xué)和音樂—— 事實上,你可以在任何最高級別的科學(xué)和藝術(shù)活動中發(fā)現(xiàn)它。精于軟件的黑客贊賞這些在其他領(lǐng)域的同類并把他們也稱作黑客—— 有人宣稱黑客天性是絕對獨立于他們工作的特定領(lǐng)域的。 但在這份文檔中,我們將注意力集中在軟件黑客的技術(shù)和態(tài)度,以及發(fā)明了“黑客”一詞的以共享為特征的文化傳統(tǒng)之上。
有一群人大聲嚷嚷著自己是黑客,但他們不是。他們(主要是正值青春的少年)是一些蓄意破壞計算機和電話系統(tǒng)的人。真正的黑客把這些人叫做“駭客”(cracker),并不屑與之為伍。多數(shù)真正的黑客認(rèn)為駭客們又懶又不負(fù)責(zé)任,還沒什么大本事。專門以破壞別人安全為目的的行為并不能使你成為一名黑客, 正如用鐵絲偷開走汽車并不能使你成為一個汽車工程師。不幸的是,很多記者和作家往往錯把“駭客”當(dāng)成黑客;這種做法一直使真正的黑客感到惱火。
根本的區(qū)別是:黑客搞建設(shè),駭客搞破壞。
如果你想成為一名黑客,請接著讀下去。如果你想做一個駭客,去讀 alt.2600 新聞組,并在意識到你并不像自己想象的那么聰明后去坐五到十次監(jiān)獄。關(guān)于駭客,我只想說這么多。 黑客應(yīng)有的態(tài)度
黑客們解決問題,建設(shè)事物,同時他們崇尚自由和無私的雙向幫助。要被他人承認(rèn)是一名黑客,你的行為得體現(xiàn)出你好像具備了這種態(tài)度一般。而要想做得好象你具備這種態(tài)度一般,你就得切切實實堅持它。
但是如果你認(rèn)為培養(yǎng)黑客態(tài)度只是一條在黑客文化圈中得到承認(rèn)的路子,那就大錯特錯了。成為具備這些特質(zhì)的這種人對 你自己非常重要——有助于你學(xué)習(xí),及給你提供源源不斷的動力。同所有創(chuàng)造性的藝術(shù)一樣,成為大師的最有效方法就是模仿大師的精神—— 不僅從智力上,也要從感情上進(jìn)行模仿。
或許, 下面這首現(xiàn)代的禪詩很好的闡述了這個意思:
To follow the path:(沿著這樣一條道路:)
look to the master,(尋找大師,)
follow the master,(跟隨大師,)
walk with the master,(與大師通行,)
see through the master,(洞察大師,)
become the master.(成為大師。)
嗯,如果你想成為一名黑客,反復(fù)讀下面的事情直至你相信它們:
- 世界充滿了待解決的迷人問題。
做一名黑客會有很多樂趣,但卻是要費很多氣力方能得到的樂趣。 這些努力需要動力。成功的運動員從鍛煉身體、超越自我極限的愉悅中得到動力。同樣,做黑客,你得能從解決問題,磨練技術(shù)及鍛煉智力中得到基本的樂趣。
如果你還不是天生的這類人又想做黑客,你就要設(shè)法成為這樣的人。否則你會發(fā)現(xiàn),你的黑客熱情會被其他分心的事物吞噬掉——如金錢、性和社會上的虛名。
(同樣你必須對你自己的學(xué)習(xí)能力建立信心——相信盡管當(dāng)你對某問題近乎一無所知,但只要你一點一點地試驗、學(xué)習(xí),最終會掌握并解決它。)
- 一個問題不應(yīng)該被解決兩次。
聰明的腦袋是寶貴的有限的資源。當(dāng)世界還充滿非常多有待解決的有趣的新問題時,它們不應(yīng)該被浪費在重新發(fā)明輪子這類事情上。
作為一名黑客,你必須相信其他黑客的思考時間是寶貴的——因此共享信息,解決問題并發(fā)布結(jié)果給其他黑客幾乎是一種道義,這樣其他人就可以去解決 新問題而不是不斷地忙于對付舊問題。
(你不必認(rèn)為一定要把你 所有的發(fā)明創(chuàng)造公布出去,但這樣做的黑客是贏得大家極度尊敬的人。賣些錢來養(yǎng)家糊口,租房買計算機甚至發(fā)大財和黑客價值觀也是相容的,只要你別忘記你還是個黑客。)
- 無聊和乏味的工作是罪惡。
黑客(泛指具有創(chuàng)造力的人們)應(yīng)該從來不會被愚蠢的重復(fù)性勞動所困擾,因為當(dāng)這種事情發(fā)生時就意味著他們沒有在做只有他們才能做的事情—— 解決新問題。這樣的浪費傷害每一個人。因此,無聊和乏味的工作不僅僅是令人不舒服而已,而且是罪惡。
作為一個黑客,你必須堅信這點并盡可能多地將乏味的工作自動化,不僅為你自己,也為了其他人(尤其是其他黑客們)。
(對此有一個明顯的例外。黑客有時也做一些在他人看來是重復(fù)性或枯燥的工作以進(jìn)行“腦力休息”,或是為了獲得某種技能,或是獲得一些除此以外無法獲得的特別經(jīng)驗。但這是自愿的——有腦子的人不應(yīng)該被迫做無聊的活兒。)
- 自由萬歲。
黑客們是天生的反獨裁主義者。任何能向你發(fā)命令的人能夠迫使你停止解決令你著迷的問題,同時,按照獨裁者的一般思路,他通常會給出一些極端愚昧的理由。因此,不論何處,任何獨裁主義的作法,只要它壓迫你和其他黑客,你就要和它斗到底。
(這并非向所有權(quán)威挑戰(zhàn)。兒童需要監(jiān)護(hù),罪犯要被看管起來。 如果服從命令得到某種東西比起用其他方式得到它更節(jié)約時間,黑客可以同意接受某種形式的權(quán)威。但這是一個有限度的,有意的交易;那種權(quán)威想要的個人服從不是你應(yīng)該同意給予的。)
權(quán)威喜歡審查和保密。他們不信任自愿的合作和信息的共享—— 他們只喜歡由他們控制的所謂“合作”。因此,作為一個黑客,你得對審查、保密,以及使用武力或欺騙去壓迫有行為能力的人們的做法有一種本能的敵意。同時你要有為此信念斗爭的意愿。
- 態(tài)度不能替代能力。
作為一名黑客,你必須培養(yǎng)起這些態(tài)度。但只具備這些態(tài)度并不能使你成為一名黑客,也不能使你成為一個運動健將和搖滾明星。成為一名黑客需要智力,實踐,奉獻(xiàn)精神和辛苦工作。
因此,你必須學(xué)會懷疑,并尊重各種各樣的能力。黑客們不會為那些裝模做樣的人浪費時間,但他們卻非常尊重能力—— 尤其是從事黑客工作的能力,不過任何能力總歸是好的。具備很少人能具備的那些方面的能力尤其好,其中具備涉及腦力、技巧和專注方面能力的當(dāng)然最好。
尊敬能力,你就會享受到提高自己能力的樂趣—— 辛苦的工作和奉獻(xiàn)會變成一種高度娛樂而非苦差事。要想成為一名黑客,這一點非常重要。
黑客的基本技能
黑客態(tài)度重要,但技術(shù)更加重要。態(tài)度無法替代技術(shù),在你被別的黑客稱為黑客之前,有一些基本的技術(shù)你必須掌握。
這些基本技術(shù)隨著新技術(shù)的出現(xiàn)和老技術(shù)的過時也隨時間在緩慢改變。例如,過去內(nèi)容包括使用機器語言編程,而直到最近才包括了HTML。總的來說現(xiàn)在主要包括以下技術(shù):
- 學(xué)習(xí)如何編程。
這當(dāng)然是最基本的黑客技能。如果你還不會任何編程語言,我建議你從Python開始。它設(shè)計清晰,文檔齊全,合適初學(xué)者入門。它是一門很好的入門語言,并且不僅僅只是個玩具;它非常強大、靈活,也適合做大型項目。我有一篇 Python評價詳細(xì)說明這點。好的 教程 可以在Python網(wǎng)站得到。
Java也是好的入門語言。它比Python難得多,但是生成的代碼速度也快得多。它同時也是一種優(yōu)秀的計算機語言,不止是用來入門。
但是注意,如果你只會一兩門語言,你將不會達(dá)到黑客所要求的技術(shù)水平,甚至也不能達(dá)到一個程序員的水平——你需要學(xué)會如何以抽象的方式思考編程問題,獨立于任何語言。要做一名真正的黑客,你需要學(xué)會在幾天內(nèi)通過一些手冊,結(jié)合你現(xiàn)在所知,迅速掌握一門新語言。這意味著你應(yīng)該學(xué)會幾種截然不同的語言。
如果要做一些重要的編程工作,你將不得不學(xué)習(xí)C語言,Unix的核心語言。 C++與C非常其他類似;如果你了解其中一種,學(xué)習(xí)另一種應(yīng)該不難。但這兩種都不適合編程入門者學(xué)習(xí)。而且事實上,你越避免用C編程,你的工作效率會越高。
C非常有效率,節(jié)約你的機器資源。不幸的是,C的高效是通過你手動做很多底層的管理(如內(nèi)存)來達(dá)到的。底層代碼都是復(fù)雜極易出現(xiàn)bug的,會使你花極多的時間調(diào)試。如今的機器速度如此之快,這通常是得不償失——比較明智的做法是使用一種運行較慢、較低效率,但大幅節(jié)省你的時間的語言。因此,選擇Python。
其他對黑客而言比較重要的語言包括 Perl和 LISP。 Perl實用,值得一學(xué);它被廣泛用于動態(tài)網(wǎng)頁和系統(tǒng)管理,因此即便你從不用Perl寫程序,至少也應(yīng)該學(xué)會看。許多人使用Perl的理由和我建議你使用Python的理由一樣,都是為了避免用C完成那些不需要C高效率的工作。你會需要理解那些工作的代碼的。
LISP值得學(xué)習(xí)的理由不同——最終掌握了它時你會得到豐富的啟迪和經(jīng)驗。這些經(jīng)驗會使你在以后的日子里成為一個更好的程序員,即使你實際上很少使用LISP本身。
當(dāng)然,實際上你最好五種都會(Python,Java,C/C++,Perl和LISP)。除了是最重要的黑客語言外,它們還代表了截然不同的編程思路和方法,每種都會讓你受益非淺。
這里我無法給你完完全全的指導(dǎo)教會你如何編程——這是個復(fù)雜的技能。但我可以告訴你,書本和上課也不能作到(最好的黑客中,有許多,也許 幾乎都是自學(xué)成材的)。你可以從書本上學(xué)到語言的特點——只是一些皮毛,但要使書面知識成為自身技能只能通過實踐和虛心向他人學(xué)習(xí)。因此要作到 (一)讀代碼及(二)寫代碼。
學(xué)習(xí)如何編程就象學(xué)習(xí)用優(yōu)美的自然語言寫作一樣。最好的做法是讀一些大師的名著,試著自己寫點東西,再讀些,再寫點,再讀些,再寫點…… 如此往復(fù),直到你的文章達(dá)到你體會到的范文的簡潔和力量。
過去找到適合閱讀的好的代碼是困難的,因為幾乎沒有大型程序的源代碼能讓新手練手。這種狀況已經(jīng)戲劇性地發(fā)生變化;開放源代碼軟件,編程工具和操作系統(tǒng)(全都由黑客寫成)現(xiàn)在已經(jīng)隨處可見。讓我們在下一個話題中繼續(xù)討論……
- 得到一個開放源代碼的Unix并學(xué)會使用、運行它。
我假設(shè)你已經(jīng)擁有或者能使用一臺個人電腦(今天的孩子們真幸福 :-) )。新手們能夠朝學(xué)習(xí)黑客技能邁出的最基本的一步就是得到一份Linux或BSD-Unix的一種,安裝在個人電腦上,并運行它。
沒錯,這世界上除了Unix還有其他操作系統(tǒng)。但它們都是以二進(jìn)制形式發(fā)布的——你無法讀到它的源代碼,也不可能修改它。嘗試在運行DOS或Windows或MacOS的機器上學(xué)習(xí)黑客技術(shù),就象是帶著腳鐐學(xué)跳舞。
除此之外,Unix還是Internet的操作系統(tǒng)。你可以學(xué)會上網(wǎng)卻不知道Unix,但你不了解Unix就無法成為一名Internet黑客。因此,今天的黑客文化在很大程度上是以Unix為中心的。(這點并不總是真的,一些很早的黑客對此一直很不高興,但Unix和Internet之間的聯(lián)系已是如此之強,甚至連Microsoft也無可奈何。)
所以, 安裝一套UNIX——我個人喜愛LINUX但還有其他種類的(是的,你可以同時安裝Linux及DOS/Windows在同一電腦上)。學(xué)習(xí)它,使用它,配置它。用它在Internet上沖浪。閱讀它的源代碼。修改它的源代碼。你會得到比在Microsoft操作系統(tǒng)上更好的編程工具(包括C,LISP,Python及Perl)。你會覺得樂趣無窮,學(xué)到在你成為大師之前意識不到的更多的知識。
想知道更多關(guān)于學(xué)習(xí)Unix的信息,訪問 The Loginataka。
想知道如何得到一份Linux,訪問 我在哪里可以獲得Linux。(譯者:對于中文讀者來講,最簡單的方式未過于前往附近的D版/正版光盤店。)
你可以在 www.bsd.org找到BSD Unix的求助及其他資源。
我有寫一篇關(guān)于 Unix和Internet基礎(chǔ)的入門文章。
(注:如果你是一個新手,我不推薦自己獨立安裝Linux或者BSD。安裝Linux的話,尋求本地Linux用戶組的幫助;或聯(lián)系 Open Projects Network。 LISC維護(hù)著一些 IRC頻道,在那里你可以獲得幫助。)
- 學(xué)會如何使用WWW和寫HTML
黑客文化建造的大多東西都在你看不見的地方發(fā)揮著作用,幫助工廠、辦公室和大學(xué)正常運轉(zhuǎn),表面上很難看到它對非黑客的普通人的生活的影響。Web是一個大大的例外。即便政客也同意,這個巨大耀眼的黑客玩具正在改變整個世界。單是這個原因(還有許多其它的),你就需要學(xué)習(xí)掌握Web。
這并不是僅僅意味著如何使用瀏覽器(誰都會),而是要學(xué)會如何寫HTML, Web的標(biāo)記語言。如果你不會編程,寫HTML會教你一些有助于學(xué)習(xí)的思考習(xí)慣。因此,先完成一個主頁。(網(wǎng)上有很多好的教程; 這是一個。)
但僅僅擁有一個主頁不能使你成為一名黑客。 Web里充滿了各種網(wǎng)頁。大多數(shù)是毫無意義的,零信息量垃圾——界面時髦的垃圾,注意,垃圾的水準(zhǔn)都類似(更多信息訪問 The HTML Hell Page)。
要想有價值,你的網(wǎng)頁必須有內(nèi)容—— 它必須有趣或?qū)ζ渌诳陀袔椭_@是下一個話題所涉及的……
- 如果你不懂實用性的英語,學(xué)習(xí)吧。
作為一個美國人和一個以英語為母語的人,我以前很不情愿提到這點,免得成為一種文化上的帝國主義。但相當(dāng)多以其他語言為母語的人一直勸我指出這一點,那就是英語是黑客文化和Internet的工作語言,你需要懂得以便在黑客社區(qū)順利工作。
這一點千真萬確。大概1991年的時候我就了解到許多黑客在技術(shù)討論中使用英語,甚至當(dāng)他們的母語都相同,英語對他們而言只是第二語言的時候;據(jù)我知道的報導(dǎo),當(dāng)前英語有著比其他語言豐富得多的技術(shù)詞匯,因此是一個對于工作來說相當(dāng)好的工具。基于類似的原因,英文技術(shù)書籍的翻譯通常不令人滿意(如果有翻譯的話)。
Linus Torvalds,一個芬蘭人,用英語注釋他的代碼(很明顯這對他來說不是湊巧)。他流利的英語成為他能夠管理全球范圍的Linux開發(fā)人員社區(qū)的重要因素。這是一個值得學(xué)習(xí)的例子。 黑客文化中的地位
象大部分不涉及金錢的文化一樣,黑客王國靠聲譽運轉(zhuǎn)。你設(shè)法解決有趣的問題,但它們到底多有趣,你的解法有多好,是要由那些和你具有同樣技術(shù)水平的人或比你更厲害的人去評判的。
相應(yīng)地,當(dāng)你在玩黑客游戲時,你得認(rèn)識到你的分?jǐn)?shù)主要靠其他黑客對你的技術(shù)的評價給出(這就是為什么只有在其它黑客稱你為黑客時,你才算得上是一名黑客)。這個事實常會被黑客是一項孤獨的工作這一印象所減弱;也會被另一個黑客文化的禁忌所減弱(現(xiàn)在逐漸減弱但仍強大):拒絕承認(rèn)自我或外部評估與一個人的動力有關(guān)系。
特別地,黑客王國被人類學(xué)家們稱為一種奉獻(xiàn)文化。 在這里你不是憑借你對別人的統(tǒng)治來建立地位和名望,也不是靠美貌,或擁有其他人想要的東西,而是靠你的奉獻(xiàn)。尤其是奉獻(xiàn)你的時間,你的創(chuàng)造和你的技術(shù)成果。
要獲得其他黑客的尊敬,基本上有五種事情你可以干:
- 寫開放源代碼軟件
第一個(也是最集中的和傳統(tǒng)的)是寫些被其他黑客認(rèn)為有趣或有用的程序,并把程序源代碼提供給整個黑客文化使用。
(過去我們稱之為“free software (自由軟件)”,但這卻使很多不知 free 的精確含義的人感到困惑。現(xiàn)在我們很多人,根據(jù)搜索引擎網(wǎng)頁內(nèi)容分析至少有2:1的比率,使用“ open-source”software(開放源代碼軟件)這個詞)。
黑客王國里最受尊敬的偶像是那些寫了大型的、好用的、具有廣泛用途的軟件,并把它們公布出去,使得每人都在使用他軟件的人。
- 幫助測試并調(diào)試開放源代碼軟件
黑客也尊敬那些使用、測試開放源代碼軟件的人。在這個并非完美的世界上,我們不可避免地要花大多數(shù)的開發(fā)時間在調(diào)試階段。 這就是為什么任何有頭腦的開放源代碼的作者都會告訴你好的beta測試員(知道如何清楚描述出錯癥狀,很好地定位錯誤,能忍受快速發(fā)布中的bug,并且愿意使用一些簡單的診斷工具)象紅寶石一樣珍貴。 甚至他們中的一個能判斷出哪個測試階段是延長的,哪個是令人精疲力盡的噩夢,哪個只是一個有益的小麻煩。
如果你是個新手,試著找一個你感興趣的正在開發(fā)的程序,做一個好的beta測試員。你會自然地從幫著測試,進(jìn)步到幫著抓臭蟲,到最后幫著改程序。你會從中學(xué)到很多,并且與未來會幫你的人結(jié)下友誼。
- 公布有用的信息
另一個好事是收集整理有用有趣的信息做成網(wǎng)頁或文檔如FAQ列表,且讓他們?nèi)菀撰@得。
主要技術(shù)FAQ的維護(hù)者受到幾乎同其他開放源代碼的作者一樣多的尊敬。
- 幫助維護(hù)基礎(chǔ)設(shè)施的運轉(zhuǎn)
黑客文化(還有Internet的工程方面的發(fā)展,就此而言)是靠自愿者運轉(zhuǎn)的。要使Internet能正常工作,就要有大量枯燥的工作不得不去完成——管理mail list,新聞組,維護(hù)大型軟件庫,開發(fā)RFC和其它技術(shù)標(biāo)準(zhǔn)等等。
做這類事情的人會得到很多尊敬,因為每人都知道這些事情是十分花時間又不象編程那樣好玩。做這些事情需要奉獻(xiàn)精神。
- 為黑客文化本身服務(wù)
最后,你可以為這個文化本身做宣傳(例如,象我這樣,寫一個“如何成為黑客”的正面的教程 :-) )(譯者:不知道Barret把它翻成中文算不算?)。這并非一定要在你已經(jīng)在這個圈子呆了很久,因以上四點中的某點而出名,有一定聲譽后才能去做。
黑客文化沒有領(lǐng)袖。精確地說,它確實有些文化英雄、部落長者、歷史學(xué)家和發(fā)言人。若你在這圈內(nèi)呆的夠長,你或許成為其中之一。記住:黑客們不相信他們的部落長者的自夸的炫耀,因此大舉追求這種名譽是危險的。與其奮力追求,不如先擺正自己的位置等它自己到你的手中——那時則要做到謙虛和優(yōu)雅。
黑客和書呆子(Nerd)的聯(lián)系
同流行的迷思相反,做一名黑客并不一定要你是個書呆子。但它確實有幫助,而且許多黑客事實上是書呆子。做一個深居簡出的人有助于你集中精力進(jìn)行十分重要的事情,如思考和編程。
因此,很多黑客都愿意接受“書呆子”這個外號,更有甚者使用更尖刻的“geek(怪人)”一詞并引以為豪—— 這是一種宣布他們獨立于主流社會的聲明方式。訪問 The Geek Page 參加更多的討論。
如果你能集中足夠的精力做好黑客工作同時還能有正常的生活,這很好。現(xiàn)在作到這一點比我在1970年代是新手的時候要容易的多;如今主流文化對技術(shù)怪人要友善的多。甚至有越來越多的人意識到黑客通常是很好的戀人和配偶的材料。
如果你因為生活上不如意而迷上做黑客,那也沒什么——至少你不會分神了。或許以后你會找到自己的另一半。
風(fēng)格的意義
重申一下,作為一名黑客,你必須進(jìn)入黑客精神之中。當(dāng)你不在計算機邊上時,你仍然有很多對黑客工作有幫助的事情可做。它們并不能替代真正的編程(沒有什么能),但很多黑客都那么做,并感到它們與黑客的本質(zhì)存在某些基本的連系。
- 學(xué)會流暢地用母語寫作。盡管程序員不能寫好文章的錯誤看法相當(dāng)普遍,但是有令人驚訝數(shù)目的黑客(包括所有我知道的最棒的)都是不錯的作家。
- 閱讀科幻小說。參加科幻小說討論會。(一個碰到黑客和未來會成為黑客的人的好方法)
- 學(xué)禪,并且/或者練功習(xí)武。(精神修煉看來是驚人相似。)
- 練就能分析音樂的聽覺,學(xué)會鑒賞特別的音樂。學(xué)會玩某種樂器,或唱歌。
- 提高對雙關(guān)語、文字游戲的鑒賞能力。
這些事情,你已經(jīng)做的越多,你就越是天生做黑客的材料。至于為什么偏偏是這些事情,原因并不完全清楚,但它們都涉及用到左-右腦能力的綜合,這似乎是關(guān)鍵所在(黑客們既需要清晰的邏輯思維,有時又需要偏離邏輯跳出問題的表象)。
最后,還有一些不要去做的事情。
- 不要使用愚蠢的,嘩眾取寵的ID或昵稱。
- 不要卷入Usenet(或其他地方的論壇)的罵戰(zhàn)。
- 不要自稱為“cyberpunk(網(wǎng)絡(luò)叛客)”,也不要浪費時間和那些人打交道。
- 不要讓你寄出的Email或張貼的帖子充滿錯誤的拼寫和亂七八糟的語法。
做以上的事情,只會招來嘲笑。黑客們個個記憶超群—— 你將需要數(shù)年的時間讓他們忘記你犯下的錯誤。
網(wǎng)名的問題值得深思。將身份隱藏在虛假的名字后是駭客、解密者、d00dz 及其他低等生物幼稚愚蠢的行為特點。黑客不會做這些事;他們對他們所作的感到驕傲,而且樂于人們將作品與他們的 真名相聯(lián)系。因此, 若你現(xiàn)在用假名,放棄它。在黑客文化里它會令你你失敗的。
其它資源
Peter Seebach 維護(hù)著一個非常好的 Hacker FAQ,專給那些不懂如何與黑客打交道的經(jīng)理看的。如果Peter的站點不能訪問,下面這個 Excite搜索應(yīng)該有一份拷貝。
我也著有 黑客文化簡史。
我寫了一份 大教堂與市集,對于Linux及開放源代碼文化現(xiàn)象有詳細(xì)的解釋。我也在這個話題上進(jìn)一步闡述導(dǎo)致的結(jié)局—— 開拓智域。
Rick Moen寫了一份很好的關(guān)于 如何運轉(zhuǎn)一個Linux用戶組的文檔。
我和Rick Moen合作完成了另一份關(guān)于 提問的智慧的文章,可以讓你事半功倍的獲得幫助。
如果你想知道PC、UNIX及Internet基本概念和工作原理,參考 The Unix and Internet Fundamentals HOWTO。
當(dāng)你釋放出一個軟件或為其打補丁,試著按 軟件發(fā)行慣例 HOWTO去做。(以上的提到的文章的中文版大多都可以在www.aka.org.cn和www.linuxforum.net找到。)
FAQ(常問問題解答)
問:你能教我做黑客嗎? 問:那么,我要如何開始? 問:我得什么時候開始學(xué)?現(xiàn)在會不會太遲了? 問:要學(xué)多久才能學(xué)會黑客道? 問:Visual Basic及Delphi是好的入門語言嗎? 問:你能幫我“黑”掉一個站點嗎?或者教我怎么黑它? 問:我怎么樣才能得到別人帳號的密碼? 問:我如何入侵/查看/監(jiān)視別人的Email? 問:我如何才能在IRC聊天室里偷到頻道op的特權(quán)? 問:我被黑了。你能幫我避免以后再被攻擊嗎? 問:我的Windows軟件出現(xiàn)問題了。你能幫我嗎? 問:我在哪里能找到可以與之交流的真正的黑客? 問:你能推薦一些有關(guān)黑客的好書嗎? 問:成為一名黑客我需要擅長數(shù)學(xué)嗎? 問:我該從那種語言學(xué)起? 問:我需要什么樣的機器配置? 問:我得因此憎恨和反對Microsoft嗎? 問:但開放源代碼軟件不會使程序員丟飯碗嗎? 問:我要如何開始?哪里有免費的Unix?
問:你能教我做黑客嗎?
答:自從第一次發(fā)布這份文檔,我每周都會收到一些請求,(頻繁的話一天幾封)要我“教會他們做黑客”。遺憾的是,我沒有時間和精力來做這個;我自己的黑客項目,及我作為一個開放源代碼倡導(dǎo)者的四處奔波已經(jīng)占用了我110%的時間。
即便我想教你,黑客也依然基本上是一項自行修煉的的態(tài)度和技術(shù)。當(dāng)真正的黑客想幫助你的時候,如果你乞求他們一湯匙一湯匙“喂”你的話,你會發(fā)現(xiàn)他們不會尊重你。
先去學(xué)一些東西。顯示你在嘗試,你能靠自己去學(xué)習(xí)。然后再去向你遇到的黑客請教特殊的問題。
如果你發(fā)E-mail給一位黑客尋求他的幫助,這是兩件首要記住的事情。第一,寫出來的文字顯得懶且粗心的人通常非常懶于思考且非常馬大哈,不能成為好黑客—— 因此注意拼寫正確,使用正確的語法及發(fā)音,否則你可能會無人理睬。第二,不要試圖要求回復(fù)到一個ISP帳號,而那個帳號與你的發(fā)信地址不同。這樣做的人一般是使用盜用帳號,不會有人有興趣為虎作倀幫助竊賊的。
問:那么,我要如何開始?
答:對你而言最佳的入門方式也許是去參加LUG(Linux用戶組)的聚會。你可以找到在 LDP的綜合Linux信息頁面上找到類似的組織;也許有一個在你家附近的,而且非常有可能與一所大學(xué)或?qū)W校掛鉤。如果你提出要求,LUG成員興許會給你一套Linux,當(dāng)然此后會幫你安裝并帶你入門。
問:我得什么時候開始學(xué)?現(xiàn)在會不會太遲了?
答:你有動力學(xué)習(xí)的時候就是好時候。大多數(shù)人看來都是在15-20歲之間開始感興趣的,但據(jù)我所知,在此年齡段之外的例外也是有的。
問:要學(xué)多久才能學(xué)會黑客道?
答:這取決于你的聰明程度和努力程度。大多數(shù)人只要他們專注,就能在18個月到2年之間學(xué)會一套令人尊敬的技能。但是,不要以為就此結(jié)束了;如果你是一個真正的黑客,你要用你的余生來學(xué)習(xí)和完善你的技術(shù)。
問:Visual Basic及Delphi是好的入門語言嗎?
答:不,因為他們不是可移植的。他們不是那些語言的開放源代碼實現(xiàn),所以你被限制在廠商選擇支持的那些平臺里。接受這樣一種壟斷局面不是黑客的態(tài)度。
Visual Basic特別糟糕。它是Microsoft的私有語言這個事實就足夠讓它臉面全無,不像其他的Basic,它是一種設(shè)計糟糕的語言會教給你壞的編程習(xí)慣。
其中一個壞習(xí)慣是會依賴于單一廠商的函數(shù)庫、控件及開發(fā)工具。一般而言,任何不能夠支持至少Linux或者一種BSD,或其他第三方操作系統(tǒng)的語言,都是一種不適合應(yīng)付黑客工作的語言。
問:你能幫我“黑”掉一個站點嗎?或者教我怎么黑它?
答:No。任何讀完這份FAQ后還問這個問題的人,都是無可救藥的蠢材,即使有時間指教我也不會理睬。任何發(fā)給我的此類E-mail都會被忽略或被痛罵一頓。
問:我怎么樣才能得到別人帳號的密碼?
答:這是駭客行為。滾得遠(yuǎn)遠(yuǎn)的,白癡。
問:我如何入侵/查看/監(jiān)視別人的Email?
答:這是駭客行為。在我面前消失,混蛋。
問:我如何才能在IRC聊天室里偷到頻道op的特權(quán)?
答:這是駭客行為。去S吧,冥頑不靈的家伙。
問:我被黑了。你能幫我避免以后再被攻擊嗎?
答:不行。目前為止,每次問我這個問題的,都是一些運行Microsoft Windows的菜鳥。不可能有效的保護(hù)Windows系統(tǒng)免受駭客攻擊;太多缺陷的代碼和架構(gòu)使保護(hù)Windows的努力有如隔靴搔癢。唯一可靠的預(yù)防來自轉(zhuǎn)移到Linux或其他設(shè)計得至少足夠安全的系統(tǒng)。
問:我的Windows軟件出現(xiàn)問題了。你能幫我嗎?
答:當(dāng)然。進(jìn)入DOS方式,然后鍵入“format c:”。你遇到的任何問題將會在幾分鐘之內(nèi)消失。
問:我在哪里能找到可以與之交流的真正的黑客?
答:最佳辦法是在你附近找一個Unix或Linux的用戶組,參加他們的聚會。(你可以在Metalab的LDP站點找到一些指向用戶組的鏈接。)
我過去曾說過不能在IRC上找到真正的黑客,但我發(fā)覺現(xiàn)在情況有所改變。顯然一些真正的黑客的社區(qū)像GIMP及Perl,也有IRC頻道了。)
問:你能推薦一些有關(guān)黑客的好書嗎?
答:我維護(hù)著一份Linux Reading List HOWTO,也許你會覺得有用。 Loginataka也很有意思。
關(guān)于Python的介紹,請訪問在Python站點上的 入門資料。
問:成為一名黑客我需要擅長數(shù)學(xué)嗎?
答:不用。黑客道很少使用常規(guī)的數(shù)學(xué)或算術(shù),不過你絕對需要能邏輯性地思考和進(jìn)行精密的推理。
尤其是你不會用到微積分或電路分析(我們把這些留給電子工程師們 :-))。 一些有限數(shù)學(xué)(包括布爾代數(shù),集合論,組合數(shù)學(xué),圖論)的背景知識會有幫助。
問:我該從那種語言學(xué)起?
答:HTML——如果你還不懂的話。市面上有一大堆的封面精美,宣傳得天花亂墜的 糟糕的 HTML書籍,不幸的是很少有好的。我最喜歡的是 HTML: The Definitive Guide。
但 HTML 不完全是一種編程語言。當(dāng)你準(zhǔn)備開始編程時,我推薦從 Python起步。你會聽到一大群人推薦 Perl,并且 Perl 依然比 Python 流行得多,但是難學(xué)得多且(以我之見)設(shè)計得不是很好。
C 確實重要,但它要比 Python 或 Perl 難多了。不要嘗試先學(xué) C。
Windows用戶不要滿足于 Visual Basic。它會教給你壞習(xí)慣,而且它不可以移植,只能在Windows下運行。避免它。
問:我需要什么樣的機器配置?
答:過去個人電腦能力相當(dāng)不夠并且內(nèi)存小,結(jié)果給黑客的學(xué)習(xí)過程設(shè)置了人為的障礙。不過一段時間以前開始就不是這樣了;任何配置比一臺 Intel 486DX50 好的機器都有足夠的能力進(jìn)行開發(fā)工作,X,及 Internet 通訊,同時你現(xiàn)在買的最小的磁盤都大得富足了。(依Barret之見,現(xiàn)在要至少Pentium 166MMX才夠。)
選擇用來學(xué)習(xí)的機器時重要的一點是注意配件是否是Linux兼容的(或BSD兼容,如果你選擇學(xué) BSD)。同剛才提到的一樣,大多數(shù)現(xiàn)在的機器都是符合的;唯一的值得注意的區(qū)域在于 modem和打印機;有些具備為Windows設(shè)計的配件的機器不會在Linux下工作。
關(guān)于硬件兼容性有一個FAQ;最新版本在 這里。
問:我得因此憎恨和反對Microsoft嗎?
答:不,你不必如此。不是因為Microsoft不令人討厭,而是因為黑客文化早在 Microsoft出現(xiàn)之前就存在了,且將在Microsoft成為歷史后依然存在。你耗費在憎恨Microsoft的任何力氣不如花在愛你的技術(shù)上。寫好的代碼—— 那會相當(dāng)有效地打擊Microsoft又不會讓你得到惡報應(yīng)。
問:但開放源代碼軟件不會使程序員丟飯碗嗎?
答:看起來不太可能——目前為止,開放源代碼軟件產(chǎn)業(yè)似乎創(chuàng)造了更多的就業(yè)機會而不是減少就業(yè)機會。如果寫一個程序比起不寫來是純經(jīng)濟(jì)收益的話,那么在寫完后,程序員應(yīng)該得到報酬不管程序是否是開放源代碼。并且,無論寫出多么“免費自由”的軟件,都存在更多對新的,定制的軟件的需求。我有這方面更多的論述,放在開放源代碼 網(wǎng)站資料中。
問:我要如何開始?哪里有免費的Unix?
答:在本份文檔的某個地方我已經(jīng)提到過何處可以得到最常用的免費Unix。要做一名黑客,你需要自立自強,以及自學(xué)能力。現(xiàn)在開始吧……