歡迎光臨
每天分享高質量文章

起點:如何成為一名駭客?

來自:JobsLong(http://suip.cc/u/JobsLong) 

譯文:http://suip.cc/d/1–

原文:http://www.catb.org/esr/faqs/hacker-howto.html

說明: 這篇文章是對 ESR 的經典文章 How to become a hacker ? 的最新修訂翻譯,參照了一些國內的翻譯版本,某種意義上來講,這不僅僅是一篇駭客入門的讀物,也是很不錯的程式設計入門指導。

什麼是駭客?

駭客字典 中對“駭客”一詞給出了很多定義,大部分定義都涉及高超的程式設計技術,解決問題和剋服限制的樂趣。如果你想知道如何成為一名駭客,只有兩方面是非常重要的:態度和技術。

長久以來,存在一個專家級程式員和網路高手的共享文化社群,其歷史可以追溯到幾十年前第一臺分時共享的小型機和最早的 ARPAnet 實驗時期。 這個社群文化的成員創造了“Hacker/駭客”這個術語。 駭客們建起了 Internet,使 Unix 作業系統 成為今天這個樣子。駭客們讓 WWW(全球資訊網) 正常運轉。如果你是這個文化的一部分,如果你已經為它作了些貢獻,而且圈內的其他人也知道你是誰並稱你為一個駭客,那麼你就是一名駭客。

駭客精神並不僅僅侷限於軟體駭客文化圈中。有很多人同樣以駭客態度對待其它事情如電子和音樂,事實上,你可以在任何較高階別的科學和藝術中發現它。軟體駭客們識別出這些在其他領域同類並把他們也稱作駭客。

有人宣稱駭客實際上是獨立於他們工作領域的。 但在本文中,我們將註意力集中在軟體駭客的技術和態度,以及發明瞭“駭客”一詞的共享文化傳統。

另外還有一群人,他們大聲嚷嚷著自己是駭客,實際上他們卻不是。他們是一些蓄意破壞計算機和電話系統的人(多數是青春期的少年)。真正的駭客把這些人叫做“Cracker/駭客”,並不屑與之為伍。多數真正的駭客認為駭客們是些不負責任的懶傢伙,還沒什麼大本事。專門以破壞別人安全為目的的行為並不能使你成為一名駭客, 正如拿根鐵絲能開啟汽車並不能使你成為一個汽車工程師。不幸的是,很多記者和作家往往錯把“駭客”當成駭客;這種做法會激怒真正的駭客。

根本的區別是:駭客們創造,駭客們破壞。

如果你想成為一名駭客,繼續讀下去。如果你想成為一名駭客。去讀 alt.2600 新聞組[譯者:一個關於網路安全的新聞組],並且在發現你並不是你想的那麼聰明的時候去蹲 5-10 次監獄。關於駭客,我只想說這麼多。

駭客的態度

駭客們解決問題、創造事物,信仰自由以及互相幫助。要想被認為是一名駭客,你的行為必須表現出已經具有了這種態度。但是要想做的好像具備這種態度,你就不得不真的擁有這種態度。

但是如果想透過培養這種駭客態度在駭客文化中得到認可,那麼你就大錯特錯了。成為具備這種態度的人對你來說非常重要–有助於你的學習,並給你提供源源不斷的動力。同所有創造性藝術一樣,成為大師最高效的方式就是模仿大師的精神–不是僅從理智上,更要從感情上進行模仿。

或者就像這首現代禪意詩描述的:

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 網站上也有不錯的 教程, 在 Computer Science Circles上還有很多不錯的文章。

我過去常常推薦將 Java 作為早期學習的一門語言。但是這篇 評論 改變了我的想法(搜尋 “The Pitfalls of Java as a First Programming Language”, 點進去讀一下相關的資訊)。作為駭客,不會接受解決問題僅僅像五金店裡面的管道工一樣[譯者:只是把一大堆硬體組裝起來],你必須知道每個元件是如何運作的。現在我認為最好的方式是先學習 C 和 LISP,然後再學習 Java 。

也許這裡有個一般性的問題。如果一門語言為你做了太多,它可能對開發是一個稱手的工具同時卻很難去學習。不僅僅是語言存在這個問題,Web 應用程式框架,比如 RubyOnRails, CakePHP, Dingo 或許使你很容易到達一個淺顯的認識,但是當你碰到一個難題而沒有這些框架資源支援的時候你就會束手無策,甚至只是去除錯一個簡單問題的解決方案。

如果你要做一些重要的程式設計工作,你就必須要學會 C,Unix 的核心語言。C++ 和 C 有很密切的關係,如果你知道其中一個,學習另外一個不用耗費太多精力。無論哪一個語言你都可以先嘗試開始學習一下,但是,實際上,儘量避免直接用 C 程式設計你會更加具有生產力。

C 非常高效,很節省你的機器資源。不幸的是,C 需要你手動做大量的低層次的記憶體管理來獲得高效。低階編碼非常複雜、容易出錯,會花費你大量的時間在除錯程式上面。由於今天的機器效能非常強大,還這樣做的話通常來講是一個糟糕的決定 — 更加明智的是去使用一門機器時間低效的的語言,但是你的時間更有效。所以,Python。

其他對駭客而言比較重要的語言包括 Perl和 LISP。 Perl 很實用,值得一學;它被廣泛用於活動網頁和系統管理,因此即便你從不用 Perl 寫程式,至少也應該能讀懂它。對於許多使用 Perl 的人,我建議學習使用 Python,儘量去避免在那些不需要 C 的機器效率的工作中使用 C 語言程式設計,你只需要能夠讀懂那些程式碼就可以。

LISP 值得學習是因為當你最終掌握了它你會得到豐富的經驗;這些經驗使你在以後的日子裡成為一個更好的程式員,即使你實際上可能很少使用 LISP 本身。(你可以透過使用 Emacs 編輯器來獲得 LISP 經驗,或者 GIMP 的 Script-Fu 外掛。)

當然,實際上你最好五種都會。 (Python, C/C++, Java, Perl, and LISP). 除了是最重要的程式語言,它們還代表了非常不同的程式設計方法,每種都會讓你受益非淺。

但是你需要意識到僅僅去學會幾種語言是不會達到駭客需要的技術水平,甚至也不能成為一個程式員 — 你需要站在一般性的角度思考程式設計問題,獨立於任何程式語言。要想成為一個真正的駭客,你要達到的標準時可以透過相關的手冊和你已經知道的知識在數天內學習一門新語言。這意味你會學習到幾種非常不同的語言。

這裡我無法完整地教會你如何程式設計—這是個複雜的活兒。但我可以告訴你,書本和課程也無濟於事。幾乎所有最好的駭客都是自學成材的。真正能起作用的就是去親自 讀程式碼 和 寫程式碼。

彼得•諾維格,谷歌的頂尖駭客,也是現在被廣泛使用的人工智慧領域的教科書的共同作者,寫了一篇棒極了的文章 Teach Yourself Programming in Ten Years。他的成功程式設計秘訣值得關註。

學習如何程式設計就象學習用自然語言寫作一樣。最好的做法是讀一些大師的名著,試著自己寫點東西,再讀些,再寫點,又讀些,又寫點….如此往複,直到你達到自己在範文中看到的簡潔和力量。

在如何學習程式設計中,我已經說了很多次這個學習過程。只是一個很簡單的教導,但卻是最難的事情。

過去找到好的程式碼去讀是困難的,因為很少有大型程式的可用原始碼能讓新手練手。這種狀況已經得到了很大的改善;現在有很多可用的開放原始碼軟體,程式設計工具和作業系統(全都有駭客寫成)。這使我們自然地來到第二個話題。

2. 獲取一個開放原始碼的 Unix 並學會使用、執行它

我假設你已經擁有了一臺個人計算機或者有一個可用的( 今天的孩子們真幸福 🙂 )。新手們最基本的一步就是得到一份 Linux 或 BSD-Unix,安裝在個人計算機上,並執行它。

當然,這世界上除了Unix還有其他作業系統。但它們都是以二進位制形式傳送的 — 你無法讀到它的原始碼,更不可能修改它。嘗試在 DOS 或 Windows 的機器上學習駭客技術,就象是在腿上綁了鐵塊去學跳舞。

使用 Mac OS X 當然也可以,但是隻用一部分系統式開放原始碼的 — 你可能會遇到很多限制,而且還必須小心不要養成只開發蘋果專用程式碼的壞習慣。如果你集中精力在外殼之下的 Unix,你會學到一些有用的東西。

除此之外,Unix 還是 Internet 的作業系統。你可以不知道 Unix 而學會用 Internet,但不懂它你就無法成為一名 Internet 駭客。因為這個原因,今天的駭客文化在很大程度上是以 Unix 為中心的。(這點並不總是真的,一些很早的駭客對此很不高興,但 Unix 和 Internet 之間的共生關係已是如此之強,甚至連微軟也無可奈何) 。

所以,裝一個 Unix — 我個人喜歡 Linux,不過也有其他選擇。(你也可以在同一臺機器上同時執行 DOS, Windows 和 Linux)學會它。執行它。用它跟 Internet 對話。讀它的程式碼。試著去修改他。你會得到比微軟作業系統上好的多的程式設計工具(包括 C, Lisp, Python, and Perl),你會得到樂趣,並將學到比你想象的更多知識。

瞭解更多 Unix 的知識,可以檢視 Loginataka。你或許還想看一下這本書 《Unix 程式設計藝術》

Let’s Go Larval! 部落格是一個 Linux 新手的學習記錄,我覺得寫的很清晰明瞭,對其他人也很有幫助。How I Learned Linux 是學習 Linux 一個不錯的起點。

如何獲得一個 Linux, 檢視 Linux Online 站點,你可以從這個站點下載,也可以尋找一個本地的 Linux 使用者組來幫助你安裝。

在這篇教程文章頭十年的時光裡,我從一個初學者的角度來看,所有的 Linux 發行版幾乎是相同的。但是在 2006-2007,一個更好的選擇出現了, Ubuntu。 當然,其他的 Linux 發行版有自己領域的優勢, Ubuntu 遙遙領先的是對新手使用者的易用性。需要註意的是,Ubuntu 在幾年後推出的預設介面 Unity 比較醜陋和不可重用,Xubuntu 或者 Kubuntu 變體或許比較好。

你可以再 www.bsd.org 找到 BSD Unix 的幫助資訊和資源;

還有一種試水的方式是啟動使用 Linux 愛好者所說的 LiveCD,他從 CD 可以執行一個 Linux 發行版,而不用擔心去更改硬碟佈局。這將會執行比較緩慢,因為 CD 非常緩慢,但是這是一種可以快速看一下內容而不會造成任何問題。

我已經寫了一些關於 Unix 和 Internet 的 啟蒙內容。

我常推薦新手獨立安裝 Linux 或者 BSD 系統。現在的安裝程式已經足夠好,你可以完全自己動手搞定,即使是新手。儘管如此,特推薦你諮詢或者搜尋本地的 Linux 使用者組去尋求幫助,這不會有任何損失,安裝過程也會更順利。

3. 學習如何使用網際網路以及寫 HTML 語言

大多駭客文化建造的東西都在你看不見的地方發揮著作用,幫助工廠、辦公室和大學正常運轉,錶面上很難看到它對他人的生活的影響。Web 是一個大大的例外。即便政客也同意,這個巨大而耀眼的駭客玩具正在改變整個世界。單是這個原因(還有許多其它的), 你就需要學習如何掌握 Web。

這並不是僅僅意味著如何使用瀏覽器(誰都會),而是要學會如何寫 HTML,Web 的標記語言。如果你不會程式設計,寫HTML會教你一些有助於學習的思考習慣。因此,先建起自己的主頁。

但僅僅建一個主頁也不能使你成為一名駭客。 Web裡充滿了各種網頁。多數是無意義的,零資訊量垃圾 — 非常炫酷的垃圾,請註意,垃圾都是一樣的。(更多可以檢視 HTML Hell)

要想有價值,你的網頁必須有內容 — 必須有趣或對其它駭客有用。這樣,我們來到下一個話題…

4. 你過你還不熟悉實用英語,學會它

作為一個美國人和英語為母語的人,之前我並不情願去建議這個。但是避免被扣上文化帝國主義的名頭,還是把它提出來。而且還有幾個其他語種為母語的人力勸我指出英語是駭客文化和 Internet 的官方語言,和你需要知道它在駭客社群裡的功能。

在 1991 年我瞭解到許多駭客把英語當做第二語言,併在技術討論中使用它甚至他們使用同一母語。有人告訴我這是因為英語比其他語言有更豐富的專業詞彙,對於工作來說是一個更好的工具。同樣的原因,英文科技書籍的翻譯版本通常不會讓人很滿意(當他們全部完成)。

Linus Torvalds,芬蘭人,用英語寫程式碼註釋(他顯然沒有想過用其他方式)。他流利的英語是他有能力去招募一個全球性的 Linux 開發社群的重要因素。這是一個值得學習的榜樣。

成為一個英語為母語的人,並不能保證你的語言技巧足夠實用到做一個駭客。如果你的寫作是半文盲、不合語法,並且充斥著拼寫錯誤,許多駭客(包括我)往往會直接無視你。雖然不拘小節的寫作不一定意味著馬虎的思考。但是我們通常發現這兩者有很強的相關性 — 我們沒有馬虎的思考家。如果你還不能勝任,開始學習。

駭客文化中的地位

象大部分不涉及金錢的文化一樣,駭客王國的運轉靠聲譽維護。你設法解決有趣的問題,但它們到底多有趣,你的解法有多好,是要有那些和你具有同樣技術水平的人或比你更牛的人去評判的。

相應地,當你在玩黑客遊戲時,你知道,你的分數要靠其他駭客對你的技術的評估給出。(這就是為什麼只有在其它駭客稱你為駭客是,你才算得上是一名駭客)這個事實常會被駭客是一項孤獨的工作這一印象所減弱;它也會被另一個駭客文化的禁忌所減弱(此禁忌的效力正在減弱但仍很強大):拒絕承認自我或外部評估是一個人的動力。

特別地,駭客王國被人類學家們稱為一種精英文化。在這裡你不是憑藉你對別人的統治來建立地位和名望,也不是靠美貌,或擁有其他人想要的東西,而是靠你的奉獻。尤其是奉獻你的時間,你的才智和你的技術成果。

要獲得其他駭客的尊敬,你可以做以下五種事情:

1. 寫開放原始碼的軟體

第一個(也是最基本和傳統的)是寫些被其他駭客認為有趣或有用的程式,並把程式的原始碼公佈給大家共享。

(過去我們稱之為自由軟體-free software,但這卻使很多不知 free 的精確含義的人感到不解。現在我們很多人使用開放原始碼-open source 這個詞)

駭客王國裡最受尊敬的大牛們是那些寫了大型的、具有廣泛用途的軟體,並把它們公佈出去,使每人都在使用他的軟體的人。

但是這也有一個歷史轉折點,在 90 年代中期之前,駭客們很尊敬他們中間的開源軟體開發者,那是大多數駭客都在為閉源軟體工作。當我在 1996 年寫這份檔案的第一個版本的時候,依然如此。開源軟體的主流化是從 1997 年開始的。今天,駭客社群和開源軟體開發者社群是兩個描述和本質上基本相同的文化和人群 — 但是需要記住的是,這並非總是如此。(更多資訊,檢視 Historical Note: Hacking, Open Source, and Free Software 部分)

2. 幫助測試並修改開放原始碼的軟體

駭客們也尊敬也那些使用、測試開放原始碼軟體的人。在這個並非完美的世界上,我們不可避免地要花大量軟體開發的時間在測試和抓臭蟲階段。 這就是為什麼任何開放原始碼的作者稍加思考後都會告訴你好的 beta 測試員象紅寶石一樣珍貴。 (他知道如何清楚描述出錯癥狀,很好地定位錯誤,能忍受快速釋出的軟體中的 bug,願意使用一些簡單的診斷工具) 甚至他們中的一個能判斷出哪個測試階段是延長的、令人精疲力盡的噩夢,哪個只是一個有益健康的玩意兒。

如果你是個新手,試著找一個感興趣的正在開發的程式,作一個好的 beta 測試員。從幫著測試,到幫著抓臭蟲,到最後幫著改程式,你會不斷進步。以後你寫程式時,會有別人來幫你,你就得到了你當初善舉的回報。

3. 公佈有用的資訊

另一個好事是收集整理網頁上有用有趣的資訊或檔案如 FAQ。許多主要 FAQ 的維護者和其他開放原始碼的作者一樣受到大家的尊敬。

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

駭客文化是靠自願者運轉的。要使 Internet 能正常工作,就要有大量枯燥的工作不得不去完成 — 管理 mail list,newsgroup,維護大量檔案,開發 RFC 和其它技術標準等等。

做這類事情的人會得到很多人的尊敬,因為每人都知道這些事情是耗時耗力的苦役,不象編碼那樣好玩。做這些事情需要毅力。

5. 為駭客文化本身服務

最後,你可以為這個文化本身服務(例如象我這樣,寫一個“如何成為駭客”的初級教程 :-)(也可以像我這樣搭建一個優質的中文駭客社群 🙂 ) 這並非一定要在你已經在這裡獃了很久,精通所有以上 4 點,獲得一定聲譽後後才能去做。

駭客文化沒有領袖。精確地說,它確實有些文化英雄和部落長者和歷史學家和發言人。若你在這圈內獃的夠長,你或許成為其中之一。

記住:駭客們不相信他們的部落長者的自誇的炫耀,因此很明顯地去追求這種名譽是危險的。你必須具備基本的謙虛和優雅。

駭客和怪人/Nerd的聯絡

同流行的傳說相反,做一名駭客並不一定要你是個怪人。然而,很多駭客都是怪人。做一個出世者有助於你集中精力進行更重要的事情,如思考和程式設計。

因此,很多駭客都願意接受“怪人”這個標簽,更有甚者願意使用 極客/geek 一詞並自以為豪—這是宣佈他們與主流社會不合作的宣告(還有對科幻小說和戰略遊戲的狂熱也常常是駭客的標簽)。術語 書獃子/nerd 最早被使用是在 1990s,那時,書獃子/nerd 是一個溫和的貶義詞,而 geek 更加刺耳。在 2000 年之後這些術語開始變化,至少在美國流行文化中,在那些非技術人員當中也有極客文化的驕傲。

如果你能集中足夠的精力來做好駭客同時還能有正常的生活,這很好。今天作到這一點比我在1970年代是個新手是要容易的多。今天主流文化對技術怪人要友善的多。甚至有更多的人意識到駭客通常更富愛心,是塊很好的做戀人和配偶的材料。

如果你因為生活上不如意而為做駭客而吸引,那也沒什麼—至少你不會分神了。或許以後你會找到自己的另一半。

風格的指引

重申一下,做一名駭客,你必須進入駭客精神之中。當你不在計算機邊上時,你仍然有很多事情可做。它們並不能替代真正的程式設計(沒有什麼能替代程式設計),但很多駭客都那麼做,並感到它們與駭客精神存在一種本質的關聯。

學會如何用你的母語寫作。儘管傳統觀念上程式員並不需要寫文章,包括我所知道所有最棒的駭客都非常擅長寫作。

閱讀科幻小說。參加科幻小說討論會。(一個很好的尋找駭客的場合)

加入一個駭客空間去創造一些東西。(另外一個很好的方式去尋找駭客和潛在駭客)。

嘗試一種武術形式。那種需要精神自律的武術形式在某些重要的方面和駭客做的方式是一樣的。在駭客中最流行武術形式肯定是亞洲的空手藝術,比如跆拳道,各種形式的空手道、功夫、合氣道或者柔術。西方劍術和亞洲劍術也有明顯的追隨者。在一些法律許可的地方,手槍射擊在 1990s 後也人氣高漲。最駭客風格的武術形式是那些強調精神自律、放鬆意識、精確控制的,而不是原始的力量,運動能力或物理韌性。

研究冥想和禪宗。

練就一雙精確的耳朵,學會鑒賞特別的音樂。學會玩某種樂器,或唱歌。

提高對雙關語的鑒賞。

這些事情,你做的越多,你就越適合做駭客。至於為什麼偏偏是這些事情,原因並不很清楚,但它們都涉及到了左-右腦的綜合技巧,這似乎是關鍵所在。(駭客們既需要清晰的邏輯思維,有時也需要強烈的跳出邏輯之外的直覺)

註: Work as intensely as you play and play as intensely as you work. [譯:不會翻譯,待處理]

對於真正的駭客,娛樂、工作、科學、藝術的界限逐漸消失,或者被合併到了高層次的創造性的有趣活動。而且,也不會滿足於很窄的技術領域。因此許多駭客自我描述我程式員,他們可能勝任多種相關的技能 — 系統管理員,網頁設計,修電腦是最常見的。一個駭客是系統管理員,在另一方面,很可能擁有相當熟練指令碼程式設計和網站設計。駭客們不做半途而廢的事情,對於他們所有投資的技巧來說,他們往往會非常擅長。

最後,還有一些不要去做的事情。

不要使用愚蠢的,過於嘩眾取寵的 ID。

不要再論壇或者新聞組挑起戰爭的火焰(或者在其他任何地方)。

不要自稱為網路崩客(punk) ,也不要對那些人浪費時間。

不要寄出充滿拼寫和語法錯誤的 email,或張貼錯誤百出的文章。

做以上的事情,會使大大損害你的聲譽。駭客們個個記憶超群 — 你將需要數年的時間讓他們忘記你的愚蠢。

網名和虛擬身份問題應該得到一定的關註。將你的 ID 隱藏在一個虛擬身份之下的做法很 low,是駭客, warez d00dz的做法,更是年少和愚蠢的特徵。駭客不這樣做,他們為他們的所作所為感到自豪,並希望用自己的名字關聯。所以如果你有一個虛擬身份,將其刪除,在駭客文化中這隻會標志著你是一個失敗者。

FAQs

1. 我如何知道自己已經是一名駭客了?

問你自己三個問題:

  • 你能流利的講解程式碼嗎?

  • 你認同駭客社群的標的和價值觀嗎?

  • 是否有駭客社群的成員稱你為駭客?

如果你能肯定的回答這三個問題,那麼你已經是一名駭客了。缺一不可。

第一個測試有關於技術。你可能已經透過本文前面描述的一些最低的技術要求。你可能輕鬆的達到這個標準如果你參與一些大量程式碼的開源專案。

第二個測試和態度有關,如果描述的駭客的五個原則對你來說顯而易見,就想一本你已經那樣生活的小說一樣,這就是你的生活方式。你已經透過了一半的測試。這是內向的一半,另外,外向的一半是你認同駭客社群長期專案的程度。

下麵是一個不完整的指示清單:Linux 的提升的發展對你是否重要?你是否熱愛自由軟體?反對壟斷?你是否有相信計算機可以讓未來世界更加豐富、更人性化而採取行動的信念?

但是一個需要註意的問題需要列在在這裡。駭客社群有一些具體的、主要是防禦性的政治利益 — 其中兩個是捍衛自由言論的權利和低於”智慧財產權”的權利爭奪,這將會是開源非法。其中一些長期專案是由公民自由組織的,蔽日電子前哨基金會,駭客的態度錶面上包括支援他們。但是除此之外,許多駭客嘗試去系統化駭客的態度和質疑為一個明確地政治綱領,我們已經知道,這非常困難,這些嘗試是分裂和分心。如果有人用駭客的態度的名義招募你去首都遊行,他們已經忽略了重點。正確的反應應該是 “閉嘴,給我看一下程式碼”。

第三個測試有一個棘手的遞迴元素在裡面。我註意到在 “什麼是駭客?” 部分,成為一個駭客需要屬於一個特定的亞文化社群或社交網路,有共同的歷史,有內部和外部的問題。在遙遠的過去,駭客是一個更加團結和自我意識比今天更強。但過去三十年,社會網路的重要性以日益增強,網際網路的連線,是駭客亞文化群的核心更加容易開發和維護。一個簡單行為指數的變化,在本世紀,我們有自己的 T-shirts。

研究網路的社會學家,比如在 “無形學院” 的總課題下的駭客文化指出這種網路的一個特點是,他們有 把關人/gatekeeper — 核心成員擁有社交權威去任何新的成員加入這個網路。因為駭客文化是一個鬆散和非正式的組織,把關人的作用也是非正式的。但是所有的駭客都明白在他們網路中,並不是每一個駭客都是把關人。把關人是必須有一定的資歷和成就才可以賦予的稱號。有多少很難去量化,但是每個駭客都知道他,當他們看到他。

2. 你會教我如何做駭客嗎?

自從第一次釋出此頁,我每週都會得到一些請求,要我“教會他如何做駭客”;遺憾的是,我沒有足夠的時間和精力來做這個;我自己的程式設計專案已經佔用了我 110% 的時間。

甚至即便我想教你也不可能,駭客基本上是一項需要你自行修煉的的態度和技術。你會發現即使真正的駭客想幫助你,如果你乞求他們填鴨一樣教你的話,你不會贏得他們的尊敬。

首先去學習。顯示你在嘗試,你能靠自己去學習。然後再去向駭客們請教問題。

如果你透過電子郵件向駭客求助,這裡有兩件事你需要提前知道。我們發現那些寫作懶惰,粗心,有大量拼寫錯誤的人通常懶得去思考,去成為優秀的駭客。所以必須註意正確拼寫,並使用正確的標點符號,否則很可能會被忽略。其次,不要去回覆一個不是從你傳送郵箱串列中的不同答覆,我們發現這些通常是使用偷來的賬號的小偷,我們對獎勵或協助偷竊沒有興趣。


●編號586,輸入編號直達本文

●輸入m獲取文章目錄

推薦↓↓↓

大資料與人工智慧

更多推薦18個技術類公眾微信

涵蓋:程式人生、演演算法與資料結構、駭客技術與網路安全、大資料技術、前端開發、Java、Python、Web開發、安卓開發、iOS開發、C/C++、.NET、Linux、資料庫、運維等。

贊(0)

分享創造快樂