萬盛學電腦網

 萬盛學電腦網 >> 健康知識 >> 如何成為一位 hacker

如何成為一位 hacker

這真是一個好問題, 不止是原作者說他被問過很多次, 包括我和許多網絡上的朋友們也常有這個困擾. 不過和作者不同的是, 我經常沒有一個固定的答案 :p事實上我所能提供也只是自己的經驗, 卻沒有足夠的能力來肯定自己的看法是不是正確的. 這份文章應該可以減去大家不少的麻煩 :)

嗯!! 這次自告奮勇當起翻譯, 雖然是起於晚上回到住的地方之後很無聊, 可以用來打發時間. 不過我翻了百行之後, 越翻越後悔. 主要是因為面有一些句子實在很難翻譯, 這大概是因為我的英文底子不太好的關系吧!! 好不容易, 終於是翻完了. 為讓句子更通順或者是個人誤解, 翻譯後和原文有些出入, 這方面還請各位大大見諒. :-)

Thinker
--------------------------------------------------------------------------
如何成為一位 hacker

為何有這份文件?

身為 Jargon File 的編輯, 常有一些網絡新手發 mail 問我 “如何成為一個厲害的hacker?“. 但, 很奇怪的, 似乎沒有任何的 FAQs 或 Web documents 說明這麼重要的問題, 所以我寫了一份我自己的看法.

如果你是以 offline 的方式在看這一份文件的某一個版本, 那麼你可以在
“~esr/faqs/hacker-howto.html“ 找到這份文件的目前最新版本.

怎麼樣才算是一位 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) 寫程序, 這兩項是不錯的方法.

學習寫程序就像在學習寫一種良好的自
copyright © 萬盛學電腦網 all rights reserved