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

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

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

inquestion:this "Code Complete"

当前回答

代码就是法律——你用自己选择的语言写作、编辑和思考,但为什么呢?你的代码是什么意思?它到底能做什么?

(我本可以推荐一本关于QA的书,但我没有……)

其他回答

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

书之美在于版权年。

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

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

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

如何用电脑解决http://g-ecx.images-amazon.com/images/G/01/ciu/31/89/d4ac024128a044c186a18010._AA207_.L.jpg - R.G.Dromey

Craig Larman的《应用UML和模式》。

这本书的书名有点误导人;它确实处理了UML和模式,但它涵盖了更多。这本书的副标题告诉你更多:面向对象分析和设计以及迭代开发简介。

《Effective c++》和《More Effective c++》作者:Scott Myers。

另外,我想提到休·达文和CJ·戴特的《第三个宣言》。如果你对理解数据感兴趣(这在程序员中似乎并不常见),这本书是必读的。当您意识到SQL有多么糟糕时,它也会让您感到悲伤,但它也会帮助您应对这种破坏。了解工具是如何损坏的,可以让您在设计时牢记这些缺陷。