天天看點

如何成為一個Hacker

                                   by      Eric.Raymond   為什麼會有這份文檔?

作為 Jargon File 的編輯和一些其他有名的類似性質文章的作者,我經常收到充滿熱情的網絡新手的email提問(确實如此) “我如何才能成   為一名出色的黑客?”非常奇怪的是似乎沒有任何的FAQ或者Web形式的文檔來說明這個十分重要的問題,是以我寫了一份。   如果你現在讀的是這份文檔的離線拷貝,那麼請注意目前最新版本(英文版)在 http://www.tuxedo.org/~esr/faqs/hacker-howto.html可以   得到。   注意:在這份文檔最後有 FAQ(常問問題解答)。請在向我提出任何關于這份文檔的疑問之前讀兩遍。   目前這份文檔有很多翻譯版本: 保加利亞語, 簡體中文, 繁體中文, 丹麥語, 荷蘭語, 法語, 德語, 匈牙利語, 印尼語, 日語, 朝   鮮語, 葡萄牙語, 俄語及 瑞典語。注意由于這份文檔時有修正,是以以上翻譯版本可能有不同程度的過時。  

--------------------------------------------------------------------------------   什麼是黑客?

Jargon File 包含了一大堆關于“hacker”這個詞的定義,大部分與技術高超和熱衷解決問題及超越極限有關。但如果你隻想知道如何 成為   一名黑客,那麼隻有兩件事情确實相關。   這可以追溯到幾十年前第一台分時小型電腦誕生, ARPAnet 實驗也剛展開的年代,那時有一個由程式設計專家和網絡名人所組成的, 具有分享   特點的文化社群。這種文化的成員創造了 “hacker” 這個名詞。黑客們建立了 Internet。黑客們發明出了現在使用的 UNIX 作業系統。黑客   們使 Usenet 運作起來, 黑客們讓 WWW 運轉起來。如果你是這個文化的一部分,如果你對這種文化有所貢獻,而且這個社群的其它成員也認   識你并稱你為 hacker, 那麼你就是一位黑客。   黑客精神并不僅僅局限在軟體的黑客文化中。有人用黑客态度對待其它事情,如電子學和音樂—— 事實上,你可以在任何最進階别的科學和藝   術活動中發現它。精于軟體的黑客贊賞這些在其他領域的同類并把他們也稱作黑客—— 有人宣稱黑客天性是絕對獨立于他們工作的特定領域的   。 但在這份文檔中,我們将注意力集中在軟體黑客的技術和态度,以及發明了“黑客”一詞的以共享為特征的文化傳統之上。   有一群人大聲嚷嚷着自己是黑客,但他們不是。他們(主要是正值青春的少年)是一些蓄意破壞計算機和電話系統的人。真正的黑客把這些人   叫做“駭客”(cracker),并不屑與之為伍。多數真正的黑客認為駭客們又懶又不負責任,還沒什麼大學事。專門以破壞别人安全為目的的行為   并不能使你成為一名黑客, 正如用鐵絲偷開走汽車并不能使你成為一個汽車工程師。不幸的是,很多記者和作家往往錯把“駭客”當成黑客;   這種做法一直使真正的黑客感到惱火。   根本的差別是:黑客創造東西,駭客搞破壞東西。   如果你想成為一名黑客,請接着讀下去。如果你想做一個駭客,去讀 alt.2600 新聞討論區,并在意識到你并不像自己想象的那麼聰明後去坐五到   十次監獄。關于駭客,我隻想說這麼多。  

--------------------------------------------------------------------------------   黑客應有的态度

黑客們解決問題,建設事物,同時他們崇尚自由和無私的雙向幫助。要被他人承認是一名黑客,你的行為得展現出你好像具備了這種态度一般   。而要想做得好象你具備這種态度一般,你就得切切實實堅持它。   但是如果你認為培養黑客态度隻是一條在黑客文化圈中得到承認的路子,那就大錯特錯了。成為具備這些特質的這種人對 你自己非常重要——   有助于你學習,及給你提供源源不斷的動力。同所有創造性的藝術一樣,成為大師的最有效方法就是模仿大師的精神—— 不僅從智力上,也要   從感情上進行模仿。   或許, 下面這首現代的禅詩很好的闡述了這個意思:       To follow the path:(沿着這樣一條道路:)

    look to the master,(尋找大師,)

    follow the master,(跟随大師,)

    walk with the master,(與大師通行,)

    see through the master,(洞察大師,)

    become the master.(成為大師。)   嗯,如果你想成為一名黑客,反複讀下面的事情直至你相信它們:   --------------------------------------------------------------------------------   1. 世界充滿了待解決的迷人問題。

