程序员应该阅读哪些非编程书籍?

这是一个民意调查,询问Stackoverflow社区他们会推荐给程序员的非编程书籍。

张贴之前请阅读以下内容:

  • 请只发布一个每个答案

  • 在发布之前在此页面上search您的build议 (有9页以上,因此build议全部检查)。 已经有很多书已经被提出,我们想避免重复。 如果您发现您的build议已经存在,请将其投票或添加一些评论。

  • 请详细说明 为什么您认为 从程序员的angular度来看, 某本书是值得阅读 的。

注意: 这篇文章是相似的,并包含其他有用的build议。

银河系漫游指南

由道格拉斯亚当斯

替代文字

生命,宇宙和一切

“先看,后来想想,然后再testing,但是总是先看,否则你只会看到你的期望,大部分科学家都忘记了。 – 理智的恩科

如何赢得朋友,影响人民

由戴尔卡内基

如何赢得朋友和影响人们http://g-ecx.images-amazon.comhttp://img.dovov.comG/01/ciu/38/3c/0432c6da8da0f79a93332110._AA240_.L.jpg

虽然这是在1936年首次出版,但内部的build议仍然像以前一样新鲜和适宜。 不要被名字推迟。 这不是毫无防备的暗害你的方法,而是如何与人相处的常识性build议,如何培养人际关系,充分利用自己和同胞(和女人)。

众所周知,技术人员(包括程序员)经常被认为不是非常“以人为本”(这是否是一个合理的刻板印象是另一个讨论的主题),所以这本书是教给你的宝贵资源人际交往的细节。

这是温暖,衷心,坚固,直接和永恒的写作。 强烈推荐。

费曼先生,你真是在开玩笑!

替代文字

这本书将启发任何人思考和原创。

一九八四

由乔治奥威尔

1984年

另一个与以前的post不同的angular度:道格拉斯·霍夫斯塔特(Douglas Hofstadter)的“ 哥德尔,埃舍尔,巴赫:一条永恒的金辫子”

替代文字http://upload.wikimedia.org/wikipedia/en/thumb/f/f1/GEBcover.jpg/200px-GEBcover.jpg

Donald A. Norman 的“日常生活的devise”

替代文字http://ecx.images-amazon.comhttp://img.dovov.comI/719KFS67JBL._SL500_AA240_.gif

神话人月

由弗雷德布鲁克斯

神话人月

不要让我认为由史蒂夫·克鲁格。 一本关于网页可用性的必备书 正如克鲁格所说,“常识并不总是显而易见”。

替代文字http://ecx.images-amazon.comhttp://img.dovov.comI/51W8l2Zy3WL._SL500_AA240_.jpg

(提示:Amazon.com具有良好的可用性)

更新:这是现在图书馆工作的一部分。 到目前为止,我已经读了五个人。 100%正面评论,可以预见。

Peopleware:生产性项目和团队

由汤姆DeMarco和蒂莫西·李斯特

替代文字http://ecx.images-amazon.comhttp://img.dovov.comI/51MlUgcSICL._SL500_BO2,-64_OU01_AA240_SH20_.jpg

这本经典的书鼓励我们思考人而不是这个过程。 它充满了关于团队build设,生产力和办公环境的实用build议。 这是一个必须阅读的,不只是pipe理人员,而是与软件开发相关的人员。

得到两份,一份给你,一份给你的经理。

禅和摩托车维修的艺术

Robert M.Pirsig

替代文字

这本书是很多的东西,但是你可以说这是一个哲学上的意思是什么“gro牙”的东西。


来自Garth Gilmore的评论:

我相信这本书比我读过的任何编程书都更多地教给我关于软件开发的知识。

这本书的核心内容是我们对世界的浪漫(艺术)和古典(技术/理性)认知是如何从我们如何看待我们周围的环境质量中得出的。 这种理解然后应用于摩托车维护这些显然是平凡的任务。

举一些如何适用于编码的例子:

  • 关于如何以“高质量的思维方式”来引导摩托车的摩托车部分同样适用于在编程中达到“区域”。
  • 关于阻止进步并导致你损坏机器的“消费陷阱”部分是无价的。 所提出的解决scheme在尝试修改遗留代码而不引入错误时也同样适用。
  • 任何参与需求分析的人都应该阅读关于引擎部分的纯粹经典描述如何无用的章节(因为它没有任何用户站立位置)。

长话短说它很好读:-)

安德森的游戏由奥森·斯科特卡

替代文字

Cryptonomicon

由Neal Stephenson提供

Cryptonomicon by Neal Stephenson

本书遵循二战破译者和他现在的后代的平行故事,并对计算机的发展做了大量工作(阿兰·图灵实际上是书中的一个angular色)。 一个怪胎的必读!

数量信息的可视化展示

由Edward Tufte

定量信息的可视化显示http://ecx.images-amazon.comhttp://img.dovov.comI/41CZQ3YDSKL._SL500_AA300_.jpg

讨论如何以graphics方式表示不同types的复杂数据

风格的元素

由威廉Strunk&EB白色

替代文字

遇到Joshua Bloch( 有效的Java成名) 推荐 ,我们在研发库中find了一份副本:

这个超薄的卷,传达简单清晰的福音,适用于英文散文。 如果你把它放在心上,它会改善你的编码以及你的散文。

在另一篇采访中,布洛赫阐述了为什么这对程序员有好处:

