我这一辈子,从不知道哪位智者是根本不读书的——没有,没有一个人。
-- <cite>投资大师芒格</cite>
前言
自从开始自学编程以来,就一直希望有人指点该如何逐步的打牢基础,该读哪些书籍来加深对计算机科学的理解。最近,我在网上看到有人整理了一些知名程序员推荐的书籍,他们或是接受采访,或是在自己的博客上,向大家推荐了自己认为最有价值的编程书籍。觉得应该都是不错的选择,所以翻译过来与大家分享。
为什么要读书?
当今,我们时刻被笔记本电脑和iPhone包围,导致忽视了人类历史上最重要的技术之一:默默无闻的书籍。我不确定是不是我的圈子太小,但是我的程序员朋友中,平常读书的人确实很少。恕我直言,真是有点暴殄天物,因为书中提供了让你大幅提升技能的难得机会。
如果有人问你,“你是否愿意付5000美元,请世界上一名最伟大的程序员当你三个月的导师?”你会怎么回答?很可能是“那太好啦!”。但是如果给你同样的选择,只是这次变成支付50美元,但是你必须读书,你还会愿意吗?
阅读一本伟大的书籍,就像被一位伟大的导师呵护教导一样。许多拥有丰富经验的伟大程序员,选择将他们的智慧凝聚到书本这种尽管不太防水,但是可携带性强的载体中,就是为了给你提供阅读的乐趣。你为什么不好好享用这场汇聚集体知识的盛筵呢?
下面是这个领域中一些顶级程序员的建议。请注意,其中一些书籍被反复提及。已添加购买链接。
Joel Spolsky
Joel Spolsky毕业于耶鲁大学计算机系,目前是Fog Creek软件公司的CEO。他的网络日志"Joel谈软件"(Joel on Software)非常有名,读者人数可以排进全世界前100名。
他向大家推荐5本书,分别是:
-
Peopleware: Productive Projects and Teams
(人件) -
Rapid Development: Taming Wild Software Schedules
(好像还没有中文版) -
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语言的书,没有中文版) -
Compilers: Principles, Techniques, and Tools
(编译原理)
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程序设计语言) -
Introduction to Algorithms
(算法导论) -
Design Patterns: Elements of Reusable Object-Oriented Software
(设计模式:可复用面向对象软件的基础) -
Refactoring: Improving the Design of Existing Code
(重构:改善既有代码的设计) -
The Mythical Man-Month: Essays on Software Engineering
(人月神话)
你会购买哪位导师的书呢?
显然,光读书不会让你成为大师级程序员。要提升技能,你需要的是练习,并且是大量的练习。但是,书籍仍是学习“你不知道你不知道的内容”的最好方式之一。
或许可以考虑下面这个福利?
上面推荐的书籍中,很多都是有PDF版的。但是似乎不适合在简书上直接放这样的链接,有需要的朋友请看原文。
原文链接:编程派
网友评论