當前位置:編程學習大全網 - 源碼下載 - 什麽是黑客

什麽是黑客

什麽是黑客?

黑客壹詞,源於英文Hacker,原指熱心於計算機技術,水平高超的電腦專家,尤其是程序設計人員。

但到了今天,黑客壹詞已被用於泛指那些專門利用電腦搞破壞或惡作劇的家夥。對這些人的正確英文叫法是Cracker,有人翻譯成“駭客”。

黑客和駭客根本的區別是:黑客們建設,而駭客們破壞。

---什麽是黑客?

Jargon File中對“黑客”壹詞給出了很多個定義,大部分定義都涉及高超的編程技術,強烈的解決問題和克服限制的欲望。如果妳想知道如何成為壹名黑客,那麽好,只有兩方面是重要的。(態度和技術)

長久以來,存在壹個專家級程序員和網絡高手的***享文化社群,其歷史可以追溯到幾十年前第壹臺分時***享的小型機和最早的ARPAnet實驗時期。 這個文化的參與者們創造了“黑客”這個詞。 黑客們建起了Internet。黑客們使Unix操作系統成為今天這個樣子。黑客們搭起了Usenet。黑客們讓WWW正常運轉。如果妳是這個文化的壹部分,如果妳已經為它作了些貢獻,而且圈內的其他人也知道妳是誰並稱妳為壹個黑客,那麽妳就是壹名黑客?

黑客精神並不僅僅局限於軟件黑客文化圈中。有些人同樣以黑客態度對待其它事情如電子和音樂---事實上,妳可以在任何較高級別的科學和藝術中發現它。軟件黑客們識別出這些在其他領域同類並把他們也稱作黑客---有人宣稱黑客實際上是獨立於他們工作領域的。 但在本文中,我們將註意力集中在軟件黑客的技術和態度,以及發明了“黑客”壹詞的哪個***享文化傳統之上。

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

根本的區別是:黑客們建設,而駭客們破壞。

如果妳想成為壹名黑客,繼續讀下去。如果妳想做壹個駭客,去讀 alt.2600 新聞組,並在發現妳並不像自己想象的那麽聰明的時候去坐5到10次監獄。 關於駭客,我只想說這麽多。

---黑客的態度

黑客們解決問題,建設事物,信仰自由和雙向的幫助,人人為我, 我為人人。

要想被認為是壹名黑客,妳的行為必須顯示出妳已經具備了這種態度。要想做的好象妳具備這種態度,妳就不得不真的具備這種態度。但是如果妳想靠培養黑客態度在黑客文化中得到承認,那就大錯特錯了。因為成為具備這些特質的這種人對妳自己非常重要,有助於妳學習,並給妳提供源源不斷的活力。同所有有創造性的藝術壹樣,成為大師的最有效方法就是模仿大師的精神---不是僅從理智上,更要從感情上進行模仿。

So,如果妳想做壹名黑客,請重復以下事情直到妳相信它們:

1 這世界充滿待解決的迷人問題

做壹名黑客有很多樂趣,但卻是些要費很多氣力方能得到的樂趣。 這些努力需要動力。成功的運動員從健壯體魄,挑戰自我極限中汲取動力。同樣,做黑客,妳必須

要有從解決問題,磨練技術,鍛煉智力中得到基本的熱望。如果妳還不是這類人又想做黑客,妳就要設法成為這樣的人。否則妳會發現,妳的黑客熱情會被其他誘惑無情地吞噬掉---如金錢、性和社會上的虛名。

(同樣妳必須對妳自己的學習能力建立信心---相信盡管妳對某問題所知不多,但如果妳壹點壹點地學習、試探,妳最終會掌握並解決它。)

2. 壹個問題不應該被解決兩次

聰明的腦瓜是寶貴的,有限的資源。當這個世界還充滿其他有待解決的有趣問題之時,他們不應該被浪費在重新發明輪子這些事情上。 作為壹名黑客,妳必須相信其他黑客的思考時間是寶貴的---因此***享信息,解決問題並發布結果給其他黑客幾乎是壹種道義,這樣其他人就可以去解決新問題而不是重復地對付舊問題。

(妳不必認為妳壹定要把妳的發明創造公布出去,但這樣做的黑客是贏得大家尊敬最多的人。賣些錢來給自己養家糊口,買房買車買計算機甚至發大財和黑客價值也是相容的,只要妳別忘記妳還是個黑客。)

3. 無聊和乏味的工作是罪惡

黑客們應該從來不會被愚蠢的重復性勞動所困擾,因為當這種事情發生時就意味著他們沒有在做只有他們才能做的事情---解決新問題。這樣的浪費傷害每壹個人。因此,無聊和乏味的工作不僅僅是令人不舒服而已,它們是極大的犯罪。 要想做的象個黑客,妳必須完全相信這點並盡可能多地將乏味的工作自動化,不僅為妳自己,也為了其他人(尤其是其他黑客們)。