做一名黑客會有很多樂趣,但卻是要費很多氣力方能得到的樂趣。 這些努力需要動力。成功的運動員從鍛煉身體、超越自我極限的愉悅中得到   動力。同樣,做黑客,你得能從解決問題,磨練技術及鍛煉智力中得到基本的樂趣。   如果你還不是天生的這類人又想做黑客,你就要設法成為這樣的人。否則你會發現,你的黑客熱情會被其他分心的事物吞噬掉——如金錢、性   和社會上的虛名。   (同樣你必須對你自己的學習能力建立信心——相信盡管當你對某問題近乎一無所知,但隻要你一點一點地試驗、學習,最終會掌握并解決它   。)  

--------------------------------------------------------------------------------   2. 一個問題不應該被解決兩次。

聰明的腦袋是寶貴的有限的資源。當世界還充滿非常多有待解決的有趣的新問題時,它們不應該被浪費在重新發明輪子這類事情上。   作為一名黑客,你必須相信其他黑客的思考時間是寶貴的——是以共享資訊,解決問題并釋出結果給其他黑客幾乎是一種道義,這樣其他人就   可以去解決 新問題而不是不斷地忙于對付舊問題。   (你不必認為一定要把你 所有的發明創造公布出去,但這樣做的黑客是赢得大家極度尊敬的人。賣些錢來養家糊口,租房買計算機甚至發大财   和黑客價值觀也是相容的,隻要你别忘記你還是個黑客。)  

--------------------------------------------------------------------------------   3. 無聊和乏味的工作是罪惡。

黑客(泛指具有創造力的人們)應該從來不會被愚蠢的重複性勞動所困擾,因為當這種事情發生時就意味着他們沒有在做隻有他們才能做的事   情—— 解決新問題。這樣的浪費傷害每一個人。是以,無聊和乏味的工作不僅僅是令人不舒服而已,而且是罪惡。   作為一個黑客,你必須堅信這點并盡可能多地将乏味的工作自動化,不僅為你自己,也為了其他人(尤其是其他黑客們)。   (對此有一個明顯的例外。黑客有時也做一些在他人看來是重複性或枯燥的工作以進行“腦力休息”,或是為了獲得某種技能,或是獲得一些除   此以外無法獲得的特别經驗。但這是自願的——有腦子的人不應該被迫做無聊的活兒。)  

--------------------------------------------------------------------------------   4. 自由萬歲。

黑客們是天生的反獨裁主義者。任何能向你發指令的人能夠迫使你停止解決令你着迷的問題,同時,按照獨裁者的一般思路,他通常會給出一   些極端愚昧的理由。是以,不論何處,任何獨裁主義的作法,隻要它壓迫你和其他黑客,你就要和它鬥到底。   (這并非向所有權威挑戰。兒童需要監護,罪犯要被看管起來。 如果服從指令得到某種東西比起用其他方式得到它更節約時間,黑客可以同意   接受某種形式的權威。但這是一個有限度的,有意的交易;那種權威想要的個人服從不是你應該同意給予的。)   權威喜歡審查和保密。他們不信任自願的合作和資訊的共享—— 他們隻喜歡由他們控制的所謂“合作”。是以,作為一個黑客,你得對審查、   保密,以及使用武力或欺騙去壓迫有行為能力的人們的做法有一種本能的敵意。同時你要有為此信念鬥争的意願。  

--------------------------------------------------------------------------------   5. 态度不能替代能力。

作為一名黑客,你必須培養起這些态度。但隻具備這些态度并不能使你成為一名黑客,也不能使你成為一個運動健将和搖滾明星。成為一名黑   客需要智力,實踐,奉獻精神和辛苦工作。   是以,你必須學會懷疑,并尊重各種各樣的能力。黑客們不會為那些裝模做樣的人浪費時間,但他們卻非常尊重能力—— 尤其是從事黑客工作   的能力,不過任何能力總歸是好的。具備很少人能具備的那些方面的能力尤其好,其中具備涉及腦力、技巧和專注方面能力的當然最好。   尊敬能力,你就會享受到提高自己能力的樂趣—— 辛苦的工作和奉獻會變成一種高度娛樂而非苦差事。要想成為一名黑客,這一點非常重要。  

