前100本關于編程、計算機和科學的書籍:第一部分

d3fw 9年前發布 | 50K 次閱讀 編程

英文原文:My Top 100 Programming, Computer and Science Books: Part One

我最近接受了 Fog Creek 的采訪,問到的其中一個問題是關于我喜歡的編程、代碼和開發方面的書籍。我對于這個問題感到激動不已,因為我是一個我讀過的沒有代碼的、最好的開發書籍。做為一名重度書呆子,我癡迷于科學、計算機和編程方面的書。每幾個月,我就花一兩天研究最新的資料并購置最有意思的主題。我可能在我喜歡的書籍上面永遠繼續下去。我有太多要分享了。

我對這個問題是如此地激動不已,以致于我打算在 catonmat.net 網站上開啟一個新的文章系列,是關于我的前 100 本編程、軟件開發、科學、物理、數學和計算機方面的書籍。我打算一次分享 5 本,把這項艱巨的任務分解為較小的子任務,是將其搞定的最容易的方法。

下面是我的書架,只是為了證明我的書呆子性格:

前100本關于編程、計算機和科學的書籍:第一部分

在本系列的第一篇文章里,我將再次分享我在接受 Fog Creek 采訪中推薦過的五本書。如果你對這個話題感興趣,我希望本系列的文章能夠持續一段時間,你可以訂閱我的博客 RSS 源、以及關注我的 推ter,以跟進最新動態。

閑言少敘,書歸正傳!

#1 《The New Turing Omnibus》

前100本關于編程、計算機和科學的書籍:第一部分

對計算機感興趣者必讀書籍。這本優秀的書包含了 66 篇短文,都是關于最重要的、最有趣的計算話題,比如壓縮、圖靈機、遞歸、形式文法【注1】、不可計算函數【注2】、神經網絡和算法。本書寫作風格比較隨意,幾乎沒有包含數學。它一直是我喜愛的書。

作者:Alexander K. Dewdney

#2 《The Little Book of Semaphores》 (pdf 免費)

前100本關于編程、計算機和科學的書籍:第一部分

這本書講授了如何思考多線程的執行,以及如何解決同步問題。我強烈推薦它,如果你是自學、從沒學過操作系統課程,這就尤為重要了。這本書會帶著 讀者一步步地了解一系列經典的、以及不那么經典的同步問題。搞定這個問題是非常有趣的,自從我發現它以后,已經推薦給了每一個人。

作者:Allen B. Downey

#3 《編程珠璣》和《編程珠璣(續)》

前100本關于編程、計算機和科學的書籍:第一部分前100本關于編程、計算機和科學的書籍:第一部分

經典編程書籍。Jon Bentley 深諳如何清晰、富有激情地編寫算法方面的書。這兩本書是經典,它們教你如何分析問題、分解問題、以及有效地實現解決方案。如果你讀過、理解這兩本書,你就能通過 Google 的面試。

作者:Jon Bentley

#4 《The Little Schemer》

前100本關于編程、計算機和科學的書籍:第一部分

《The Little Schemer》以最有趣的方式教你一點兒 LISP 方面的東東。這本書是你和作者就數百個微小的 Scheme 程序展開的對話,它教你遞歸思考的方式。這本書將促使你思考,并稍稍拓展你的思路。它是曾經編寫過的、最有趣的編程書籍之一。

作者:Daniel P. Friedman 和 Matthias Felleisen

#5 《風格的要素》和《The Elements of Programming Style》

前100本關于編程、計算機和科學的書籍:第一部分前100本關于編程、計算機和科學的書籍:第一部分

確切地講,《風格的要素》不是一本關于開發或代碼的書,而是關于寫作的書。為了成為優秀的開發人員,你需要清晰、簡潔和直接的交流。深厚的寫作技巧對于成功是必需的。這本書只有 100 頁,一個晚上就可以看完。每過幾個月就重讀一次,效果最好。

作者:William Strunk Jr. 和 E. B. White

《The Elements of Programming Style》是 Brian Kernaghan 編寫的經典編程書。這本書的形式深受《風格的要素》影響。這本書有點久遠,但是它教的所有東東幾乎仍然應用在今天。它包含了編程的 70 條規則,比如:

  • 清晰地寫——不要過于聰明。
  • 簡單、直接地說出你要表達的意思。
  • 選擇一種數據表示法,讓程序保持簡單。
  • 讓數據構造程序。
  • 模塊化……
  • </ul>

    作者:Brian W. Kernighan 和 Phillip J. Plauger

    另外,我推薦自己寫的書《Perl One-Liners》, 由 No Starch Press 【注3】出版。我的書教授如何在命令行更快些以及快速地搞定事情。命令行上的嫻熟,在你的整個職業生涯里,將節約成千上萬個小時的時間。我見過有程序員花 兩個小時為某個任務寫程序,而這個任務用一個單行命令在 20 秒內就可以搞定。不要做那樣的程序員。

    前100本關于編程、計算機和科學的書籍:第一部分

    我希望你能喜歡我推薦的前五本書。請在評論里讓我了解你喜歡的書,咱們下次見!


    • 注1:在計算機科學中,形式語言是:某個字母表上,一些有限長字串的集合,而形式文法是描述這個集合的一種方法。形式文法之所以這樣命名,是因為 它與人類自然語言中的文法相似的緣故。形式文法描述形式語言的基本想法是,從一個特殊的初始符號出發,不斷的應用一些產生式規則,從而生成出一個字串的集 合。http://zh.wikipedia.org/wiki/%E5%BD%A2%E5%BC%8F%E6%96%87%E6%B3%95
    • 注2:在可計算性理論中,可計算函數(computable function)或圖靈可計算函數是研究的基本對象。它們使我們直覺上的算法概念更加精確。使用可計算函數來討論可計算性而不提及任何具體的計算模型, 如圖靈機或寄存器機。但是它們的定義必須提及某種特殊的計算模型。http://zh.wikipedia.org/wiki/%E5%8F%AF%E8%AE%A1%E7%AE%97%E5%87%BD%E6%95%B0
    • 注3:No Starch Press publishes books on computer security, programming, open source, LEGO, and science topics. Popular titles include Hacking: The Art of Exploitation, Silence on the Wire, Hacking the Xbox, Python For Kids, The Cult of LEGO, and How Wikipedia Works. http://en.wikipedia.org/wiki/No_Starch_Press
    • </ul>

 本文由用戶 d3fw 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!