(對此有壹個明顯的例外。黑客們有時也做壹些重復性的枯燥工作以進行“腦力休息”,或是為練熟了某個技巧,或是獲得壹些除此無法獲得的經驗。但這是他自己的選擇---有腦子的人不應該被迫做無聊的活兒。)

4 自由就是好

黑客們是天生的反權威主義者。任何能向妳發命令的人會迫使妳停止解決令妳著迷的問題,同時,按照權威的壹般思路,他通常會給出壹些極其愚昧的理由。因此,不論何時何地,任何權威,只要他壓迫妳或其他黑客,就要和他鬥到底。

(這並非說任何權力都不必要。兒童需要監護,罪犯也要被看管起來。 如果服從命令得到某種東西比起用其他方式得到它更節約時間,黑客會同意接受某種形式的權威。但這是壹個有限的、特意的交易;權力想要的那種個人服從不是妳的給予,而是無條件的服從。)

權力喜愛審查和保密。他們不信任自願的合作和信息***享---他們只喜歡由他們控制的合作。因此,要想做的象個黑客,妳得對審查、保密,以及使用武力或欺騙去壓迫人們的做法有壹種本能的反感和敵意。

5. 態度不能替代能力

要做壹名黑客,妳必須培養起這些態度。但只具備這些態度並不能使妳成為壹名黑客,就象這並不能使妳成為壹個運動健將和搖滾明星壹樣。成為壹名黑客需要花費智力,實踐,奉獻和辛苦。

因此,妳必須學會不相信態度,並尊重各種各樣的能力。黑客們不會為那些故意裝模做樣的人浪費時間,但他們卻非常尊重能力---尤其是做黑客的能力,不過任何能力總歸是好的。具備很少人才能掌握的技術方面的能力尤其為好,而具備那些涉及腦力、技巧和聚精會神的能力為最好。

如果妳尊敬能力,妳會享受提高自己能力的樂趣---辛苦的工作和奉獻會變成壹種高度娛樂而非賤役。 要想成為壹名黑客,這壹點非常重要。

---基本黑客技術

黑客態度是重要的,但技術更加重要。態度無法替代技術,在妳被別的黑客稱為黑客之前,有壹套基本的技術妳必須掌握。 這套基本技術隨著新技術的出現和老技術的過時也隨時間在緩慢改變。例如,過去包括使用機器碼編程,而知道最近才包括了HTML語言。但現在明顯包括以下技術:

1 學習如何編程

這當然是最基本的黑客技術。如果妳還不會任何計算機語言,我建議妳從Python開始。它設計清晰,文檔齊全,對初學者很合適。盡管是壹門很好的初級語言,它不僅僅只是個玩具。它非常強大,靈活,也適合做大型項目。

但是記住,如果妳只會壹門語言,妳將不會達到黑客所要求的技術水平,甚至也不能達到壹個普通程序員的水平---妳需要學會如何以壹個通用的方法思考編程問題,獨立於任何語言。要做壹名真正的黑客,妳需要學會如何在幾天內通過壹些手冊,結合妳現在所知,迅速掌握壹門新語言。這意味著妳應該學會幾種不同的語言。

如果要做壹些重要的編程,妳將不得不學習C語言,Unix的核心語言。其他對黑客而言比較重要的語言包括Perl和LISP。 Perl很實用,值得壹學;它被廣泛用於活動網頁和系統管理,因此即便妳從不用Perl寫程序,至少也應該能讀懂它。 LISP 值得學習是因為當妳最終掌握了它妳會得到豐富的經驗;這些經驗使妳在以後的日子裏成為壹個更好的程序員,即使妳實際上可能很少使用LISP本身。

當然,實際上妳最好四種都會。 (Python, C, Perl, and LISP). 除了是最重要的四種基本語言,它們還代表了四種非常不同的編程方法,每種都會讓妳受益非淺。

這裏我無法完整地教會妳如何編程---這是個復雜的活兒。但我可以告訴妳,書本和課程也不能作到。幾乎所有最好的黑客都是自學成材的。真正能起作用的就是去親自讀代碼和寫代碼。

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

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

2 得到壹個開放源碼的Unix並學會使用、運行它

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

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

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

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

關於學習Unix的更多信息,請看 The Loginataka.

要得到Linux,請看: 哪裏能得到 Linux.

3 學會如何使用WWW和寫HTML

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

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

但僅僅建壹個主頁也不能使妳成為壹名黑客。 Web裏充滿了各種網頁。多數是無意義的,零信息量垃圾。