--------------------------------------------------------------------------------   黑客的基本技能

黑客态度重要,但技術更加重要。态度無法替代技術,在你被别的黑客稱為黑客之前,有一些基本的技術你必須掌握。   這些基本技術随着新技術的出現和老技術的過時也随時間在緩慢改變。例如,過去内容包括使用機器語言程式設計,而直到最近才包括了HTML。總   的來說現在主要包括以下技術:  

--------------------------------------------------------------------------------   1. 學習如何程式設計。

這當然是最基本的黑客技能。如果你還不會任何程式設計語言,我建議你從Python開始。它設計清晰,文檔齊全,合适初學者入門。它是一門很好   的入門語言,并且不僅僅隻是個玩具;它非常強大、靈活,也适合做大型項目。我有一篇 Python評價詳細說明這點。好的 教程 可以在Python   網站得到。(譯者:比較好的中文Python站點可能是 http://pythonrecord.51.net。)   Java也是好的入門語言。它比Python難得多,但是生成的代碼速度也快得多。它同時也是一種優秀的計算機語言,不止是用來入門。   但是注意,如果你隻會一兩門語言,你将不會達到黑客所要求的技術水準,甚至也不能達到一個程式員的水準——你需要學會如何以抽象的方   式思考程式設計問題,獨立于任何語言。要做一名真正的黑客,你需要學會在幾天内通過一些手冊,結合你現在所知,迅速掌握一門新語言。這意   味着你應該學會幾種截然不同的語言。   如果要做一些重要的程式設計工作,你将不得不學習C語言,Unix的核心語言。 C++與C非常其他類似;如果你了解其中一種,學習另一種應該不難   。但這兩種都不适合程式設計入門者學習。而且事實上,你越避免用C程式設計,你的工作效率會越高。   C非常有效率,節約你的機器資源。不幸的是,C的高效是通過你手動做很多底層的管理(如記憶體)來達到的。底層代碼都是複雜極易出現bug的   ,會使你花極多的時間調試。如今的機器速度如此之快,這通常是得不償失——比較明智的做法是使用一種運作較慢、較低效率,但大幅節省   你的時間的語言。是以,選擇Python。   其他對黑客而言比較重要的語言包括 Perl和 LISP。 Perl實用,值得一學;它被廣泛用于動态網頁和系統管理,是以即便你從不用Perl寫程式   ,至少也應該學會看。許多人使用Perl的理由和我建議你使用Python的理由一樣,都是為了避免用C完成那些不需要C高效率的工作。你會需要   了解那些工作的代碼的。   LISP值得學習的理由不同——最終掌握了它時你會得到豐富的啟迪和經驗。這些經驗會使你在以後的日子裡成為一個更好的程式員,即使你實   際上很少使用LISP本身。   當然,實際上你最好五種都會(Python,Java,C/C++,Perl和LISP)。除了是最重要的黑客語言外,它們還代表了截然不同的程式設計思路和方法   ,每種都會讓你受益非淺。   這裡我無法給你完完全全的指導教會你如何程式設計——這是個複雜的技能。但我可以告訴你,書本和上課也不能作到(最好的黑客中,有許多,   也許 幾乎都是自學成材的)。你可以從書本上學到語言的特點——隻是一些皮毛,但要使書面知識成為自身技能隻能通過實踐和虛心向他人學   習。是以要作到 (一)讀代碼及(二)寫代碼。   學習如何程式設計就象學習用優美的自然語言寫作一樣。最好的做法是讀一些大師的名著,試着自己寫點東西,再讀些,再寫點,再讀些,再寫點   …… 如此往複,直到你的文章達到你體會到的範文的簡潔和力量。   過去找到适合閱讀的好的代碼是困難的,因為幾乎沒有大型程式的源代碼能讓新手練手。這種狀況已經戲劇性地發生變化;開放源代碼軟體,   程式設計工具和作業系統(全都由黑客寫成)現在已經随處可見。讓我們在下一個話題中繼續讨論……  

--------------------------------------------------------------------------------   2. 得到一個開放源代碼的Unix并學會使用、運作它。

我假設你已經擁有或者能使用一台個人電腦(今天的孩子們真幸福 :-) )。新手們能夠朝學習黑客技能邁出的最基本的一步就是得到一份   Linux或BSD-Unix的一種,安裝在個人電腦上,并運作它。   沒錯,這世界上除了Unix還有其他作業系統。但它們都是以二進制形式釋出的——你無法讀到它的源代碼,也不可能修改它。嘗試在運作DOS或   Windows或MacOS的機器上學習黑客技術,就象是帶着腳鐐學跳舞。   除此之外,Unix還是Internet的作業系統。你可以學會上網卻不知道Unix,但你不了解Unix就無法成為一名Internet黑客。是以,今天的黑客   文化在很大程度上是以Unix為中心的。(這點并不總是真的,一些很早的黑客對此一直很不高興,但Unix和Internet之間的聯系已是如此之強   ,甚至連Microsoft也無可奈何。)   是以, 安裝一套UNIX——我個人喜愛LINUX但還有其他種類的(是的,你可以同時安裝Linux及DOS/Windows在同一電腦上)。學習它,使用它,   配置它。用它在Internet上沖浪。閱讀它的源代碼。修改它的源代碼。你會得到比在Microsoft作業系統上更好的程式設計工具(包括C,LISP,   Python及Perl)。你會覺得樂趣無窮,學到在你成為大師之前意識不到的更多的知識。   想知道更多關于學習Unix的資訊,通路 The Loginataka。   想知道如何得到一份Linux,通路 我在哪裡可以獲得Linux。(譯者:對于中文讀者來講,最簡單的方式未過于前往附近的D版/正版CD光牒店。)   你可以在 www.bsd.org找到BSD Unix的求助及其他資源。   我有寫一篇關于 Unix和Internet基礎的入門文章。   (注:如果你是一個新手,我不推薦自己獨立安裝Linux或者BSD。安裝Linux的話,尋求本地Linux使用者組的幫助;或聯系 Open Projects   Network。 LISC維護着一些 IRC頻道,在那裡你可以獲得幫助。)  

