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

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

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

inquestion:this "Code Complete"

当前回答

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

书之美在于版权年。

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

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

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

其他回答

我个人最喜欢的书之一是《黑客的喜悦》,因为它读起来既有趣又有教育意义。

我希望第二版能尽快发布!

如果你在Unix/Linux/MacOS等环境下工作,你必须阅读已故W Richard Stevens的《Unix环境下的高级编程》(也被称为APUE)。如果你不知道文件描述符是如何工作的,或者什么是会话,或者当你守护自己的时候你应该做的所有事情(承认吧,你不知道),那么这本书会告诉你。

之后你会觉得有点不专业,但是如果你想在Unix环境下成为一个专业的程序员(任何语言),你需要阅读这篇文章。

Martin Fowler的《重构:改进现有代码的设计》已经被列出。但我会详细说明它对我的影响。

整本书的本质是关于如何构造代码,以便人类更容易阅读和理解。它强烈地告诉我,我写的代码是为了让我的同事和后继者消费,并可能从中学到一些好的东西。它激励我有意识地以一种方式编程,让人们赞美我的名字,而不是诅咒我,直到永远。

在Windows下进行图形编程很难出错。

计算机程序设计的概念、技术和模型。

可选文字 http://ecx.images-amazon.com/images/I/51YZ50ZR13L._SL500_AA240_.jpg