要想有價值,妳的網頁必須有內容---必須有趣或對其它黑客有用。這樣,我們來到下壹個話題....

---黑客文化中的地位

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

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

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

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

1. 寫開放源碼的軟件

第壹個(也是最基本和傳統的)是寫些被其他黑客認為有趣或有用的程序,並把程序的原代碼公布給大家***享。

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

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

2. 幫助測試並修改開放源碼的軟件

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

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

3. 公布有用的信息

另壹個好事是收集整理網頁上有用有趣的信息或文檔如FAQ。許多主要FAQ的維護者和其他開放源碼的作者壹樣受到大家的尊敬。

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

黑客文化是靠自願者運轉的。要使Internet能正常工作,就要有大量枯燥的工作不得不去完成----管理mail list,newsgroup,維護大量文檔,開發RFC和其它技術標準等等。做這類事情的人會得到很多人的尊敬,因為每人都知道這些事情是耗時耗力的苦役,不象編碼那樣好玩。做這些事情需要毅力。

5. 為黑客文化本身服務

最後,妳可以為這個文化本身服務(例如象我這樣,寫壹個“如何成為黑客”的初級教程 :-) )(hehe,象我這樣把它翻成中文 :-) ) 這並非壹定要在妳已經在這裏呆了很久,精通所有以上4點,獲得壹定聲譽後後才能去做。

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

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

---黑客和怪人(Nerd)的聯系

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

因此,很多黑客都願意接受“怪人”這個標簽,更有甚者願意使用“傻子(geek)”壹詞並自以為豪---這是宣布他們與主流社會不合作的聲明。

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

如果妳因為生活上不如意而為做黑客而吸引,那也沒什麽---至少妳不會分神了。或許以後妳會找到自己的另壹半。

---風格的意義

重申壹下,鮃幻?誑停?惚匭虢?牒誑途?裰?小5蹦悴輝詡撲慊?呱鮮保?閎勻揮瀉芏嗍慮榭勺觥K?遣⒉荒芴媧?嬲?謀喑蹋?揮惺裁茨芴媧?喑蹋芏嗪誑投寄敲醋觶?⒏械剿?怯牒誑途?翊嬖諞恢直局實墓亓?

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

研究禪宗,或練功習武。

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

提高對雙關語的鑒賞。

學會流暢地用母語寫作。(令人驚訝的時,我所知道的所有最棒的黑客,都是很不錯的作家)

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

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

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

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

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

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

---其它資源

Peter Seebach為那些不知如何同黑客打交道的經理們維護了壹個非常精彩的黑客FAQ。

The Loginataka 有許多關於如何正確培養壹個Unix黑客的態度的材料。

我也曾寫過壹篇“黑客文化簡史”。

我還寫過另壹篇文章,“大教堂與集市”,解釋了許多Linux和開放源碼文化的運做原理。我還在它的續集“開拓智域”壹文中有更直接的論述。

---FAQ(常問問題解答)

問:妳會教我如何做黑客嗎?

自從第壹次發布此頁,我每周都會得到壹些請求,要我“教會他如何做黑客”;遺憾的是,我沒有足夠的時間和精力來做這個;我自己的編程項目已經占用了我110%的時間。

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

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

問:妳會幫我“黑”掉壹個站點嗎?或者教我怎麽黑它?

No. 任何在讀完FAQ後還問此問題人,都是愚不可及的家夥,即使有時間我也不會理睬。 任何發給我的此類mail都會被忽略或被痛斥。

問:哪裏能找到真正的可以與之交流的黑客?

最佳辦法是就近參加壹個Unix或Linux的用戶組,參加他們的會議。

問:我該先學哪種語言?

HTML, 如果妳還不會的話.

但它不是壹個真正的編程語言。當妳準備編程時,我建議妳從 Python開始. 會有很多人向妳推薦Perl,它比Python還受歡迎,但卻難學壹些。

C 是非常重要的,但它卻是最難學的。不要壹開始就嘗試學C。

問:開放源碼的自由軟件不會使程序員餓肚子嗎?

這似乎不大可能---到目前,開放源碼軟件產業創造了而不是消滅了大量工作機會。

如果寫壹個程序比不寫壹個程序只是個純粹經濟上的收益的話,無論它是否免費,只要它被完成,程序員都會從中得到回報。而且,無論軟件是由多麽的free的方法開發的,對更新的軟件應用的需求總是會有的。

問:我從何學起?哪裏有免費的Unix?

本頁的其他地方指向最常用的免費Unix。要做壹名黑客,妳需要自立自強,以及自我教育的能力.

  • 上一篇:selenium v4.12正式版本發布!速看需要了解的內容!
  • 下一篇:Usermanager源代碼
  • copyright 2024編程學習大全網