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

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

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

inquestion:this "Code Complete"

当前回答

似乎没有人提到Stroustup的《c++程序设计语言》,这是每一个c++程序员都应该读的一本好书。

我还认为每个程序员和经理都应该阅读《极限编程解释:拥抱变化》这本书。书中的许多思想现在都是常识,但这本书对软件工程中追求质量给出了一个聪明而鼓舞人心的描述。

其次,我要推荐Knuth和Gang of Four,它们都是经典之作。

其他回答

Kent Beck的实现模式。

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

你可以学习如何通过编程与人交流。

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

书之美在于版权年。

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

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

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

另一本书还没有被提及,但每一个程序员、新手到大师都应该必读,任何编程语言,是Michael Howard的《Writing Secure Code》(第二版),来自mpress。

对我来说,《设计模式解释》为我提供了一个关于设计模式的“哦,这就是它的工作原理”的时刻,并且在向其他人教授设计模式时非常有用。

Robert L. Glass的《软件工程的事实与谬误》http://www.codinghorror.com/blog/images/facts-and-fallacies-of-software-engineering.jpg

Robert L. Glass的《软件工程的事实与谬误》是一本非常优秀的书。在我读这本书之前,我已经做了将近10年的专业黑客,但我仍然学到了很多东西。