怎樣成為一名真正的黑客?
To follow the path
look to the master,
follow the master,
walk with the master,
see through the master,
become the master.?
什么是黑客? ?
????????互聯(lián)網(wǎng)上有一堆關于“Hacker”這個詞的定義,大部分是關于“技術(shù)高超”、“熱衷解決問題”、以及“超越極限”的內(nèi)容。但如果你只想知道如何成為一名黑客的話,真正重要的只有兩條。 這可以追溯到幾十年前,那時候第一代微型計算機才剛剛誕生, 而 ARPAnet 的實驗也才剛展開。那時的編程專家建立了一個具有共享性質(zhì)的文化社群, “Hacker” 這個名詞就是其中的成員創(chuàng)造的。黑客們建立了互聯(lián)網(wǎng),黑客們讓 Unix 操作系統(tǒng)演化到現(xiàn)在的模樣,黑客們經(jīng)營著Usenet,黑客們讓萬維網(wǎng)運轉(zhuǎn)起來。如果你是這個文化的一部分,如果你對這種文化有所貢獻,而且這個社群的其它成員也認識你并稱你為 Hacker,那么你就是一名黑客。
????????黑客的思維方式并不僅僅局限在軟件黑客的文化圈內(nèi)。也有人用黑客態(tài)度對待其它事情,如電子和音樂方面——其實你可以在任何最高級別的科學和藝術(shù)活動中發(fā)現(xiàn)它的身影。軟件黑客對這些領域的踐行者尊重有加,并把他們也稱作黑客——有人宣稱黑客天性是絕對獨立于他們工作的特定領域的,以共享為特征的文化傳統(tǒng)。?
有另外一群人大聲嚷嚷著自己是黑客,但他們根本不是。他們主要由青少年男性構(gòu)成,是一些蓄意破壞計算機的人。真正的黑客把這些人叫做“駭客”(Cracker),并不屑與之為伍。黑客們通常認為他們是一群懶散、沒有責任心、而且不是很聰明的人。會通過熱接線發(fā)動汽車并不意味著你是一個汽車工程師。一樣的道理,會破壞安全也不意味著你是一名黑客,不幸的是,很多記者和作家往往錯把“駭客”當成黑客;這種做法一直使真正的黑客感到惱火。?
根本的區(qū)別是:黑客搞建設,駭客搞破壞。?
如果你想成為一名黑客,請接著讀下去。?
黑客的態(tài)度 ?
黑客們解決問題,建設事物,同時他們信仰自由和無私的雙向幫助。要想作為一名黑客被社群認同,你需要體現(xiàn)出自己已經(jīng)具備了這種態(tài)度。而要體現(xiàn)出這種態(tài)度,你就得真正相信和贊同這種態(tài)度。 但是,如果你認為培養(yǎng)黑客態(tài)度只是進入黑客文化圈的敲門磚,那就大錯特錯了。這種態(tài)度將有助于有助于你的學習,并且能為你提供源源不斷的動力,所以它對你而言是至關重要的。和所有創(chuàng)造性的藝術(shù)一樣,成為大師的最有效方法,就是模仿大師的精神——智力上的模仿還不夠,還要從感情上進行模仿。?
修行之道?
關注大師的言行
跟隨大師的舉動
領會大師的意境
成為真正的大師?
如果你想成為一名黑客,反復讀下面的事情直至你相信它們:?
世界充滿了待解決的迷人問題。
做一名黑客會有很多樂趣,但卻是要費很多氣力方能得到的樂趣。 這些努力需要動力。成功的運動員從鍛煉身體、超越自我極限的愉悅中得到動力。同樣,做黑客,你得能從解決問題,磨練技術(shù)及鍛煉智力中得到基本的樂趣。 如果你還不是天生的這類人又想做黑客,你就要設法成為這樣的人。否則你會發(fā)現(xiàn),你的黑客熱情會被其他分心的事物吞噬掉——如金錢、性和社會上的虛名。
?一個問題不應該被解決兩次。
聰明的腦袋是寶貴的有限的資源。當世界還充滿非常多有待解決的有趣的新問題時,它們不應該被浪費在重新發(fā)明輪子這類事情上。
?無聊和乏味的工作是罪惡。
黑客(泛指具有創(chuàng)造力的人們)應該從來不會被愚蠢的重復性勞動所困擾,因為當這種事情發(fā)生時就意味著他們沒有在做只有他們才能做的事情——解決新問題。這樣的浪費傷害每一個人。因此,無聊和乏味的工作不僅僅是令人不舒服而已,而且是罪惡。
自由萬歲。
黑客們是天生的反獨裁主義者。任何能向你發(fā)命令的人能夠迫使你停止解決令你著迷的問題,同時,按照獨裁者的一般思路,他通常會給出一些極端愚昧的理由。因此,不論何處,任何獨裁主義的作法,只要它壓迫你和其他黑客,你就要和它斗到底。
態(tài)度不能替代能力。
作為一名黑客,你必須培養(yǎng)起這些態(tài)度。但只具備這些態(tài)度并不能使你成為一名黑客,也不能使你成為一個運動健將和搖滾明星。成為一名黑客需要智力,實踐,奉獻精神和辛苦工作。 因此,你必須學會懷疑,并尊重各種各樣的能力。
黑客們不會為那些裝模做樣的人浪費時間,但他們卻非常尊重能力——尤其是從事黑客工作的能力,不過任何能力總歸是好的。具備很少人能具備的那些方面的能力尤其好,其中具備涉及腦力、技巧和專注方面能力的當然最好。
尊敬能力,你就會享受到提高自己能力的樂趣——辛苦的工作和奉獻會變成一種高度娛樂而非苦差事。要想成為一名黑客,這一點非常重要。
黑客的基本技能
黑客態(tài)度重要,但技術(shù)更加重要。態(tài)度無法替代技術(shù),在你被別的黑客稱為黑客之前,有一些基本的技術(shù)你必須掌握。 這些基本技術(shù)隨著新技術(shù)的出現(xiàn)和老技術(shù)的過時也隨時間在緩慢改變??偟膩碚f現(xiàn)在主要包括以下技術(shù):?
學習如何編程。
這當然是最基本的黑客技能。如果你還不會任何編程語言,建議你從Python開始。它設計清晰,文檔齊全,合適初學者入門。它是一門很好的入門語言,并且不僅僅只是個玩具;它非常強大、靈活,也適合做大型項目。Java也是好的入門語言。它比Python難得多,但是生成的代碼速度也快得多。它同時也是一種優(yōu)秀的計算機語言,不止是用來入門。
但是注意,如果你只會一兩門語言,你將不會達到黑客所要求的技術(shù)水平,甚至也不能達到一個程序員的水平——你需要學會如何以抽象的方式思考編程問題,獨立于任何語言。要做一名真正的黑客,你需要學會在幾天內(nèi)通過一些手冊,結(jié)合你現(xiàn)在所知,迅速掌握一門新語言。這意味著你應該學會幾種截然不同的語言。
如果要做一些重要的編程工作,你將不得不學習C語言,Linux的核心語言。C++與C非常其他類似;如果你了解其中一種,學習另一種應該不難。但這兩種都不適合編程入門者學習。而且事實上,你越避免用C編程,你的工作效率會越高。 C語言非常有效率,節(jié)約你的機器資源。不幸的是,C的高效是通過你手動做很多底層的管理(如內(nèi)存)來達到的。底層代碼都是復雜極易出現(xiàn)bug的,會使你花極多的時間調(diào)試。
如今的機器速度如此之快,這通常是得不償失——比較明智的做法是使用一種運行較慢、較低效率,但大幅節(jié)省你的時間的語言。因此,選擇Java 、Python、NodeJS。 當然,實際上你最好這些都會(Python,Java,C/C++,NodeJS,JAVASCRIPT,SQL,C#)。
除了是最重要的黑客語言外,它們還代表了截然不同的編程思路和方法,每種都會讓你受益非淺。 你可以從書本上學到語言的特點——只是一些皮毛,但要使書面知識成為自身技能只能通過實踐和虛心向他人學習。因此要作到(一)讀代碼及(二)寫代碼。 學習如何編程就象學習用優(yōu)美的自然語言寫作一樣。最好的做法是讀一些大師的名著,試著自己寫點東西,再讀些,再寫點,再讀些,再寫點……如此往復,直到你的文章達到你體會到的范文的簡潔和力量。 過去找到適合閱讀的好的代碼是困難的,因為幾乎沒有大型程序的源代碼能讓新手練手。這種狀況已經(jīng)戲劇性地發(fā)生變化;開放源代碼軟件,編程工具和操作系統(tǒng)(全都由黑客寫成)現(xiàn)在已經(jīng)隨處可見。讓我們在下一個話題中繼續(xù)討論…
得到一個開放源代碼的Linux并學會使用、修改、運行它。
新手們能夠朝學習黑客技能邁出的最基本的一步就是得到一份Linux,安裝在電腦上,并運行它。 沒錯,這世界上除了Linux還有其他操作系統(tǒng)。但它們都是以二進制形式發(fā)布的——你無法讀到它的源代碼,也不可能修改它。嘗試在運行 Windows 或 MacOS 的機器上學習黑客技術(shù),就象是帶著腳鐐學跳舞。
除此之外,Linux還是Internet服務器的首選操作系統(tǒng)。因此,今天的黑客文化在很大程度上是以Linux為中心的。 所以, 安裝一套Linux(你可以同時安裝Windows在同一電腦上)。學習它,使用它,配置它。用它在Internet上沖浪。閱讀它的源代碼。修改它的源代碼。你會覺得樂趣無窮,學到在你成為大師之前意識不到的更多的知識。
如果你不懂實用性的英語,學習吧。
英語是黑客文化和Internet的工作語言,你需要懂得以便在黑客社區(qū)順利工作,當前英語有著比其他語言豐富得多的技術(shù)詞匯,因此是一個對于工作來說相當好的工具?;陬愃频脑?,英文技術(shù)書籍的翻譯通常不令人滿意(如果有翻譯的話)。
Linus Torvalds,一個芬蘭人,用英語注釋他的代碼(很明顯這對他來說不是湊巧)。他流利的英語成為他能夠管理全球范圍的Linux開發(fā)人員社區(qū)的重要因素。這是一個值得學習的例子。