--------------------------------------------------------------------------------   3. 學會如何使用WWW和寫HTML

黑客文化建造的大多東西都在你看不見的地方發揮着作用,幫助工廠、辦公室和大學正常運轉,表面上很難看到它對非黑客的普通人的生活的   影響。Web是一個大大的例外。即便政客也同意,這個巨大耀眼的黑客玩具正在改變整個世界。單是這個原因(還有許多其它的),你就需要學   習掌握Web。   這并不是僅僅意味着如何使用浏覽器(誰都會),而是要學會如何寫HTML, Web的标記語言。如果你不會程式設計,寫HTML會教你一些有助于學習   的思考習慣。是以,先完成一個首頁。(網上有很多好的教程; 這是一個。)   但僅僅擁有一個首頁不能使你成為一名黑客。 Web裡充滿了各種網頁。大多數是毫無意義的,零資訊量垃圾——界面時髦的垃圾,注意,垃圾   的水準都類似(更多資訊通路 The HTML Hell Page)。   要想有價值,你的網頁必須有内容—— 它必須有趣或對其它黑客有幫助。這是下一個話題所涉及的……  

--------------------------------------------------------------------------------   4. 如果你不懂實用性的英語,學習吧。

作為一個美國人和一個以英語為母語的人,我以前很不情願提到這點,免得成為一種文化上的帝國主義。但相當多以其他語言為母語的人一直   勸我指出這一點,那就是英語是黑客文化和Internet的工作語言,你需要懂得以便在黑客社群順利工作。   這一點千真萬确。大概1991年的時候我就了解到許多黑客在技術讨論中使用英語,甚至當他們的母語都相同,英語對他們而言隻是第二語言的   時候;據我知道的報導,目前英語有着比其他語言豐富得多的技術詞彙,是以是一個對于工作來說相當好的工具。基于類似的原因,英文技術   書籍的翻譯通常不令人滿意(如果有翻譯的話)。   Linus Torvalds,一個芬蘭人,用英語注釋他的代碼(很明顯這對他來說不是湊巧)。他流利的英語成為他能夠管理全球範圍的Linux開發人員   社群的重要因素。這是一個值得學習的例子。  

--------------------------------------------------------------------------------   黑客文化中的地位

