如何成爲一位 hacker

如何成爲一位 hacker
    這真是一個好問題, 不止是原做者說他被問過不少次, 包括我和許多網絡上的朋友們也常有這個困擾. 不過和做者不一樣的是, 我常常沒有一個固定的答案 :p事實上我所能提供也只是本身的經驗, 卻沒有足夠的能力來確定本身的見解是否是正確的. 這份文章應該能夠減去你們很多的麻煩 :) 嗯!! 此次挺身而出當起翻譯, 雖然是起於晚上回到住的地方以後很無聊, 能夠用來打發時間. 不過我翻了百行以後, 越翻越後悔. 主要是由於面有一些句子實在很難翻譯, 這大概是由於個人英文底子不太好的關係吧!! 好不容易, 終因而翻完了. 爲讓句子更通順或者是我的誤解, 翻譯後和原文有些出入, 這方面還請各位大大見諒. :-) Thinker -------------------------------------------------------------------------- 如何成爲一位 hacker 爲什麼有這份文件? 身爲 Jargon File 的編輯, 常有一些網絡新手發 mail 問我 「如何成爲一個厲害的hacker?「. 但, 很奇怪的, 彷佛沒有任何的 FAQs 或 Web documents 說明這麼重要的問題, 因此我寫了一份我本身的見解. 若是你是以 offline 的方式在看這一份文件的某一個版本, 那麼你能夠在 「[url]http://www.ccil.org/~esr/faqs/hacker-howto.html[/url]「 找到這份文件的目前最新版本. 怎麼樣纔算是一位 Hacker ?? 在 Jargon File 有一堆關於 `hacker’ 這個名詞的定義, 大部份必須是技術上的行家或熱衷於解決問題, 克服限制的人. 然而, 若是你想知道如何成爲一位 hacker,有兩件事是頗有關連的. 這能夠追溯到幾十年前第一臺 minicomputer 剛誕生, ARPAnet 實驗也剛展開的時代. 那時有一個由程序設計專家和網絡名人所組成的, 具備分享特質的文化族羣.這種文化的成員創造了 `hacker’ 這個名詞. 這些 Hacker 創建了 Internet,創造出咱們如今使用的 UNIX 操做系統, 他們也使 Usenet 運做起來, 而且讓 WorldWide Web 動起來. 若是你是這個文化的一部分, 若是你對這些種種有所供獻, 並且這個文化的其它成員也認識你, 並稱你爲 hacker, 那麼你就是一位 hacker. 在精神上, hacker 並不單指(限制於)這種軟件 hacker 的文化. 有人也把 hacker的特質發揮在其它領域, 例如: 電子或者音樂方面. 事實上你會發現, 在任何一種科學或藝術的最高境界, 你均可以發現 hacker 的特質. 軟件 hacker 們認爲,那些相似的精神也均可以稱爲 「hacker「. 有些人還主張 hacker 的通性是獨立於任何媒介之上的, 不特別屬於任何一種 hacker 所在的環境. 可是, 在這份文件,咱們將把重點放在軟件 hacker 們所需的技能、態度和發明`hacker’ 這個詞的分享文化的傳統. 在另外一個團體, 他們的成員也很大聲的稱本身爲 hacker, 可是他們不是真的 hacker.這些人(大部分是男性青年)專門闖入電腦和***電話系統, 真正的 hacker 們稱他們爲 `cracker’, 而且不肯意和他們在一些作任何事. hacker 們認爲這些人都是懶惰, 不負責, 而且不夠光明正大的, 而且認爲能破解安全系統並不能使你成爲一位hacker. 可是很不幸的, 不少記者和做家不明究理的使用 `hacker’ 這個字來描述cracker 們; 這讓真的 hacker 們很忿怒. 基本上, hacker 和 cracker 之間最主要的不一樣是: hacker 們創造新東西,cracker 們破壞東西. 若是你想要成爲一位 hacker, 繼續讀下去吧. 若是你是想要成爲一位 cracker, 那麼就去讀 alt.2600 newsgroup 並準備在你發現本身並不如想像中那麼行時, 給本身一點評價. 全部關於 cracker 的事情就只有這些了. Hacker 態度 Hacker 們解決了問題並創造新東西, 他們相信自由並自願的互相幫助. 想要被別人接受成爲一位 hacker, 你必須發自心裏的表現出這種態度. 爲了要很自發的表現出這種態度, 你就必須先徹底認同這些態度. 若是你只是把學習 hacker 態度這件事看成一種能在這個文化贏得認同的途徑,那麼你己經乎略了真正的重點. 由衷的接受這些態度是很這要的, 這能幫助你學習並維持你的動機. 就像那些具創造性的藝術同樣, 成爲一位大師的最有效方法是學習大師們的精神; 並不僅是學習知識和情緒而己. 因此, 若是你想要成爲一位 hacker, 請反覆的作下面的事情, 直到你徹底領會它們: 1. 這世上充滿著等著被解決的迷人問題. 做爲一個 hacker 是充滿快樂的, 但這是一種由於努力獲得成果所帶來的快樂. 努力的成果則帶來動機. 成功的運動家的動機則來自於, 使他們的身體不斷進化,並把本身推向物理上的極限所帶來的快樂. 相似的情形, 要成爲 hacker, 你必需要能從解決問題, 精進技術, 和運用知識的過程當中感覺到一種悸動. 若是你不是天生就能感覺到這種悸動的人, 那麼, 爲了要成爲 hacker, 你必須使本身變成這樣的人. 不然, 你會發現你的 hacking energy 就會像性, 金錢, 和社交活動同樣, 由於分心而被消磨掉. (你也必須爲你的學習能力創建一種信念直到你完成你的工做 -- 即便你只處理一小部份, 而你也不知道你到底還要學些什麼東西纔有辨法解決你的問題, 可是你會努力學習, 準備充足, 以應付下一個問題.) 2. 沒有任何人必須一再的解決同一個問題. 富創造力的頭腦是貴重而有限的資源. 有這麼多迷人的新問題在那等著被解決.所以富創造力的頭腦不應被浪費的用來重複發明輪子. 身爲一位 hacker, 你必須瞭解到其它 hacker 們的時間也是很寶貴的 -- 因此,分享資訊, 解決問題和提供解決方案給其它 hacker 以解決新的問題, 這些幾乎算是道義上的責任. ( 即便 hacker 們所擁有的大可能是從其它 hacker 的身上得來的, 但這並不意謂你必需把你創造的做品所有交出來, 你能夠賣出足夠數量的產品, 以求得溫飽, 給付房租和買電腦設備, 這和 hacker 的價值觀並不相違背. 使用你的 hacking 技能以供給一個家庭的生活, 甚至是致富, 只要你仍不忘記你是一位 hacker, 那麼這些行爲並不會產生予盾. ) 3. 無聊而單調的工做是有害的. Hacker 們(有創造力的人也是同樣)永遠不應作一些無聊而單調而且愚蠢的反覆性工做. 由於, 若是這樣的事情發生的話, 這表示他們正在作一些不是他們該作的事-- 解決新的問題. 這樣的浪費對任何人而言都是一種傷害. 無聊單調的工做不僅是無趣而己, 並且是一種有害的物質. 要作爲一位 hacker 要能儘量的自動避免無聊, 對此你必須有至關的認知. 這不僅是爲了你本身而已, 也是爲了全部的人(尤爲是其它的 hacker). (這有一些例外. 有時侯 hacker 們會去作一些被認爲無聊或重複性的工做, 當作腦力的訓練, 或是爲了要學習得某種技能或某種你所沒有的特殊經驗. 不過這是一種選擇, 任何人都不應被強迫面對無聊事. ) 4. 自由纔好. hacker 們天性上是反對獨裁的. 任何一個給你命令的人就能給你一個獨裁式的工做,而且能夠給你一些笨的能夠的理由, 中止你解決任何吸引著你的問題. 因此任何獨裁式的行爲都會被挑戰, 以避免會危害到你和其它的 hacker 們. (這和爲反對而反對是不一樣的, 小孩子是須要被指導和阻止他們犯錯. hacker 也會贊成接受某些權威, 照著指示作以較短的時間獲得他想要的. 不過那是一種有限且理性的協定; ..... ) 專制在監察和保密這些事上是頗有效的方法. 這些行使專制的人並不相信自願性質的合做和資訊分享 -- 他們只相信在他們控制之下的合做關係. 因此, 身爲一位 hacker,你必具備一種敵對的天性, 以對抗監察, 祕密和使用外力強迫或迷惑能夠信任的人等行爲. 你必須以互信作爲你行爲的基礎. 5. 態度並不是不等效於能力 要成爲一位 hacker, 你必須開始培養這些態度. 但, 若是你只是單獨的模仿某一種態度, 這並不能使你成爲一位真正的 hacker, 也不會使你成爲一位運動冠軍或搖滾明星. 所以, 你必須學會猜疑態度和尊敬各類能力. Hacker 們不會想浪費時間在虛華的人的身上, 他們尊敬的是能力 -- 特別是身爲 hacker 的能力, 但對於其它方面的能力也是充滿敬意. 若是有能力追求一些不多人能弄懂的技術,追求精神上的技巧, 並能集中精神, 那就再好不過了. 若是你尊敬各類的能力, 那麼你就會樂於本身發展這些能力 -- 這會使的努力工做和奉獻成爲一種剌激性的消遣而非一份苦差事. 這對於想要成爲 hacker 的人而言, 是很重要的. 一位 Hacker 所需的基本技能 hacker 的精神態度是很重要的, 但技術則更是重要. hacker 的態度雖然是無可取代,但在夢想別的 hacker 開始也叫你 hacker 前, 有些基本的工具和技術是必備的.  隨著新科技的發明和舊技術的取代, 這些工具隨時間在慢慢的改變. 例如: 以往老是會學會用機器碼寫程序, 直到最近咱們開始使用 HTML. 不過, 在 1996 年底,下面所舉的工具是很明顯的被須要的: 1. 學習程序設計. 固然, 這是基礎的 hacking 技能. 在 1997 年, 理所固然的, 你必須學會 C. 但,若是你只是學一種語言, 那麼你不能算是一位 hacker, 了不得只能算是一個programmer. 除此, 你還必須學會學會以獨立於任何程序語言之上的歸納性觀念來思考一件程序設計上的問題. 要成爲一位真正的 hacker, 你必需要能在幾天以內將manual 內容和你目前己經知道的關連起學會一種新的語言. 也就是說, 你必會學會數個不一樣的語言. 還了 C 以外, 你至少還要會 LISP 或 Perl (Java 也正在努力的擠上這個名單;譯者注: 我很懷疑這份名單說 :p ). 除了幾重要的 hacking 經常使用語言以外,這些語言提供你一些不一樣的程序設計途徑, 而且讓你在好的方法中學習. 程序設計是一種複雜的技術, 我沒辨法在這提供完整的學習步驟. 可是我能告訴你一些在書本上和課堂上所沒有的東西 (有不少, 幾乎所有最好的 hacker 們都是自習而來的). (a) 讀別人的程序碼 和 (b) 寫程序, 這兩項是不錯的方法. 學習寫程序就像在學習寫一種良好的天然語言, 最好的方法是去看一些專家們所寫的東西, 而後寫一些你本身的東西, 而後讀更多, 再寫更多 ... 而後一直持續, 一直到你發展出一種屬於本身的風格和特點. 要找到好的程序碼來看是很一件很困難的事, 由於, 對菜鳥 hacker 們而言, 適於供他們閱讀和努力的大型程序的 source 數量不多. 但這事己有了戲劇性的變化了;如今免費的供應的軟件、程序設計工具和操做系統(大都公開提供 source, 並且全都是由 hacker 們寫成的)處處可看. 進入下一個主題... 2. 取得一個免費的 UNIX , 並學習使用和維護. 我先假設你己經有一部我的電腦或者是可使用任何一部 (如今的小孩子真幸福,可如此輕易的擁有 :-)). 取得 hacker 技巧的第一個步驟是取得一份 Linux 或者一份免費的 BSD-Unix, 並將它安裝在本身的機器, 並使之順利的運做. 沒錯, 在這個世界上除了 Unix 以外, 還有其它的操做系統. 可是他們只提供 bianry, 你不能看到他們的程序碼, 你也不能修改他們. 想要在 DOS 或 Windows或 MacOS 開始 hacking, 無疑就是要你綁著枷鎖跳舞同樣. 除此以外, Unix 是 Internet 上的操做系統. 當你在不懂 Unix 的狀況下學習使用Internet 時, 你沒辨法在不懂 Unix 的狀況下成爲 Internet 的 hacker. 由於這個原故, 如今的hacker 文化仍是很牢固的以 Unix 爲中心繞著. (這並不徹底是正確的, 並且有些活在舊時代的hacker 甚至也不喜歡這種情形, 可是 Unix 和Internet 之間的共生共成己經到了牢不可破的地步, 即便是 Microsoft 的大塊肌肉也沒能在上面留下明顯的傷痕.) 因些, 把 Unix 裝起來吧! (我本身是喜歡 Linux, 可是還有其它的東東可用.) 學習它, 讓它運做起來, 讓它陪你努力精進. 用他向整個 Internet 喊話. 看程序碼,改程序. 有一天你成爲一位高竿的 hacker, 你回頭日後看時會發現, 你獲得比Microsoft 操做系統所能提供的還要好的程序設計工具(包括 C, Lisp和 Perl).並且獲得快樂, 並學到比你想像中的還要多的知識. 關於學習 Unix, 在 Loginataka 有更多的資料.([url]http://www.ccil.org/~esr/faqs/loginataka.html[/url]) 看一下 Linux distribution 的目錄或 Linux CD, 並把本身交付給它. 3. 學習使用 World Wide Web 並學會寫 HTML. 在 hacker 文化創造出來的東西, 大多在他們的活動範圍外被使用著, 如, 在工廠和辨公室或大學被漠漠的使用著. 但 Web 是一個很大的例外, 這個 hacker 眼中的大玩具甚至還被政客們接受, 並巧巧的在改變這個世界. 所以(還有不少好的理由),你必須學習 Web. 並不僅是學習使用 browser (這太容易了)而己, 還要學會寫 HTML 這個 Web 的標籤語言. 若是你不知道如何設計程序, 寫 HTML 也能夠給一些習慣上的幫助.嗯!! 創建 home page 吧! 不過, 有一個 home page 並沒任何特別之處能讓你成爲一位 hacker. Web 上處處都是 home page, 並且大部份都沒什麼重點, 沒什麼內容的爛泥 -- 很好看的爛泥巴,可是看起來都同樣, 差很少. ([url]http://www.ccil.org/~esr/html-hell.html[/url]) 爲了讓你的 page 有其價值, 它必須是有內容的東西 -- 它必須是有趣而且(或者)對其它 hacker 有用處的. Hacker 文化的情況 就像大多數沒有經濟活動的文化同樣, hackerdom 的運做是創建在名望之上. 當你嘗試去解決一個有趣的問題時, 你所作事是否有趣, 你的解決方案是否是真的好用, 這些只有你的技術上的同好或前輩準備好爲你作評價. 所以, 當你開始玩起 hacker 的遊戲時, 你的主要分數是來自其它 hacker 們對你的技術的見解(這就是爲何只當其它的 hacker 都認爲你是 hacker 時, 你纔算是一位真正的 hacker). 這個事實被人們認爲 hacking 是一種孤獨的工做的印象所朦敝了; 也被hacker 文化的禁忌(如今己漸漸的朽壞了, 但依然存在) 和存在人們心裏動機的自大或特權之間的衝突所朦敝. 具體的說, hackerdom 就是人類學家所說的「天才文化」.你在其中所獲得的地位和名望並不來自於支配其它人, 或是由於長的漂亮, 或由於你有一些別人想要的東西, 而是由於你送出東西. 特別是, 你給送出你的時間,你的創造力和你的技術成果. 下面有五種事, 你會由於作了這些事而愛到 hacker 們尊敬: 1. 寫免費的軟件. 第一種是寫那些其它 hacker 們覺的有趣或好用的程序, 並把 source 公開開放給整個 hacker 文化中的人使用. hackerdom 最愛尊敬的是寫出大而功能強的程序的人, 並且這程序是廣爲你們須要的,因此你們都在作用這些程序. 2. 幫忙 test 和 debug 免費的軟件 hacker 們也尊敬幫忙 debug 免費軟件的人. 在這個不是很完美的世界, 你不可避免的必須花掉大部分的軟件發展週期在 debug 階段上. 這就是爲何在任何免費軟件發展者的腦子都會告訴你一件事, 好的 beta 測試者(能很很清楚的描述發生的情況,正確的發現問題出處, 能夠容忍測試版本的 bug, 而且能進行一些簡單的診斷程序)和紅寶石同樣貴重. 若是你是一隻菜鳥, 試著開始去找一個你有興趣的正在發展中的程序, 而且成爲一位好的 beta 測試者. 從幫忙測試開始, 很天然的你開始幫忙 debug, 進而開始幫忙修改程序. 你將在這過程當中學習到不少東西, 並,且和之後能夠幫助你的人結下因果. 3. 公佈有用的資訊. 另外一項好事是收集和過濾有用和有趣的資訊, 整理成 Web page 或 FAQ 之類的文件, 讓你們能很容易的收得. 幾種主要技術 FAQ 的維護者都能得和免費軟件的做者幾乎同樣多的尊敬. 4. 幫忙維持一些簡單的工做.  hacker 文化是由一羣自願者維持運做著. 有一些工做很無趣但卻必須維持正常運做的, 如: 管理 mailing list, 維護 newsgroup, 維持大的軟件供應站臺, 推進RFC 和其它技術標準. 作這類的事將會獲得不少的尊敬, 由於你們都知道這些工做是很花時間, 但又不像玩弄程序碼般有趣. 5. 爲 hacker 文化而努力. 最後一項, 你能夠爲這個文化效勞, 並推廣這個文化(例如, 寫一份正確的入門手冊,教別人如何成爲一位 hacker :-)). 在你由於作了前面四件事之一而出名以前, 這不是你該作的事. 正確的說, hacker 文化並無任何的領導者, 但在這文化有所謂的文化英雄,族羣歷史學家. 當你在其中混的夠久以後, 你也許會成爲這之中的一員. 注意:hacker 們並不相信族羣, 喧騷自大的長者, 因此成爲這樣的長者是很是的危險.與其去和別人競爭, 你寧肯爲本身定位, 給本身一個親切譜虛的身份. Hacker 和 Nerd(怪胎) 的關係 成爲一位 hacker, 你不須要成爲使人討厭的人(Nerd), 反於社會常態. 然而, 這對你而言倒是很是有幫助的, 並且有不少 hacker 也是讓人討厭的人. 當一個社會的浪人有益於讓你專心在真正重要的事情上面, 例如: 思考和 hacking. 所以, 有不少 hacker 們接受了 `nerd’ 這種稱呼, 甚至是使用 `geek’(雜耍演員) 這個字眼, 並引覺得傲 -- 這是一種說明他們獨主於世俗習慣以外的方法. 在 The GeekPage 可找到更多相關的討論。 ([url]http://samsara.circus.com/~omni/geek.html[/url]) 若是你可以適當的專一於 hacking 這事上面, 而且還保有你的生活, 那很好. 並且如今要作到這樣, 比起之前我仍是個菜鳥時容易. 主流文化如今也較爲 techno-nerd (技術怪胎)所接受. 甚至有愈來愈多的人認爲 hacker 們能夠是很好的男友, 女友,老公和老婆. 在 Girl’s Guide to Geek Guys 可找到更多相關的訊息。 ([url]http://www.bunnyhop.com/BH5/geekguys.html[/url]) 若是你是由於沒有生活而想開始 hacking, 那也不要緊, 至少你就沒有不能專心的問題了. 也許不久以後你就是一位 hacker 了. 風範要點 再一次的強調, 要成爲 hacker 就要了解 hacker 的精神. 若是你並不玩電腦, 那麼仍是有一些事情能夠幫助你. 這些不能成爲 hacker 的代替品, 不過有很多的 hacker常常作這些事, 並認爲這些事和 hacking 的本質有某種基本的關連. * 閱讀科學小說, 並參加小說的聚會(這是一個遇到 hacker 和原始 hacker們的好方法). * 學禪, 而且(或者)接觸戰爭的藝術. (鋼鐵般的紀律彷佛很重要.) * 訓練你的耳朵對音樂的分析能力, 試著欣賞某種特殊的音樂, 並好好的玩一些樂器或者唱歌. * 增長對於俏皮話和文字遊戲的認識. * 增強你的母語寫做能力. (有很驚人數量的 hacker, 都是不錯的做家. 這包括一位我所知道的最好的 hacker.) 你作越多這些事, 那麼你就愈是天生 hacker 的料。 最後, 有一些事千萬不要作. * 不要使用愚蠢而誇張的代號(user ID)或化名. * 不要加入 Usenet 的戰火 (或者任何地方的). * 不要自稱爲 `cyberpunk’(電腦搗蛋玩家),也不要浪費任什麼時候間在這麼作的人身上. * 不要 post 或 email 一些充滿錯字或文法錯誤的文章. 作了這些事的結果只是爲你招來你們的責難和批評. Hacker 們的記憶力都很好, 他們會 一直記住你的所作所爲, 你可能要花數年的時間纔有辨法讓他們從新接受你. 其它的資源 Loginataka 有提到一些關於 Unix hacker 的訓練和態度. ([url]http://www.ccil.org/~esr/faqs/loginataka.html[/url]) 我也寫了關於 Hackerdom 歷史的簡介. ([url]http://www.ccil.org/~esr/faqs/hacker-hist.html[/url]) Peter Seebach 也維護了一份很不錯的 Hacker FAQ, 這份文件是專門給不知道 如何和 hacker 們相處的經理人們看的. ([url]http://www.solon.com/~seebs/faqs/hacker.html[/url]) 我也寫了一份 paper「Cathedral and the Bazaar」, 上面解釋 Linux 文化的運做 方式. 你能夠在我寫的page 上找的到. ([url]http://www.ccil.org/~esr/writings/index.html[/url]) 常被提出的問題 (FAQ) Q: 你能教我如何 hack 嗎? 自從公開這個 page 以來, 我每週都收到不少人來信問「請告訴我全部關於 hacking的事「. 但很不幸的, 我沒有這個時間或者是精力去作這件事; 個人 hacking project已經用掉我 110% 的時間了. 就算我願意, 可是基本上, hacking 是一種必須自習而成的生活態度和技術. 你會發現,當真正 hackers 願意幫助你的同時,你將得不到他們的尊敬,若你求他們把會的東西都直接給你的話。 先學一點東西吧! 表現出你正在努力嘗試, 你有能力獨立學習的. 而後再帶著你所遇到的難題去和 hacker 見面. Q: 我要在那才能找的到一位真的 hacker 並和他們交談? 很好, 不過很肯定的, 不會在 IRC. 就我所能看到的, 那除了騙子和 cracker 以外什麼也沒有. 最好的方法是找到一個在你附近的 Unix 或 Linux 的使用羣, 並加入他們,參加他們的聚會 (在 Linux Users’ Group page on Sunite 有一份目錄). ([url]http://unc.sunsite.edu/linux/ldp/lugs.html[/url]) Q: 我應該從那一種語言開始學呢? 若是你真的不懂 HTML 的話, 那就從它開始吧. 市面上有不少外表光鮮亮麗的 HTML爛書. 我最喜歡的一本是 HTML: The Definitive Guide. ([url]http://www.ora.com/catalog/html2/[/url]) 若是你已經準備好開始學 programming 了, 我會建議你從 Perl([url]http://www.perl.com/[/url])或 Python([url]http://www.python.org/[/url])開始. 而 C 是真的很重要, 不過它也真的很難. Q: 我要如何開始呢? 在那能拿到免費的 Unix 呢? 我在這 page 內處處都有指向取得 Linux 的地方. 要成爲一位hacker, 你必需要有動機而且主動進取還要獨立學習. 就從如今開始吧.... 原著 Eric S. Raymond [email]esr@snark.thyrsus.com[/email] 譯者 [email]Thinker.bbs@bbs.yzu.edu.tw[/email]
相關文章
相關標籤/搜索