英文原文:My Top 100 Programming, Computer and Science Books: Part One
我最近接受了 Fog Creek 的采访,问到的其中一个问题是关于我喜欢的编程、代码和开发方面的书籍。我对于这个问题感到激动不已,因为我是一个我读过的没有代码的、最好的开发书籍。做为一名重度书呆子,我痴迷于科学、计算机和编程方面的书。每几个月,我就花一两天研究最新的资料并购置最有意思的主题。我可能在我喜欢的书籍上面永远继续下去。我有太多要分享了。
我对这个问题是如此地激动不已,以致于我打算在 catonmat.net 网站上开启一个新的文章系列,是关于我的前 100 本编程、软件开发、科学、物理、数学和计算机方面的书籍。我打算一次分享 5 本,把这项艰巨的任务分解为较小的子任务,是将其搞定的最容易的方法。
下面是我的书架,只是为了证明我的书呆子性格:
在本系列的第一篇文章里,我将再次分享我在接受 Fog Creek 采访中推荐过的五本书。如果你对这个话题感兴趣,我希望本系列的文章能够持续一段时间,你可以订阅我的博客 RSS 源、以及关注我的 twitter,以跟进最新动态。
闲言少叙,书归正传!
#1 《The New Turing Omnibus》
对计算机感兴趣者必读书籍。这本优秀的书包含了 66 篇短文,都是关于最重要的、最有趣的计算话题,比如压缩、图灵机、递归、形式文法【注1】、不可计算函数【注2】、神经网络和算法。本书写作风格比较随意,几乎没有包含数学。它一直是我喜爱的书。
作者:Alexander K. Dewdney
#2 《The Little Book of Semaphores》 (pdf 免费)
这本书讲授了如何思考多线程的执行,以及如何解决同步问题。我强烈推荐它,如果你是自学、从没学过操作系统课程,这就尤为重要了。这本书会带着读者一步步地了解一系列经典的、以及不那么经典的同步问题。搞定这个问题是非常有趣的,自从我发现它以后,已经推荐给了每一个人。
作者:Allen B. Downey
#3 《编程珠玑》和《编程珠玑(续)》
经典编程书籍。Jon Bentley 深谙如何清晰、富有激情地编写算法方面的书。这两本书是经典,它们教你如何分析问题、分解问题、以及有效地实现解决方案。如果你读过、理解这两本书,你就能通过 Google 的面试。
作者:Jon Bentley
#4 《The Little Schemer》
《The Little Schemer》以最有趣的方式教你一点儿 LISP 方面的东东。这本书是你和作者就数百个微小的 Scheme 程序展开的对话,它教你递归思考的方式。这本书将促使你思考,并稍稍拓展你的思路。它是曾经编写过的、最有趣的编程书籍之一。
作者:Daniel P. Friedman 和 Matthias Felleisen
#5 《风格的要素》和《The Elements of Programming Style》
确切地讲,《风格的要素》不是一本关于开发或代码的书,而是关于写作的书。为了成为优秀的开发人员,你需要清晰、简洁和直接的交流。深厚的写作技巧对于成功是必需的。这本书只有 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 秒内就可以搞定。不要做那样的程序员。
我希望你能喜欢我推荐的前五本书。请在评论里让我了解你喜欢的书,咱们下次见!