象大部分不涉及金錢的文化一樣,黑客王國靠聲譽運轉。你設法解決有趣的問題,但它們到底多有趣,你的解法有多好,是要由那些和你具有   同樣技術水準的人或比你更厲害的人去評判的。   相應地,當你在玩黑客遊戲時,你得認識到你的分數主要靠其他黑客對你的技術的評價給出(這就是為什麼隻有在其它黑客稱你為黑客時,你   才算得上是一名黑客)。這個事實常會被黑客是一項孤獨的工作這一印象所減弱;也會被另一個黑客文化的禁忌所減弱(現在逐漸減弱但仍強   大):拒絕承認自我或外部評估與一個人的動力有關系。   特别地,黑客王國被人類學家們稱為一種奉獻文化。 在這裡你不是憑借你對别人的統治來建立地位和名望,也不是靠美貌,或擁有其他人想要   的東西,而是靠你的奉獻。尤其是奉獻你的時間,你的創造和你的技術成果。   要獲得其他黑客的尊敬,基本上有五種事情你可以幹:  

--------------------------------------------------------------------------------   1. 寫開放源代碼軟體

第一個(也是最集中的和傳統的)是寫些被其他黑客認為有趣或有用的程式,并把程式源代碼提供給整個黑客文化使用。   (過去我們稱之為“free software (自由軟體)”,但這卻使很多不知 free 的精确含義的人感到困惑。現在我們很多人,根據搜尋引擎網   頁内容分析至少有2:1的比率,使用“ open-source”software(開放源代碼軟體)這個詞)。   黑客王國裡最受尊敬的偶像是那些寫了大型的、好用的、具有廣泛用途的軟體,并把它們公布出去,使得每人都在使用他軟體的人。  

--------------------------------------------------------------------------------   2. 幫助測試并調試開放源代碼軟體

黑客也尊敬那些使用、測試開放源代碼軟體的人。在這個并非完美的世界上,我們不可避免地要花大多數的開發時間在調試階段。 這就是為什   麼任何有頭腦的開放源代碼的作者都會告訴你好的beta測試員(知道如何清楚描述出錯症狀,很好地定位錯誤,能忍受快速釋出中的bug,并且   願意使用一些簡單的診斷工具)象紅寶石一樣珍貴。 甚至他們中的一個能判斷出哪個測試階段是延長的,哪個是令人精疲力盡的噩夢,哪個隻   是一個有益的小麻煩。   如果你是個新手,試着找一個你感興趣的正在開發的程式,做一個好的beta測試員。你會自然地從幫着測試,進步到幫着抓臭蟲,到最後幫着   改程式。你會從中學到很多,并且與未來會幫你的人結下友誼。  

--------------------------------------------------------------------------------   3. 公布有用的資訊

另一個好事是收集整理有用有趣的資訊做成網頁或文檔如FAQ清單,且讓他們容易獲得。   主要技術FAQ的維護者受到幾乎同其他開放源代碼的作者一樣多的尊敬。  

--------------------------------------------------------------------------------   4. 幫助維護基礎設施的運轉

黑客文化(還有Internet的工程方面的發展,就此而言)是靠自願者運轉的。要使Internet能正常工作,就要有大量枯燥的工作不得不去完成   ——管理mail list,新聞討論區,維護大型軟體庫,開發RFC和其它技術标準等等。   做這類事情的人會得到很多尊敬,因為每人都知道這些事情是十分花時間又不象程式設計那樣好玩。做這些事情需要奉獻精神。  

--------------------------------------------------------------------------------   5. 為黑客文化本身服務

最後,你可以為這個文化本身做宣傳(例如,象我這樣,寫一個“如何成為黑客”的正面的教程 :-) )(譯者:不知道Barret把它翻成中文算   不算?)。這并非一定要在你已經在這個圈子呆了很久,因以上四點中的某點而出名,有一定聲譽後才能去做。   黑客文化沒有領袖。精确地說,它确實有些文化英雄、部落長者、曆史學家和發言人。若你在這圈内呆的夠長,你或許成為其中之一。記住:   黑客們不相信他們的部落長者的自誇的炫耀,是以大舉追求這種名譽是危險的。與其奮力追求,不如先擺正自己的位置等它自己到你的手中—   —那時則要做到謙虛和優雅。  

--------------------------------------------------------------------------------   黑客和書呆子(Nerd)的聯系

