學黑客要學什麼程式語言
基本黑客技術
黑客態度是重要的,但技術更加重要。態度無法替代技術,在你被別的黑客稱為黑客之前,有一套基本的技術你必須掌握。 這套基本技術隨著新技術的出現和老技術的過時也隨時間在緩慢改變。例如,過去包括使用機器碼程式設計,而知道最近才包括了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裡充滿了各種網頁。
多數是無意義的,零資訊量垃圾。 要想有價值,你的網頁必須有內容---必須有趣或對其它黑客有用。
這樣,我們來到下一個話題.... 黑客文化中的地位大教堂與集市”,解釋了許多Linux和開放原始碼文化的運做原理。我還在它的續集“大教堂與集市”,解釋了許多Linux和開放原始碼文化的運做原理。我還在它的續集“開拓智域”一文中有更直接的論述。
FAQ(常問問題解答)
問:你會教我如何做黑客嗎?
自從第一次釋出此頁,我每週都會得到一些請求,要我“教會他如何做黑客”;遺憾的是,我沒有足夠的時間和精力來做這個;我自己的程式設計專案已經佔用了我110%的時間。
甚至即便我想教你也不可能,黑客基本上是一項需要你自行修煉的的態度和技術。你會發現即使真正的黑客想幫助你,如果你乞求他們填鴨一樣教你的話,你不會贏得他們的尊敬。 首先去學習。顯示你在嘗試,你能靠自己去學習。然後再去向黑客們請教問題。
問:你會幫我“黑”掉一個站點嗎?或者教我怎麼黑它?
No. 任何在讀完FAQ後還問此問題人,都是愚不可及的傢伙,即使有時間我也不會理睬。 任何發給我的此類mail都會被忽略或被痛斥。
問:哪裡能找到真正的可以與之交流的黑客?
最佳辦法是就近參加一個Unix或Linux的使用者組,參加他們的會議。
問:我該先學哪種語言?
HTML, 如果你還不會的話. 但它不是一個真正的程式語言。當你準備程式設計時,我建議你從 Python開始. 會有很多人向你推薦Perl,它比Python還受歡迎,但卻難學一些。
C 是非常重要的,但它卻是最難學的。不要一開始就嘗試學C。
問:開放原始碼的自由軟體不會使程式設計師餓肚子嗎?
這似乎不大可能---到目前,開放原始碼軟體產業創造了而不是消滅了大量工作機會。 如果寫一個程式比不寫一個程式只是個純粹經濟上的收益的話,無論它是否免費,只要它被完成,程式設計師都會從中得到回報。而且,無論軟體是由多麼的free的方法開發的,對更新的軟體應用的需求總是會有的。
問:我從何學起?哪裡有免費的Unix?
本頁的其他地方指向最常用的免費Unix。要做一名黑客,你需要自立自強,以及自我教育的能力。 現在開始吧