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

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

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

inquestion:this "Code Complete"

当前回答

尽管我已经从事了多年的专业编程工作,但Rocky Lhotka关于他的CSLA框架的“业务对象”系列还是让我大开眼界。 他的想法让我再次对软件开发模式和理论感到兴奋。它让我对学习如何成为一名更好的开发人员产生了新的兴趣,而不仅仅是学习最新的令人惊叹的控件或库。(不要误解我,我仍然喜欢一本好的技术书籍-你必须跟上!)

其他回答

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

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

c++中的算法对我学习大O符号和各种排序算法的来来去去是无价的。这本书在塞奇威克认为把它分成5本可以赚更多钱之前出版了。

c++ FAQs是一本神奇的书,它告诉你在c++中应该做什么,不应该做什么。c++的向后兼容性留下了很多“地雷”,这本书帮助人们小心地避免这些地雷,同时也很好地介绍了OO设计和意图。

我将补充一些我在这里没有看到但对我有影响的东西:

Yourdon和Constantine,“结构化设计”。你需要知道的关于软件设计的一切都在这里,如果你愿意挖一点。 Leonard Koren,“Wabi-Sabi:艺术家,设计师,诗人和哲学家”。平衡美与实用主义的实用主义哲学。

我发现《算法设计手册》是一本非常有益的读物。我还强烈推荐Programming Pearls。

Pro Spring是对控制反转和依赖注入世界的一个极好的介绍。如果你不了解这些实践和它们的含义,那么Pro Spring中主题和技术细节的平衡是非常出色的。它建立了一个伟大的案例和随之而来的个人基础。

我建议的另一本书是Robert Martin的《敏捷软件开发》(ASD)。代码味道、敏捷技术、测试驱动开发、原则……许多不同编程方面的良好平衡。

更传统的经典著作包括臭名昭著的GoF设计模式,Bertrand Meyer的面向对象软件构建,Booch的面向对象分析与设计,Scott Meyer的“有效的c++”系列,以及Gunderloy写的一本不太出名的书,《编码员到开发人员》。

虽然书很好……别忘了收音机!

... 我再补充一点。如果你还没有发现过狩猎,那就来看看吧。它比堆栈溢出更让人上瘾:-)我发现,以我的谷歌类型的习惯——我需要更昂贵的订阅,这样我就可以在任何时候看任何一本书——但我会向任何有兴趣的人推荐这个试验。

(啊,是的,今天来点obj-C,明天来杯可可,花样?soa ?那本食谱里的例子是什么?史蒂夫在第二版里说了什么?我应该买这本书吗?... 如果你想要一些连续性和上下文,像这样的订阅是很好的…)