同流行的迷思相反,做一名黑客并不一定要你是個書呆子。但它确實有幫助,而且許多黑客事實上是書呆子。做一個深居簡出的人有助于你集   中精力進行十分重要的事情,如思考和程式設計。   是以,很多黑客都願意接受“書呆子”這個外号,更有甚者使用更尖刻的“geek(怪人)”一詞并引以為豪—— 這是一種宣布他們獨立于主流   社會的聲明方式。通路 The Geek Page 參加更多的讨論。   如果你能集中足夠的精力做好黑客工作同時還能有正常的生活,這很好。現在作到這一點比我在1970年代是新手的時候要容易的多;如今主流   文化對技術怪人要友善的多。甚至有越來越多的人意識到黑客通常是很好的戀人和配偶的材料。   如果你因為生活上不如意而迷上做黑客,那也沒什麼——至少你不會分神了。或許以後你會找到自己的另一半。  

--------------------------------------------------------------------------------   風格的意義

重申一下,作為一名黑客,你必須進入黑客精神之中。當你不在計算機邊上時,你仍然有很多對黑客工作有幫助的事情可做。它們并不能替代   真正的程式設計(沒有什麼能),但很多黑客都那麼做,并感到它們與黑客的本質存在某些基本的連系。  

學會流暢地用母語寫作。盡管程式員不能寫好文章的錯誤看法相當普遍,但是有令人驚訝數目的黑客(包括所有我知道的最棒的)都是不錯的   作家。   閱讀科幻小說。參加科幻小說讨論會。(一個碰到黑客和未來會成為黑客的人的好方法)   學禅,并且/或者練功習武。(精神修煉看來是驚人相似。)   練就能分析音樂的聽覺,學會鑒賞特别的音樂。學會玩某種樂器,或唱歌。   提高對雙關語、文字遊戲的鑒賞能力。   這些事情,你已經做的越多,你就越是天生做黑客的材料。至于為什麼偏偏是這些事情,原因并不完全清楚,但它們都涉及用到左-右腦能力   的綜合,這似乎是關鍵所在(黑客們既需要清晰的邏輯思維,有時又需要偏離邏輯跳出問題的表象)。   最後,還有一些不要去做的事情。  

不要使用愚蠢的,嘩衆取寵的ID或昵稱。   不要卷入Usenet(或其他地方的論壇)的罵戰。   不要自稱為“cyberpunk(網絡叛客)”,也不要浪費時間和那些人打交道。   不要讓你寄出的Email或張貼的文章充滿錯誤的拼寫和亂七八糟的文法。   做以上的事情,隻會招來嘲笑。黑客們個個記憶超群—— 你将需要數年的時間讓他們忘記你犯下的錯誤。   網名的問題值得深思。将身份隐藏在虛假的名字後是駭客、解密者、d00dz 及其他低等生物幼稚愚蠢的行為特點。黑客不會做這些事;他們對   他們所作的感到驕傲,而且樂于人們将作品與他們的 真名相聯系。是以, 若你現在用假名,放棄它。在黑客文化裡它會令你你失敗的。  

--------------------------------------------------------------------------------   其它資源

Peter Seebach 維護着一個非常好的 Hacker FAQ,專給那些不懂如何與黑客打交道的經理看的。如果Peter的站點不能通路,下面這個 Excite   搜尋應該有一份拷貝。   我也著有 黑客文化簡史。   我寫了一份 大教堂與市集,對于Linux及開放源代碼文化現象有詳細的解釋。我也在這個話題上進一步闡述導緻的結局—— 開拓智域。   Rick Moen寫了一份很好的關于 如何運轉一個Linux使用者組的文檔。   我和Rick Moen合作完成了另一份關于 提問的智慧的文章,可以讓你事半功倍的獲得幫助。   如果你想知道PC、UNIX及Internet基本概念和工作原理,參考 The Unix and Internet Fundamentals HOWTO。   當你釋放出一個軟體或為其打更新檔,試着按 軟體發行慣例 HOWTO去做。(以上的提到的文章的中文版大多都可以在 www.aka.org.cn和   www.linuxforum.net找到。)  

FAQ(常問問題解答)

問:你能教我做黑客嗎?

問:那麼,我要如何開始?

問:我得什麼時候開始學?現在會不會太遲了?

問:要學多久才能學會黑客道?

問:Visual Basic及Delphi是好的入門語言嗎?

