轉這篇文章并不是想成為黑客,所以取其一節《學習如何編程》
    這當然是最基本的黑客技能。如果你還不會任何編程語言,我建議你從Python開始。它設計清晰,文檔齊全,合適初學者入門。它是一門很好的入門語言,并且不僅僅只是個玩具;它非常強大、靈活,也適合做大型項目。我有一篇 Python評價詳細說明這點。好的 教程 可以在Python網站得到。(譯者:比較好的中文Python站點可能是http://pythonrecord.51.net。)

Java也是好的入門語言。它比Python難得多,但是生成的代碼速度也快得多。它同時也是一種優秀的計算機語言,不止是用來入門。

但是注意,如果你只會一兩門語言,你將不會達到黑客所要求的技術水平,甚至也不能達到一個程序員的水平——你需要學會如何以抽象的方式思考編程問題,獨立于任何語言。要做一名真正的黑客,你需要學會在幾天內通過一些手冊,結合你現在所知,迅速掌握一門新語言。這意味著你應該學會幾種截然不同的語言。

如果要做一些重要的編程工作,你將不得不學習C語言,Unix的核心語言。 C++與C非常其他類似;如果你了解其中一種,學習另一種應該不難。但這兩種都不適合編程入門者學習。而且事實上,你越避免用C編程,你的工作效率會越高。

C非常有效率,節約你的機器資源。不幸的是,C的高效是通過你手動做很多底層的管理(如內存)來達到的。底層代碼都是復雜極易出現bug的,會使你花極多的時間調試。如今的機器速度如此之快,這通常是得不償失——比較明智的做法是使用一種運行較慢、較低效率,但大幅節省你的時間的語言。因此,選擇Python。

其他對黑客而言比較重要的語言包括 PerlLISP。 Perl實用,值得一學;它被廣泛用于動態網頁和系統管理,因此即便你從不用Perl寫程序,至少也應該學會看。許多人使用Perl的理由和我建議你使用Python的理由一樣,都是為了避免用C完成那些不需要C高效率的工作。你會需要理解那些工作的代碼的。

LISP值得學習的理由不同——最終掌握了它時你會得到豐富的啟迪和經驗。這些經驗會使你在以后的日子里成為一個更好的程序員,即使你實際上很少使用LISP本身。

當然,實際上你最好五種都會(Python,Java,C/C++,Perl和LISP)。除了是最重要的黑客語言外,它們還代表了截然不同的編程思路和方法,每種都會讓你受益非淺。

這里我無法給你完完全全的指導教會你如何編程——這是個復雜的技能。但我可以告訴你,書本和上課也不能作到(最好的黑客中,有許多,也許 幾乎都是自學成材的)。你可以從書本上學到語言的特點——只是一些皮毛,但要使書面知識成為自身技能只能通過實踐和虛心向他人學習。因此要作到 (一)讀代碼(二)寫代碼

學習如何編程就象學習用優美的自然語言寫作一樣。最好的做法是讀一些大師的名著,試著自己寫點東西,再讀些,再寫點,再讀些,再寫點…… 如此往復,直到你的文章達到你體會到的范文的簡潔和力量。

過去找到適合閱讀的好的代碼是困難的,因為幾乎沒有大型程序的源代碼能讓新手練手。這種狀況已經戲劇性地發生變化;開放源代碼軟件,編程工具和操作系統(全都由黑客寫成)現在已經隨處可見。讓我們在下一個話題中繼續討論……