五年前有网友在 Stackoverflow 发帖提问:『程序员应该读哪些非编程方面的书?』。有很多程序员响应,他们在推荐的同时也写下了自己的评语。本文摘编其中 29 本书,下面就按照各书的推荐数排列。另外,本月初我们在伯乐头条也发起了相同的讨论帖《你最喜欢的非编程书是哪一本?》,已有很多的朋友推荐了他们喜欢的书。
1.《银河系漫游指南》by Douglas Adams
推荐数:480
生活,宇宙,所有的一切。
“看在前,思考在后,然后去实践。但是看总是在最前面。否则,你只能看到你以为的样子。大多数的科学家忘记了这一点。”–Wonko的智慧
作为开发者以及曾经的技术支持,从这本书(以及整个系列)中我们能学到一件事情:不要恐慌!!!另外,这本书读起来的舒适程度远胜于你自己存在的问题。– SirDemon
2.《人性的弱点》 by Dale Carnegie
推荐数:322
尽管这本书是在1936年首次出版的,书中给出的建议仍然是一如既往的新鲜和适当。不要被它的名字误导。这并不是给未知情的受害者找到自己做人的方式的欺骗性指南,而是关于如何与人相处,如何培养人际关系并充分利用你自己和你的男人(女人)方面很有意义的建议。
众所周知,技术宅(包括程序员)经常被认为并不是非常的”以人为本(善于交际)“(这是不是一个合理的成见是另一个讨论的话题),那么这本书是一个教你更好的与人打交道方面的无价的资源。
它温暖,真诚,全面,直白,持续写成。强烈推荐。
3.《别逗了,费曼先生》
推荐数:317
这本书将启发每一位读者思考,并回归原始。
绝对惊奇的一本书!体现思考和与众不同的乐趣。他不只是赞美它,作者的生活本就如此并爱着它。这本书如此有趣。(另外,作者是如此有才,以至于本书深刻并让人着迷。)– Beska
4.《一九八四》 by George Orwell
推荐数:312
需要买来读吗?哼,我总觉得你会错过它的要点。 – ApplePieIsGood
5.《哥德尔、艾舍尔、巴赫:集异璧之大成》 by Douglas Hofstadter
推荐数:275
我读到一半,并认为它被高估了。作者总是重复一些概念但这往往会变得烦人。很多时候我都想朝着作者大吼:”我已经懂了一次又一次!“。 – heeen
6.《设计心理学》 by Donald A. Norman
推荐数:243
很棒的书,会让你更欣赏很棒的设计! – Danielb
我大概从上个月开始读这本书。真的会让你以不同的眼光(大多是愤怒)来看待事物。 – jammus
7.《搞定:无压工作的艺术》by David Allen
推荐数:230
我一直想读的一本书。– Kaz Dragon
我强烈推荐这本。它不会改变你的生活,但是它会帮助你思考解决效率和拖延的问题,而不再是你生活中必须忍受的固有的问题。这种心态的转变让像我这样的懒惰者变得很不一样。 – Brandon Yarbrough
8.《人月神话》by Fred Brooks
推荐数:216
这怎么是非编程方面的书呢? – MusiGenesis
9.《点石成金:访客至上的网页设计秘笈》by Steve Krug
推荐数:200
web应用方面很有意义的一本书。正如作者所说:”常识并不总是显而易见的“。
10.《人件:生产性项目和团队》by Tom DeMarco and Timothy Lister
推荐数:186
这本经典的书鼓励我们来思考人的重要性,而不是过程。它里面充满了关于团队建设,生产率以及办公环境的实践建议。它是一本必须读的书,不管是项目管理者还是任意的软件开发参与者。
搞两本,一本自己读,一本给你的主管。
11.《禅与摩托车维修的艺术》by Robert M. Pirsig
推荐数:183
这本书讲了很多东西,但是你可以认为它是呈现”神交“在哲学上的意义。
来自于Garth Gilmore的评论:
我敢笃定,这本书教会我的有关软件开发方面的东西远比其他任何一本编程书都多。
这本书的主线是关于我们对于世界上浪漫主义(艺术)和现实主义(科学/理性)的认知是如何来自于,我们是怎样看待我们周围的环境的。这种理解然后被应用于一般性的任务,比如摩托车维修。
给出几个这个理论如何应用于编程的例子:
如何处理摩托车的”质量理念“以引导进程的章节,也同样适用于编程区域。
”进取心的陷阱(欲速则不达)“阻止了进程并导致你损坏机器的章节是无价的。解决方案也同样能在修改遗留代码而不引入新的bug中有效果。
有一个纯粹描述发动机部分的经典章节是无用的(因为它没有任何地方可以让用户提出异议),但应该被每一个被卷入需求分析的人来阅读。
总之它是一本好书。
(编注:关于这本书,也可以看看阮一峰的读后感。)
12.《安德的游戏》 by Orson Scott Card
推荐数:183
这本书被高估了,除非你在你还是一个性格阴郁的怪胎少年的时候第一次读它。我知道没有人(包括我自己)在自己年纪比较大的时候读完它会觉得它是一本必读的书。– jmucchiello
13.《 Cryptonomicon | 编码宝典 》 by Neal Stephenson
推荐数:158
这本书讲述的是关于第二次世界大战密码破解的真实故事,今天他的后代致力于计算机的发展(阿兰·图灵在书里单独作为一章来讲解)。是极客必读之书。
14.《The Visual Display of Quantitative Information》by Edward Tufte
推荐数:158
讨论了如何以图形方式表示不同类型的复杂的数据。
书中对于PPT的危害简短而又简单的评论也很有优秀。– Chet
15.《风格的要素》by William Strunk & E.B. White
推荐数:156
在看过Joshua Bloch(因《Effective Java》而名言四海)对于此书的推荐后我们也在我们的R&D(研究与开发)图书馆引进了一本:
这本薄薄的小册子宣扬简单性和清晰性的信条,因为它适用于英语散文。如果你谨记在心,它不只会提高你写诗的水平,也会提高你的编码水平。
在另一个专访中,Bloch阐述了为什么它对程序员有好处:
我认为阅读斯特伦克和怀 特(作者)会让你成为一名更优秀的程序员,因为好的编程与好的书写都是关于词句的简单性与简洁性的。如果你不知道你要表达什么,你是写不出好的代码和好的 散文的。斯特伦克和怀特里很多的警告在编程中也是类似的。比如,斯特伦克和怀特说:“去掉不必要的语句”。Andy Hunt 和Dave Thomas(“实效程序员”)也说:“不要重复造轮子”。斯特伦克和怀特说:“要推敲和重写”,马丁·福勒说:“要重构”。还有等等诸如此类的。
现在,我个人认为《风格的要素》这本书中很多建议有点过时了,因为英语的使用出现了演化(比如,现在以”Hoverever”作为一个句子的开头是完全可以的,或者使用hopefully代替“I hope”)。但是大多数的地方我还是同意作者的,而且很享受阅读此书。
这里是阿特伍德对于《风格的要素》不得不说的更多的信息。也许它是比约书亚·布洛克说的更好的 更好的阅读指南。
16.《沙丘魔堡》by Frank Herbert
推荐数:152
《沙丘魔堡》是科幻小说的顶峰。
17《孙子兵法》
这个就不需要介绍了
18.《雪崩》By Neal Stephenson
推荐数:120
最近我在某人的推荐下阅读了这本书,我非常失望,它都过时了。– Ian Dickinson
19.《爱丽丝漫游奇境记》by Lewis Carroll
推荐数:114
“《爱丽丝梦游仙境》是门外汉最好的编程书”,是因为对门外汉来说,对于任何事物它都是最好的。– Jeremy Friesner
20.《基地系列》by Isaac Asimov’s
推荐数:114
很棒的图书。我发现这本书里的理论像是通过通过混沌理论来介绍社会学。关于社会发展很好的阐述。简单有趣,就是有点厚。– Beska
21.《魔戒》
推荐数:114
除了它之一本科幻巨作外,这也是(几乎所有)的现代幻想小说的基础。(而且,对于一群计算机程序员来说更有意义的是,它也是龙与地下城的核心启示之一)
退几步说,为了能在午餐的时候加入到话题中,每个程序员必读的三本书是指环王,沙丘,银河系漫游指南。(这个有点夸张)
如果你只是看过电影,那么试着去读下书。
从科技的角度,书里的不重要的人物能对世界有深刻而积极的影响的基本信息,以及他们周边的组织让大公司的编程看到了希望。
我需要补充的是团队协作是很重要的,甚至是在团队里有些人有破坏作用,有的人很自私或者不能融入团队,当到了最后的期限或者索隆即将出现的时候,你仍然可以让他们做的很好而扭转战局。– anonymous coward
22.《平面国》by Abbott
推荐数:111
这本书太旧了,以至于它现在都不出版了。你可以在这里阅读全书:geom.uiuc.edu/~banchoff/Flatland – Simucal
23.《时间简史》by Stephen Hawking
推荐数:104
24.《地狱来鸿》by C. S. Lewis
推荐数:83
想象一个恶魔在编写一个关于人的程序…..
25.《神经漫游者》By William Gibson
推荐数:74
他创造了网络空间这个词,它延伸的三部曲是我想当一个编码仔的原因。
具有讽刺意味的是,他写的这些书打击了技术迷,并渗透到社会的今天(和未来)– J. Steen
26.《深夜小狗神秘习题》by Mark Haddon
推荐数:73
它给出了有关你古怪同事的一些看法。
这本书真的很不错。他帮助我认识了孤独症和阿斯伯格综合症患者(作者为了写书和孤独症患者一起工作了一些时间,从我和一些阿斯伯格综合症患者儿童的相处来看,它非常真实)。– Mongoose
27.《仿生人会梦见电子羊吗》by Philip K. Dick
推荐数:66
作者写的其他东西当然也很棒。
他的离奇古怪的故事肯定帮助人们有更多的思考。
对于程序员来说是奇幻的一本书和一部电影。而且,对于PKD的其他书(也不尽然只是书,还有必须的电影,比如《致命报酬》)也很不错。不过显然总记得是一个很棒的电影。– Troy Nichols
28.《交互设计之路》by Alan Cooper
推荐数:66
它讲述的用正确的语言来谈论项目–用故事(和角色模型)代替产品特点来谈论我们需要认识到的东西。还有一些在交互设计以及相关活动上的强调,要提供用户需要的而不是要求的。
29.《高效能人士的7个习惯》by Stephen Covey
推荐数:61
如果你没有读过这本,你会错过很多你潜在的能力–最初摘自John Channing的文章。
编辑:你可以获取它的免费有声读物。
来自Julie的评论:
这本书具有普世价值–不仅仅是对于软件开发者来说。鉴于你做很多事来帮助你处理日常的事务,7个习惯能帮助你保持高效的生活和一个你需要转化为日常细节的普世方法论。这本书是从这方面考虑来处理事情的完美补充。
原文链接: Stackoverflow 翻译: 伯乐在线 - abell123
译文链接: http://blog.jobbole.com/72365/