如何成爲一名黑客

 

如何成爲一名黑客


爲什麼會有這份文檔?

作爲 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。

其他對黑客而言比較重要的語言包括 PerlLISP。 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版/正版光盤店。)

你可以在 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。要做一名黑客,你需要自立自強,以及自學能力。現在開始吧……

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章