問:你能幫我“黑”掉一個站點嗎?或者教我怎麼黑它?

問:我怎麼樣才能得到别人帳号的密碼?

問:我如何入侵/檢視/監視别人的Email?

問:我如何才能在IRC聊天室裡偷到頻道op的特權?

問:我被黑了。你能幫我避免以後再被攻擊嗎?

問:我的Windows軟體出現問題了。你能幫我嗎?

問:我在哪裡能找到可以與之交流的真正的黑客?

問:你能推薦一些有關黑客的好書嗎?

問:成為一名黑客我需要擅長數學嗎?

問:我該從那種語言學起?

問:我需要什麼樣的機器配置?

問:我得是以憎恨和反對Microsoft嗎?

問:但開放源代碼軟體不會使程式員丢飯碗嗎?

問:我要如何開始?哪裡有免費的Unix?

問:你能教我做黑客嗎?   答:自從第一次釋出這份文檔,我每周都會收到一些請求,(頻繁的話一天幾封)要我“教會他們做黑客”。遺憾的是,我沒有時間和精力來   做這個;我自己的黑客項目,及我作為一個開放源代碼倡導者的四處奔波已經占用了我110%的時間。   即便我想教你,黑客也依然基本上是一項自行修煉的的态度和技術。當真正的黑客想幫助你的時候,如果你乞求他們一湯匙一湯匙“喂”你的   話,你會發現他們不會尊重你。   先去學一些東西。顯示你在嘗試,你能靠自己去學習。然後再去向你遇到的黑客請教特殊的問題。   如果你發E-mail給一位黑客尋求他的幫助,這是兩件首要記住的事情。第一,寫出來的文字顯得懶且粗心的人通常非常懶于思考且非常馬大哈   ,不能成為好黑客—— 是以注意拼寫正确,使用正确的文法及發音,否則你可能會無人理睬。第二,不要試圖要求回複到一個ISP帳号,而那   個帳号與你的發信位址不同。這樣做的人一般是使用盜用帳号,不會有人有興趣為虎作伥幫助竊賊的。   問:那麼,我要如何開始?   答:對你而言最佳的入門方式也許是去參加LUG(Linux使用者組)的聚會。你可以找到在 LDP的綜合Linux資訊頁面上找到類似的組織;也許有一   個在你家附近的,而且非常有可能與一所大學或學校挂鈎。如果你提出要求,LUG成員興許會給你一套Linux,當然此後會幫你安裝并帶你入門   。   問:我得什麼時候開始學?現在會不會太遲了?   答:你有動力學習的時候就是好時候。大多數人看來都是在15-20歲之間開始感興趣的,但據我所知,在此年齡段之外的例外也是有的。   問:要學多久才能學會黑客道?   答:這取決于你的聰明程度和努力程度。大多數人隻要他們專注,就能在18個月到2年之間學會一套令人尊敬的技能。但是,不要以為就此結束   了;如果你是一個真正的黑客,你要用你的餘生來學習和完善你的技術。   問:Visual Basic及Delphi是好的入門語言嗎?   答:不,因為他們不是可移植的。他們不是那些語言的開放源代碼實作,是以你被限制在廠商選擇支援的那些平台裡。接受這樣一種壟斷局面   不是黑客的态度。   Visual Basic特别糟糕。它是Microsoft的私有語言這個事實就足夠讓它臉面全無,不像其他的Basic,它是一種設計糟糕的語言會教給你壞的   程式設計習慣。   其中一個壞習慣是會依賴于單一廠商的函數庫、控件及開發工具。一般而言,任何不能夠支援至少Linux或者一種BSD,或其他第三方作業系統   的語言,都是一種不适合應付黑客工作的語言。   問:你能幫我“黑”掉一個站點嗎?或者教我怎麼黑它?   答:No。任何讀完這份FAQ後還問這個問題的人,都是無可救藥的蠢材,即使有時間指教我也不會理睬。任何發給我的此類E-mail都會被忽略或   被痛罵一頓。   問:我怎麼樣才能得到别人帳号的密碼?   答:這是駭客行為。滾得遠遠的,白癡。   問:我如何入侵/檢視/監視别人的Email?   答:這是駭客行為。在我面前消失,混蛋。   問:我如何才能在IRC聊天室裡偷到頻道op的特權?   答:這是駭客行為。去S吧,冥頑不靈的家夥。   問:我被黑了。你能幫我避免以後再被攻擊嗎?   答:不行。目前為止,每次問我這個問題的,都是一些運作Microsoft Windows的菜鳥。不可能有效的保護Windows系統免受駭客攻擊;太多缺   陷的代碼和架構使保護Windows的努力有如隔靴搔癢。唯一可靠的預防來自轉移到Linux或其他設計得至少足夠安全的系統。   問:我的Windows軟體出現問題了。你能幫我嗎?   答:當然。進入DOS方式,然後鍵入“format c:”。你遇到的任何問題将會在幾分鐘之内消失。   問:我在哪裡能找到可以與之交流的真正的黑客?   答:最佳辦法是在你附近找一個Unix或Linux的使用者組,參加他們的聚會。(你可以在Metalab的LDP站點找到一些指向使用者組的連結。)   我過去曾說過不能在IRC上找到真正的黑客,但我發覺現在情況有所改變。顯然一些真正的黑客的社群像GIMP及Perl,也有IRC頻道了。)   問:你能推薦一些有關黑客的好書嗎?   答:我維護着一份Linux Reading List HOWTO,也許你會覺得有用。 Loginataka也很有意思。   關于Python的介紹,請通路在Python站點上的 入門資料。   問:成為一名黑客我需要擅長數學嗎?   答:不用。黑客道很少使用正常的數學或算術,不過你絕對需要能邏輯性地思考和進行精密的推理。   尤其是你不會用到微積分或電路分析(我們把這些留給電子工程師們 :-))。 一些有限數學(包括布爾代數,集合論,組合數學,圖論)的背   景知識會有幫助。   問:我該從那種語言學起?   答:HTML——如果你還不懂的話。市面上有一大堆的封面精美,宣傳得天花亂墜的 糟糕的 HTML書籍,不幸的是很少有好的。我最喜歡的是   HTML: The Definitive Guide。   但 HTML 不完全是一種程式設計語言。當你準備開始程式設計時,我推薦從 Python起步。你會聽到一大群人推薦 Perl,并且 Perl 依然比 Python 流   行得多,但是難學得多且(以我之見)設計得不是很好。   C 确實重要,但它要比 Python 或 Perl 難多了。不要嘗試先學 C。   Windows使用者不要滿足于 Visual Basic。它會教給你壞習慣,而且它不可以移植,隻能在Windows下運作。避免它。   問:我需要什麼樣的機器配置?   答:過去個人電腦能力相當不夠并且記憶體小,結果給黑客的學習過程設定了人為的障礙。不過一段時間以前開始就不是這樣了;任何配置比一   台 Intel 486DX50 好的機器都有足夠的能力進行開發工作,X,及 Internet 通訊,同時你現在買的最小的磁盤都大得富足了。(依Barret之   見,現在要至少Pentium 166MMX才夠。)   選擇用來學習的機器時重要的一點是注意配件是否是Linux相容的(或BSD相容,如果你選擇學 BSD)。同剛才提到的一樣,大多數現在的機器   都是符合的;唯一的值得注意的區域在于 modem和列印機;有些具備為Windows設計的配件的機器不會在Linux下工作。   關于硬體相容性有一個FAQ;最新版本在 這裡。   問:我得是以憎恨和反對Microsoft嗎?   答:不,你不必如此。不是因為Microsoft不令人讨厭,而是因為黑客文化早在 Microsoft出現之前就存在了,且将在Microsoft成為曆史後依   然存在。你耗費在憎恨Microsoft的任何力氣不如花在愛你的技術上。寫好的代碼—— 那會相當有效地打擊Microsoft又不會讓你得到惡報應。   問:但開放源代碼軟體不會使程式員丢飯碗嗎?   答:看起來不太可能——目前為止,開放源代碼軟體産業似乎創造了更多的就業機會而不是減少就業機會。如果寫一個程式比起不寫來是純經   濟收益的話,那麼在寫完後,程式員應該得到報酬不管程式是否是開放源代碼。并且,無論寫出多麼“免費自由”的軟體,都存在更多對新的   ,定制的軟體的需求。我有這方面更多的論述,放在開放源代碼 網站資料中。   問:我要如何開始?哪裡有免費的Unix?   答:在本份文檔的某個地方我已經提到過何處可以得到最常用的免費Unix。要做一名黑客,你需要自立自強,以及自學能力。現在開始吧……