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

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

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

inquestion:this "Code Complete"

当前回答

令我惊讶的是,书中居然没有提到这本书:里奥·布罗迪(Leo Brodie)的《出发》(Starting Forth)。毕竟,Forth作为一种基于堆栈的语言,应该适合这个站点的用户……

不可否认,Forth是一种奇怪的语言,现在不太流行。但这本书读起来很有趣。它还有卡通!这本书和布罗迪的另一本书《思考》(Thinking Forth)都可以在网上免费获得。

其他回答

安德烈·亚历山大的现代C++设计

TCP/IP指南,Charles M. Kozierok著

虽然它被描述为“百科全书式的参考”,但作为一种叙述,它是令人难以置信的可读性。

作者提供了一个非常,非常,非常好的写作,全面的,介绍网络和基础设施的网络。这是所有程序员都应该知道的。

对我来说,这是查尔斯·佩佐德(Charles Petzold)《密码》(Code)的自然续集。如果说“代码”向外行解释了计算机如何工作,那么“TCP/IP指南”解释了计算机如何连接在一起。

如果你给一个12岁的极客一份“代码”和一份“TCP/IP指南”,他们在17岁的时候就能构建出下一个谷歌。

换句话说,如果我能回到过去,告诉自己在我作为开发人员的职业生涯开始时读一本特定的书,这本书(加上代码)就会在我的清单上名列前茅。

除了它们在我书架上的排列顺序外,没有特别的顺序:

实用的程序员 福勒的rafacoring 有效地使用Feathers的遗留代码。这实际上是重构的一个伙伴卷。 Fowler提炼的UML。它的其他优点之一是简洁。 Steve Maguire编写的调试开发过程 设计模式(又名“四人组”)由Gamma等人

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

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

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

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

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

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

Kernighan和Pike的Unix编程环境。

与其他任何一本书相比,它教会了我构建易于测试的小工具的好处,这些工具可以组合起来做大事情。