我相信阅读Strunk和White会让你成为一个更好的开发者,因为好的编程和良好的写作都是关于expression的清晰度和经济性。 除非你明白你想说什么,否则你不能写出好的代码或散文。 Strunk和White的许多告诫都有软件的直接类比。 例如,Strunk和White说:“省略不必要的词!” 安迪·亨特(Andy Hunt)和戴夫·托马斯(Dave Thomas)(“实用程序员”)说:“不要重复自己”。 Strunk和White说,“修改和重写”,马丁·福勒说,“重构”。 而这样的例子不胜枚举。

现在,我个人认为“风格元素”中的 一些build议有点老化,因为英语的使用已经演变了(例如,现在用“但是”开始一个句子或者用“希望”而不是“我希望”)。 但是,我大部分同意布洛赫先生的看法,喜欢读这本书。

编辑 :哦,这是杰夫·阿特伍德最近不得不说的关于风格的元素 。 也许他比乔希·布洛赫(Josh Bloch)还是一个更有名的人物;)

我不敢相信我没有看到这个已经列出的:

沙丘

由弗兰克·赫伯特

沙丘封面http://upload.wikimedia.org/wikipedia/en/5/5a/FrankHerbert_Dune_1st.jpg

沙丘是科幻小说的巅峰之作!

战争的艺术 – 孙子兵法

战争的艺术

维基百科:大部分的文字都是关于如何打仗而不需要真正的战斗:它提供了关于如何智取对手的提示,以便不必进行实际的战斗。 因此,它已经被用作许多不涉及实战的竞争性努力的培训指南。

这个知识肯定会在我们必须打仗和离开办公室的日常“战斗”中有用。 它也充满了引号,你可以打动你的同行程序员… 🙂

我的build议是: 阅读任何超出通常范围的内容

真的 – 任何事情都会扩大你的视野。 这不仅适用于程序员和开发人员。 我认为每个人都会对一些你还没有花费8-12小时的东西感兴趣。

就个人而言,我有时觉得自己像一个真正的世界白痴,因为我个人的有关计算机的各种主题的图书馆正在成长和增长,我永远不能放松 – 我的意思是,我一天花费大约10个小时与他们在一起,然后我在我睡觉之前读一本关于devise模式的书。 这有多恶心? ;)

我现在的避难所就是我的报纸订阅,还有其他各种杂志,每当我去看报摊的时候, 他们中的大多数与技术和编程无关。 我习惯早上出去喝咖啡,带着报纸一起阅读别的东西,或者和朋友见面聊天。

所以,为了更清楚一点 – 我知道一份报纸或者任何一本杂志都不像网站那样是最新和最新的。 但是,这使我不能在屏幕上阅读,并在平常之外做一些事情。

刘易斯·卡罗尔 “爱丽丝梦游仙境”

艾萨克·阿西莫夫的基金会系列精彩!

books/asimov/found1as.jpg

真? 还没有人提到指环王 ?

替代文字http://upload.wikimedia.org/wikipedia/en/6/62/Jrrt_lotr_cover_design.jpg

除了作为自己的权利的一个壮观的写作之外,它也是(几乎所有)现代幻想小说的基础。 (另外,对于一群计算机程序员来说,也许更多,这是龙与地下城的核心灵感之一。)

回过头来看,每个程序员必须阅读的三本书才能够参加午餐时间的对话,就是“指环王”,“沙丘”和“漫游者指南”。 (这有些夸张)

如果你只看过电影,试试看书。

从技术的angular度来看,本书“不重要”的人可以对周围的世界和组织产生深远的积极影响的基本信息,对我们所有人做“大公司”的编程都是非常有希望的。

平地 ,由雅培 替代文字

时间简史 – 斯蒂芬霍金

时间简史 – 史蒂芬·霍金http://ecx.images-amazon.comhttp://img.dovov.comI/71HADMSE3JL._SL500_AA240_.gif

螺丝字母

由CS刘易斯

想象一个恶魔“编程”人类…

Neuromancer

By William Gibson. He coined the term cyberspace, and the sprawl triology is the reason I wanted to be a code cowboy.

替代文字

在夜间狗的好奇事件

马克·哈登

替代文字http://g-ecx.images-amazon.comhttp://img.dovov.comG/01/ciu/d8/3c/71657220eca034a9e9c19010._AA240_.L.jpg

它会给你一些奇怪的同事的看法。

Philip K. Dick机器人梦想电羊?

和他写的所有东西,当然:)

他的思维弯曲的故事肯定有助于更多地思考问题。

囚犯是运行庇护

通过Alan Cooper

替代文字http://ecx.images-amazon.comhttp://img.dovov.comI/51AGVJzr9LL._SL500_BO2,204,203,200_AA219_PI.jpg

这是关于使用正确的语言来谈论项目 – 使用故事(和人物angular色)而不是“function”谈论需要实现的东西。 也很多重视交互devise和相关活动。 提供所需要的而不是要求的东西。

高效人才的7个习惯

由斯蒂芬科维

http://bloggybiz.com/wp-content/uploads/2008/02/stephen-covey-7-habits-of-highly-effective-people.jpg

如果你没有阅读这本书,你就错过了很多潜能。

最初来自@John Channing的职位

编辑 :现在可以作为一个免费的有声读物 。

Julie的评论
这本书具有普遍的价值 – 不仅仅是软件开发者。 尽pipe完成任务可以帮助您pipe理日常活动,但7种习惯可以帮助您保持高水平的生活愿景,以及您需要转化为具体的一般方法。 这是在这方面做好准备的完美补充。