您的位置:首页 > 职场人生

哪本书是对程序员最有影响、每个程序员都该阅读的书?

2012-07-24 16:54 579 查看
转载地址:http://www.aqee.net/what-is-the-single-most-influential-book-every-programmer-should-read/

国外知名网站stackoverflow上有一个问题调查:
哪本书是对程序员最有影响、每个程序员都该阅读的书?,这个调查已历时两年,目前为止吸引了153,432人访问,读者共推荐出了478本书(还在增加),其中最火的一本书《Code Complete》被顶了1306次。如果你是个程序员,你一定有兴趣看看这些书里你都看过几本,如果你一本没看过的话,我也不好说什么,也许你是个天才,但我相信大多数人都知道,你在学校里根本学不到什么真正的工作中需要的知识,我们毕业后能帮助我们在公司中胜任工作的老师就是这些优秀的书籍,一本好书可以改变一个人的一生。

下面是这个调查中排名靠前的书的一个简单的清单:

第一名:1306票《Code Complete (2nd Ed) by Steve McConnell》,中文版《代码大全(第二版)》,两届Software Jolt Award震撼大奖得主!



第二名:1161票 《The Pragmatic Programmer》,中文版《程序员修炼之道



第三名:689票 《Structure and Interpretation of Computer Programs》,中文版《计算机程序的构造和解释》



第四名:557票 《The C Programming Language》,中文版《C程序设计语言



第五名:472票 《Refactoring: Improving the Design of Existing Code》,中文版《重构:改善既有代码的设计



第六名:472票 《Introduction to algorithms》,中文版《算法导论



第七名:430票 《The Mythical Man-Month》,中文版《人月神话



第八名:426票 《Design Patterns》,中文版《设计模式



第九名:386票 《The Art of Computer Programming(First Volume Hardcover)》,中文版《计算机程序设计艺术第 (第一卷)



第10名:353票 《Compilers: Principles, Techniques, and Tools 》,中文版《编译原理



第11名:329票 《Head-First Design Patterns》,中文版《Head First 设计模式



当然了,这里的排名并不具有什么权威性,但绝对可以说都是好书,这11本外还有很多书虽然票数不是那么多,但大家估计都耳熟能详,比如《Effective C++》(中文版《Effective C++:改善程序与设计的55个具体做法》),《Clean Code》(中文版《代码整洁之道》),《Effective Java》(中文版《Effective
Java中文版(第2版)》等 。

记得有位先哲曾说过:一种编程语言的重要性并不在于语言本身,而是在于这种语言来体现出来的编程思维模式。所以说,并不是你用到的书才去读,读书是一种习惯。

[本文英文原文链接:What is the single most influential book every programmer should read? ]



相关文章:

程序员必须知道的几个国外IT网站
REST vs. SOAP
五大超级黑帽子黑客和五大超级白帽子黑客【视频】
视频:三星展示坚不可摧的手机屏幕
“Brogrammer”们改写程序员的书呆子形象
每周工作不要超过40小时

此条目发表在
新闻资讯 分类目录。将固定链接加入收藏夹。

← 创业者的80/20法则
做一个女软件工程师的好处


26 条评论

zoujia:“读书是一种习惯”!找时间好好读读这些书籍\(^o^)/~ -
2011年03月7日9:06 上午回复

Weibin Yao:惭愧,排名第一的没有看过,先去下个电子版来看看。 -
2011年03月7日11:41 上午回复


LiaWind
说:
2011年03月7日1:42 下午

说说我看过的几本吧:

3. SICP,觉得是本比较难定位的书。当初是找lamba演算的资料时找到的。我的感觉主要讲了三个部分:程序的构造(以LISP为例)、lamba演算、LISP解释器及变种。关于程序构造的部分在其他书中没看到过,但若单独取出来讲应该没多少内容;同样关于lamba演算的部分也不多(网上找的专门讲lambda演算的讲义一般也不长);最多的就是解释器的部分。感觉对比较有经验的程序员,内容有些冗长;而如评论中所说作为程序设计的引导课程(the introductory programming course),它恐怕又难了些(或许对于MIT的学生不难):因为它主要不是教“怎么”去写程序的。

4. 其实没看过,不过评论中有一句话很有趣:“If you invent a new language and the manual is longer than K+R, you have done something wrong.” 话说C++肯定符合这个条件啊



5. 这是本需要和实践相结合的书。其实这个列表中有好几本都有这个特点,比如《Code Complete》的评论里就有“for a beginner, it doesn’t really make sense as the concepts are a little advanced. By the time you are ready to be able to read it, you should already know and practice 99% of the concepts in the book.”,以及对《Design
Patterns》的评论:“This book is for people who’ve already made factories and singletons and visitors and never knew what to call them.”这些书看过后,可以了解一些概念,但或许只有实际遇到问题、解决过问题之后,才能真正的理解这些概念。

(待续)

回复

admin:待续?不会是都看了?或是都将看??强 -
2011年03月12日8:49 上午回复


LiaWind
说:
2011年03月14日9:44 上午

显然不是,第1第2就都没看过 //shy

只是我很懒

而且,我真正想推荐的是……第12本!


LiaWind
说:
2011年03月16日9:54 上午

今天没什么事,补全吧


6. 上学时的课本,经典书。但是为毛学期结束后只记得NP之类懂也不懂的概念?循环不变量、复杂度分析之类的虽然会用,但完全不记得上课时讲过?

7. 看过,讲管理的,印象不深。

8. 见我对第5本的看法。另外补充一点我的前leader对此书的评价:“整本设计模式就讲了一个问题:那就是依赖。”

9. 无缘拜读。当年看了看目录,见主要是讲算法的,就觉得不够“艺术”。诚然“程序=数据结构+算法”,但是“开发软件≠写程序”。无论如何,算法是基石。

10. 幸好去看了原文,我还奇怪入围的编译书怎么会不是大名鼎鼎的“红龙书”呢:)也是上学时的课本,都学会了你就可以自己写编译器了——课程的大作业就是这个!不过个人觉得,除非是要写编译器,否则不一定要学编译原理。当然学了编译原理可以对程序设计有更深入的理解,但其实多数时候只需要知道一段代码编出来是“什么样”的以及“为什么”是这样,而不需要知道编译器是“怎么”生成这段代码的。编译原理关注的是后者,前者的话,可以学习一些程序设计语言原理。

