1. 程式人生 > >怎樣成為一個黑客(翻譯自wikihow上的一篇文章)

怎樣成為一個黑客(翻譯自wikihow上的一篇文章)

 ‘黑客’這個詞的起源要追溯到幾十年之前時分複用和ARPAnet實驗出現時由一群程式設計和網路天才組成的社群,這些天才與瘋子創造了‘黑客’這一詞,泛指那些真正牛逼的計算機高手而不是我們常有所誤解的計算機破壞王,專搞計算機破壞的人在英文中叫‘cracker’,而‘黑客’在英文中叫‘hacker’,需要注意區分兩者是完全不同的概念。

    有那麼一群人他們很自豪的聲稱自己為‘黑客’,當然事實上他們只是一群入侵別人的計算機系統搞點小破壞或者監聽別人電話的偷聽狂,真正的‘黑客’從來都不屑於與這些人為伍,在真正的‘黑客’眼裡因為能夠對網路安全造成一定的破壞而聲稱自己是‘黑客’的行為和會駕駛汽車就說自己是汽車工程師一樣可笑。

    有那麼一群人他們將也將‘黑客’精神貫徹到其他許多事情上面,如電子和音樂,但本文由於篇幅限制只將重點放在成為一個計算機‘黑客’所需的技能以及這種‘黑客’文化所衍生出來的分享文化上面,對於其他方面黑客亦感興趣的自行google:)

    如果你想成為一個黑客,你可以參考一下步驟作為開始:

    1.像黑客一樣思考

        1)【黑客的思維方式】黑客喜歡解決問題和創造新的東西,他們堅信自由和志願相互幫助的力量是無窮的,如果你想以一名黑客的身份被接受,你必須表現出你擁有這些特質,而且你必須篤信你的行為和思維方式,所以,如果你想成為一名真正的黑客,首先重複下面的事情,直到你相信這些信條為止:

        

            #這個世界充滿需要待解決的問題,成功的運動員從運動而帶來身體上的愉悅和對突破自身身體上的極限的慾望中得到激勵,類似的,你必須從解決問題的過程中獲得快感,因為解決問題而感到喜悅興奮(當然這裡指的興奮不是flirt之後的興奮),所以你要不斷提高自身解決問題的技能,儘可能的利用你自己的智商。

    #沒有任何問題值得被解決一次以上,充分利用其他‘黑客’的思考對你很重要,以至於學會分享資訊甚至是你在道德上的一項基本責任,如果你解決了一個問題那麼就應當馬上將這個訊息告知其他人,這樣別的‘黑客’就可以將精力用在解決新的問題上面而不是永遠在老的問題上重複造車輪。

    #無聊和單調乏味簡直就是魔鬼,當‘黑客’必須面對無聊和單調乏味的重複性的工作時,他們就不是在做自己擅長做的事情--解決新的問題。要想表現得像個合格的‘黑客’,你必須盡力避免做這樣的工作。

    #對自由的無限渴望,無論你是否遇到你必須隨時做好與獨裁做鬥爭的準備,以免這使你和其他的黑客遇到不必要的麻煩,當然並不是所有需要授權的東西丟都有獨裁的色彩,然而,獨裁確實在涉及監督和保密領域很活躍,因為他們不相信自由合作和資訊共享。

    #自由分享的態度並不能替代掉競爭,黑客從來不喜歡裝腔作勢,但是他們隨時能接受競爭,特別是在黑客技能上面的競爭和挑釁,當然在任何事情上有競爭精神都是很好的事情,特別是在需要很少有人擁有必要技能的事情上面競爭尤其重要。

    2)【積攢黑客應有的尊敬】像其他不帶金錢色彩的文化一樣,黑客文化建立在名譽之上。你試圖解決有趣的新的問題,但是這個問題到底是不是有趣或者你提出的解決辦法是否真的很好,這隻有你的技術同行或者上級有權利去評判,這也是問什麼只有當別人稱呼你為‘黑客’的時候你才能稱得上是一名‘黑客’,黑客文化被語言學家稱為‘禮物文化’,你通過過分享你的時間、你的創造性和你利用自身技能做創造出的某個有趣的東西獲得名譽而不是從別的‘黑客’那兒要求什麼。


    #寫開源軟體:寫其他‘黑客’覺得有趣或者有用的東西,並將左右的程式原始碼釋出到開源社群供整個開源社群使用,黑客文化特別尊重那寫寫過大型穩定並且被廣泛需要且開放了其原始碼的人供所有人開飯使用的人。

    #參與開源軟體的除錯和測試,任何開源軟體的作者都非常珍視對其軟體的測試者並且尊敬他們(知道怎麼清楚無誤的描述現象,清楚的定位問題所在,能夠容忍在快速釋出軟體中存在的bug,且願意進行幾次簡單的診斷性迭代工作),找到一個正處於開發階段的開源程式或軟體系統,並以一個beta-tester的身份參與進去,這是一個雙贏的過程,你能從中學到很多有用的東西,你也能夠在這個過程中認識一些業界的牛人並很有可能在日後給你幫助。

    #在網上釋出有用的資訊,收集過濾有用和有趣的東西並將其釋出到WEB上面或者以文件的形式釋出,類似FAQ的方式就很好,並且不斷加以維護和更新,保證其在任何時候都是可用的,做一個資訊的整理收集過濾和負責的維護者和開源軟體的作者一樣受尊重。

    #輔助維護以使整個系統正常執行,黑客社群為志願者所建立,有許多有必要的但乏味的工作需要做以使整個系統正常運轉,管理郵件列表、管理新聞組、維護包含大量軟體壓縮包的站點、制定系統標準和手冊等等。做這樣工作的人能夠獲得非常多的尊重應為社群裡面的人誰都知道這樣的工作是必要的且不如直接編寫程式碼有趣,這需要很強的奉獻精神的人才能做得下去。

    #為黑客文化本身服務,這需要你在開源社群已經在前面的四個領域中的一個積攢了一定的名譽時才能起做,黑客社群一般沒有領導但確實有預設的英雄或者有發言權的人,當你在這個社群活躍了較長一段時間之後你也能成為其中之一。但是要注意的是,黑客們都很反感某人在他們的部落酋長面前表現得太自以為是的年輕人,所以作為一個新人在黑客社群中很明顯的暴露自己想出點風頭的想法是很危險的,你需要的是不斷的一點一點的積攢你的威望並在獲得別人的認可時表現出謙虛的態度,因為這本就是一個牛人的聚集地,不要不可一世。

    2.學習程式設計

        1)【學寫如何程式設計】最好的學習程式設計的方式就是找一本程式設計大師寫的東西(這裡之所以用東西而不是書是除了書以外還有很多東西也是非常有學習價值的),看一些東西,然後動手寫一個實際的程式(不要老寫hello, world級別的東西),然後再看更多,然後寫更多....不斷的重複這個過程,知道你自己不用參考程式設計大家的東西自己寫出來的東西有是曾相識的感覺,這也就是說你必須學習幾種完全不同的語言,除了在黑客領域很流行的語言之外(像現在很火的python語言),下面提供了幾種學習程式設計的參考建議:


    #以Python作為學習程式設計的第一們語言是很合適的,因為其簡潔的設計、很好的參考文件和簡單的語法很適合剛開始接觸程式設計的beginer,雖然作為一們適合入門的程式語言存在,但python卻並不是玩具語言,與此相反,它能利用在寫大型的靈活的專案上面,java也是一們很好的程式語言,但顯然在作為挑選一門入門語言上來說不如python.

    #如果你對程式效能有比較多的需求的話,那麼你必須要學習c語言(Unix系統的程式語言),C處理非常高效,不好的地方就是編寫C程式會花掉你較多的時間去除錯程式。

    #從一些實際的方面考慮,perl也很值得學習,在動態WEB頁和系統管理上用得非常廣泛,所以即使你從來沒有親自編寫過perl程式你也一定要能看懂它,許多人當對程式的效能呢過沒有很多考慮時用perl語言來避免C的複雜性。

    #一些其他的原因推薦你學習一下LISP語言,雖然可能在你的實際程式設計生涯中直接使用LISP語言的情況很少,但是因為語言設計上的一些都特性,在你學習過LISP語言之後,將會使你在其他程式語言的使用上更加遊刃有餘,一個很好的方式是到網上找LISP編寫的程式加以修改並執行。

    3.熟練使用Unix系統

        1)【獲取一個Unix釋出版本並學習使用它(當前來說如Ubuntu就很好)】,Unix是一個面向Internet的作業系統(但是不要和當前的網路作業系統概念相混淆),如果你不瞭解Unix,你絕對步入不了黑客的大門,由於這些原因,黑客群體現在都以Unix為中心,所以,執行一個Unix系統,然後學習它,察看它的原始碼,修改原始碼。

    #除了Unix以外,有許多其他的作業系統存在,但他們都是以二進位制的形式釋出,你不能看到原始碼,不能修改原始碼,在Windows等一些非開源的系統上學習黑客技能就好比穿著緊身衣學寫跳舞一樣愚蠢,在Mac OS X上也勉強可以,不過其只有部分是開源的,你很可能在過程中撞很多的南牆,而且你必須在程式設計的過程中儘量小心不要用到或者儘量少用到Apple特有的一些屬性。

    #線上下載Linux然後安裝或者讓你周圍有Linux經驗的人幫助你安裝一個Linux系統。

    #雖然其他的Linux發行版有其特有的強悍之處,但Ubuntu絕對是最適合Linux新手的Unix系統。

    #如果你想試用一下Linux而不想安裝的話你可以試下live CD的啟動方式,具體方法自己google,簡單的來說就是一個執行在CD中的系統,不會對你的硬碟做任何的修改。

    4.學習HTML

    1.【學習怎樣使用WWW和寫HTML(全球資訊網最開始被蒂姆·伯納斯-李發明出來時只有文字格式的頁面而不像現在在頁面上有各種多媒體的元素)】許多黑客的工作是不可見的或者沒有可視的東西,但Web是一個例外,這幾乎改變了整個網際網路的命運,就這一個原因,你作為一命黑客就應該學寫Web(這裡不是指安裝一個Web Browser,這誰都可以做或者現在誰都在做),我們這裡是指學習HTML,也就是Web使用的超文字標記語言,如果你還不會任何一門程式語言,那麼學習一下HTML也一定是一件很有趣的事情。


    相關視訊

    #由於某種原因,在黨國大陸沒法看,你們懂的:(

    小貼示

    #一次學習一個東西,不要嘗試一次學習幾個不同的東西,很多黑客在開始的時候都犯了這個錯誤,希望你不要再犯。

    #你沒有責任將幾所有創造性的東西原始碼都釋出,即使黑客的榮譽來自於其他的黑客,賣掉部分東西以支撐起日常的開始甚至致富是符合黑客信條的,只要你不要忘了忠誠於你的黑客社群和黑客信條。

    #不要將你自己的技術限制在一個很狹窄的範圍之內,大部分的黑客都在很多的領域非常精通,黑客做事情從來都不會也不應該半途而廢,如果開始了某件事情那麼一定會將它做好做到出色。

    #與傳統的想法相反,作為一個黑客,你不一定需要表現得像和呆子,雖然很多黑客在事實上就是呆子或者被社會所‘遺棄’的人,這樣有助於將你的經歷集中在真正重要的事情上面。這裡想表達的是,如果你能很好的處理好自己的必要保持‘nerd’的一面和享受正常的生活,那很好,現在的主流文化對nerd已經更友好了。

    #工作的時候100%投入,玩的時候可以不要命(翻譯得有點誇張:)),對於真正的黑客,玩、工作、科學和藝術之間的並沒有明顯的界限,或者以創造性的方式將他們結合在了一起。

    #如果你的英語不是很好,那麼學好它吧,沒有任何理由,你就是必須學好它!英語作為黑客領域的工作語言,你肯能需要了解黑客社群的一些最新的動態,翻譯的技術書籍很多情況是不令人滿意的,即使你的第一語言是英語也不能保證你的英語在黑客領域足夠用,如果你寫的東西中包括語法錯誤和拼寫上的錯誤,那麼你就會被黑客群體所忽略,最終你只能獨自一個人躲在角落了抽泣,後悔自己為什麼沒有學好英語!

    #看一些業界前人寫的東西,可能有些東西會有點過時,但往往將黑客態度和精神傳遞得非常清楚。

    #欲成為一命黑客,你必須首先走進黑客的世界,這裡有幾點建議可以做的事情步驟可能會對你有所幫助,他們不能代替黑客思維學習本身但是很多黑客都會做這些事情,並且接受他們和黑客思維有緊密的聯絡。

   #1)學好(聽說都寫全包)你的第一語言,儘管在黑客群體中肯呢過很少有人會你的第一語言,但是黑客中的大多數都是很好的撰寫者,所以首先從你的第一語言入手是很好的選擇。

    #2)養成看有營養的科幻小說的習慣,這是遇見黑客的很好的方式。

    #3)學習一門武術,在黑客世界中的很多規則和武術中的規則有很多相似的地方,大多黑客式的武術都強調以智力取勝,開放的的意識和控制,而不是純力量、運動能力或身體的強壯,對於黑客來說太極是很好的武術。

    #4)養成冥想的習慣,深受黑客所信仰的是佛教的禪道(最重要的是,想從禪道中獲取有用的東西不一定要信仰佛教或者放棄你以前的宗教信仰)

    #5)養成欣賞音樂的習慣,培養你耳朵對音樂的敏感程度,學會欣賞各種奇特風格的音樂,玩一些樂器或怎麼唱。

    #6)讓自己喜歡上俏皮話和文字遊戲。

    #7)培養以創造性思維思考問題的習慣,黑客存在的價值就是創造性的解決某個特定的問題,這個問題在按照常規的思維是無法解決的。

    警告

    1.不要將你的黑客技能用在幹壞事上,如果你養成了用你的特殊技能幹壞事的習慣,你很可能被捕,受到法律的制裁。

    2.如果你做了如下的任何一件事,都會毀掉你在黑客社群所積攢下來的名聲,黑客記憶力都很好,一旦你毀掉了自己的名聲你可能需要花很多年來去重新建立,不要指望黑客們忘記你在三年之前做的某件糟糕的事情。

        1)不要用太過愚蠢或太過張揚的使用者名稱和暱稱。

        2)不要參與到任何的口水戰中。

        3)不要讓你自己成為‘朋克’一族,也不要和這樣的人浪費時間交往。

        4)永遠不要寫滿是語法和拼寫錯誤的文章或郵件,為了確保做到這一點,在你寫一篇文章準備post或者寫好郵件準備傳送的時候請仔細檢查一下。

        5)不要盲目聽從一個建議,除非你非常確認這個建議是好的。

    相關wikihow