前100本关于编程、计算机和科学的书籍:第一部分

d3fw 10年前

英文原文: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 条规则,比如:

  • 清晰地写——不要过于聪明。
  • 简单、直接地说出你要表达的意思。
  • 选择一种数据表示法,让程序保持简单。
  • 让数据构造程序。
  • 模块化……

作者: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