不过话说回来,我看过的最好的程序设计语言原理的书是连着编译一块讲的(《程序设计语言:实践之路》),而随着DSL的发展,需要写编译器的程序员恐怕也会增多。

12. 终于到这本了!原文排名第12,恰好被博主排除在外——再次庆幸去看了原文。

哥德尔·艾舍尔·巴赫——集异璧之大成

最初还是中学的时候,去外地参加比赛,队友从旧书摊上淘了本此书的缩译本,翻阅之下爱不释手。后来在各大书店却遍寻不着。进了大学,在学校图书馆见到全本时,可想而知我有多高兴了。

不过要我评论,也只说得出“这是本奇书”了。当初看时有些囫囵吞枣,只记得结构之精妙了。

看到此文后又去当当查过,才发现此书在10年8月重印了。但是坑爹的商务印书馆,你这次是不是又只印了几千册!居然又脱销了 T_T 淘宝上都卖到85了,还不知道是不是正版!

PS:12本书我只看过7本,3本没写,另两本是一些联想到的感想。

回复

阿拉丁:这些书得好好看 -
2011年03月8日10:34 上午回复

iGooodman:4,11这两本我有. -
2011年03月8日1:31 下午回复

nothing@null.com:看排名可以想像得出投票人的构成 -
2011年03月9日11:54 上午回复

阿蒙:《颈椎病康复指南》 -
2011年03月26日4:20 下午回复

admin:呵呵,太逗了 -
2011年03月26日10:53 下午回复

路人甲:哈哈。这有意思 -
2011年07月12日1:00 上午

Hugo:很惭愧, 都没看过 -
2011年03月31日6:01 下午回复

zxding:正在阅读《代码大全》 -
2011年05月21日2:25 下午回复


cinque
说:
2011年07月11日11:49 上午

推荐programming pearl和concrete mathematics. CLRS其实没有那么经典了, 不过比较新比较全讲的很具体, The Design and Analysis of Computer Algorithms是值得一读的好书, 就是老了点

回复

毕达哥拉斯半圆:大部分的书都有,但是没有仔细看过,惭愧呀! -
2011年07月19日9:57 上午回复

Ron:有5本,1,2,4,5,11同惭愧... -
2011年10月25日4:30 下午回复


jaco
说:
2011年08月10日3:01 下午

惭愧,一本都没有看,觉得开发软件如果是一般系统,对算法没有太大的要求,毕竟一个好的架构比一个好的算法重要,但是好的算法对局部功能的效率提高还是有帮助的,最终本人还是比较崇尚好的系统架构

回复

randomblbl:以后少看没用的新闻,多看书。 -
2011年08月12日2:05 上午回复

CC霜:都不是基础的书 -
2011年09月13日5:33 下午回复

haiyang:看过1,2,4。 都是好书,保存下来。 -
2011年10月16日10:56 下午回复


Lazymonkey
说:
2011年10月28日10:59 上午

除了《The C Programming Language》是纸质书,其他都是电子书。。。惭愧啊!

回复

静水:The Mythical Man-Month,人月神话,看过感觉真的不一样,强烈推荐 -
2011年12月15日11:08 上午回复

qianfahui:不上QQ啦,多吃吃书 -
2012年03月11日3:25 下午回复

Wendy:绝对同意!!! -
2012年03月13日9:21 下午回复

杨军:基本没读过,不过倒是挺有兴趣的,有时间读读。 -
2012年03月14日4:51 下午回复
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