如果你能回到过去,告诉自己在开发人员职业生涯的开始读一本书,你会读哪本书?

我希望这份清单是多样的,涵盖范围很广。

搜索:使用右上角的搜索框。要搜索当前问题的答案,使用inquestion:this。例如:

inquestion:this "Code Complete"

当前回答

Brian W. Kernighan和P. J. Plauger的《软件工具》

它对我编写软件的方式产生了深远的影响。

其他回答

无论您是否使用Smalltalk编程,Smalltalk最佳实践模式都是一本很好的读物。充满了会改变你编码方式的小观察;变得更好。

系统滑稽:系统如何工作,特别是它们如何失败。便宜地使用它。但是,在你参与过一些失败的项目之前,你可能不会体会到其中的幽默。

书之美在于版权年。

也许书中最深刻的“法则”是:

基本失效模式定理(F.F.T.):复杂系统通常以失效模式运行。

它的思想是,在任何给定的软件中都有失败的部分,这些部分被其他部分的失败或其他部分的验证所掩盖。看看现实世界中Therac-25辐射机的例子,它的软件缺陷被硬件故障保险掩盖了。当硬件故障保护被移除后,多年来一直未被检测到的软件竞争状态导致机器杀死了3个人。

Kernighan和Plauger的编程风格元素。 它说明了噱头-聪明和优雅-聪明之间的区别。

我读了大部分在这个问题上得分很高的书,但不是所有的书(感谢上帝!),我马上把其他的书加入了我的亚马逊愿望清单!

(有人应该在亚马逊上为这些书列个清单……也许是一个名为“Stackoverflow有史以来最好的书”的列表?有人知道怎么做吗?)

对我来说,最好的书是《代码完成》。这是一个启示。我买了英语版的第二版,然后是法语版,我仍然认为它应该是任何计算机科学学校的必读书目。数据结构很酷,但代码完整,不是开玩笑,更重要的是…

然后,我的第二本最好的书是《编写可靠的代码》——在学习了如何被理解之后,知道如何编写可靠的代码是非常棒的。

还有很多非常好的书,但这里没有一本值得一提。直到2001年,我认为:框架设计指南:可重用。net库的约定、习惯用法和模式。一个珍宝!这本书我读了很多遍,现在还放在我的桌子上,就在我的液晶显示器旁边,还有《代码完成》(真的!)我喜欢它的写作方式(喜欢这里和那里添加的评论-书都应该这样写!)

但是,我忘记了我读过的第一本书!是他们让我充满激情地爱上了计算机科学:

计算!(C64杂志-永远不会忘记吉姆蝴蝶:o) Borland c++用户指南(旧的,大约1991年,那些试图引入面向对象编程的人,写得非常好)。 大多数微软开发工具用户指南,大约在1990-1995年。不知道是谁写的,但他们很酷!我记得我在周六的深夜读过它们……

问得好:o)

一本书的影响力通常取决于读者,以及他们读这本书时处于职业生涯的哪个阶段。我必须为Head First设计模式欢呼。伟大的书和非常有创意的写作方式应该被用作其他技术书籍作者的例子。也就是说,它是为了促进学习和内化概念而编写的。

头部优先设计模式http://ecx.images-amazon.com/images/I/51LSqrgoT1L._SS500_.jpg