我这一辈子,从不知道哪位智者是根本不读书的——没有,没有一个人。
-- <cite>投资大师芒格</cite>
(为什么markdown语法里的外链没有正常显示了?)
前言
自从开始自学编程以来,就一直希望有人指点该如何逐步的打牢基础,该读哪些书籍来加深对计算机科学的理解。最近,我在网上看到有人整理了一些知名程序员推荐的书籍,他们或是接受采访,或是在自己的博客上,向大家推荐了自己认为最有价值的编程书籍。觉得应该都是不错的选择,所以翻译过来与大家分享。
为什么要读书?
当今,我们时刻被笔记本电脑和iPhone包围,导致忽视了人类历史上最重要的技术之一:默默无闻的书籍。我不确定是不是我的圈子太小,但是我的程序员朋友中,平常读书的人确实很少。恕我直言,真是有点暴殄天物,因为书中提供了让你大幅提升技能的难得机会。
如果有人问你,“你是否愿意付5000美元,请世界上一名最伟大的程序员当你三个月的导师?”你会怎么回答?很可能是“那太好啦!”。但是如果给你同样的选择,只是这次变成支付50美元,但是你必须读书,你还会愿意吗?
阅读一本伟大的书籍,就像被一位伟大的导师呵护教导一样。许多拥有丰富经验的伟大程序员,选择将他们的智慧凝聚到书本这种尽管不太防水,但是可携带性强的载体中,就是为了给你提供阅读的乐趣。你为什么不好好享用这场汇聚集体知识的盛筵呢?
下面是这个领域中一些顶级程序员的建议。请注意,其中一些书籍被反复提及。已添加购买链接。
Joel Spolsky
Joel Spolsky毕业于耶鲁大学计算机系,目前是Fog Creek软件公司的CEO。他的网络日志"Joel谈软件"(Joel on Software)非常有名,读者人数可以排进全世界前100名。
他向大家推荐5本书,分别是:
Code Complete: A Practical Handbook of Software Construction, 2nd Edition(代码大全2)
The Pragmatic Programmer: From Journeyman to Master(程序员修炼之道:从小工到专家)
The Mythical Man-Month: Essays on Software Engineering(人月神话)
Steve Yegge
Steve Yegge是Amazon的前员工,目前在Google工作,是《程序员的呐喊》一书的作者。
他推荐下面这些书:
The Pragmatic Programmer: From Journeyman to Master(程序员修炼之道:从小工到专家)
Refactoring: Improving the Design of Existing Code(重构:改善既有代码的设计)
Design Patterns: Elements of Reusable Object-Oriented Software(设计模式:可复用面向对象软件的基础)
Concurrent Programming in Java: Design Principles and Patterns(好像没有中文版)
Mastering Regular Expressions(精通正则表达式(第3版))
The Algorithm Design Manual(算法设计手册(第2版))
The C Programming Language(C程序设计语言)
The Little Schemer(关于Lisp语言的书,没有中文版)
Scott Hanselman
知名黑客。每年都会在自己的博客上,整理推荐Windows平台的软件,博文很受人们推崇。他还运营着一个自己的播客。
他推荐了这些书:
Code Complete: A Practical Handbook of Software Construction, 2nd Edition(代码大全2)
The Pragmatic Programmer: From Journeyman to Master(程序员修炼之道:从小工到专家)
Programming Pearls(编程珠玑)
Refactoring: Improving the Design of Existing Code(重构:改善既有代码的设计)
The Design of the UNIX Operating System(UNIX操作系统设计)
Design Patterns: Elements of Reusable Object-Oriented Software(设计模式:可复用面向对象软件的基础)
Stack Overflow 问答社区上的推荐
Code Complete: A Practical Handbook of Software Construction, 2nd Edition(代码大全2)
The Pragmatic Programmer: From Journeyman to Master(程序员修炼之道:从小工到专家)
Structure and Interpretation of Computer Programs(计算机程序的构造和解释)
The C Programming Language(C程序设计语言)
Design Patterns: Elements of Reusable Object-Oriented Software(设计模式:可复用面向对象软件的基础)
Refactoring: Improving the Design of Existing Code(重构:改善既有代码的设计)
The Mythical Man-Month: Essays on Software Engineering(人月神话)
你会购买哪位导师的书呢?
显然,光读书不会让你成为大师级程序员。要提升技能,你需要的是练习,并且是大量的练习。但是,书籍仍是学习“你不知道你不知道的内容”的最好方式之一。
或许可以考虑下面这个福利?
上面推荐的书籍中,很多都是有PDF版的。但是似乎不适合在简书上直接放这样的链接,有需要的朋友请看原文。
原文链接:编程派
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。