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

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

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

inquestion:this "Code Complete"

当前回答

去年我上了很多课。我读

创新者的困境(颠覆性技术) 神秘的人月(管理软件) 跨越鸿沟(启动) 数据库管理系统,牛书 编程c#,鸵鸟书 开始iPhone开发,葡萄柚书

每本书都很棒,但是克莱顿·克里斯滕森的《创新者的困境》(1997!!)确实是一本很棒的书,它让我真正思考了现代软件世界。要解决的挑战是颠覆性技术,以及磁盘驱动器公司和非技术公司如何总是被新的、改变游戏规则的技术所颠覆。当人们想到谷歌,可能是最大的“网络”公司时,它给了人们一个新的视角。为什么他们什么都要插手?这是因为他们不希望自己的地位被新事物打乱。谷歌上的预告已经足够让人理解了。读它!

其他回答

Craig Larman的《应用UML和模式》。虽然四人组的《设计模式》这本书很有启发性,但我发现直到在编程课上偶然看到Larman的书,我才“明白”如何使用设计模式。

c++对象模型内部,作者Stan Lippman。它让我终于“点击”了c++,在它变成“魔法”之前。当我接触一种新的编程语言时,这本书给了我一种不同的心态。

Kent Beck的实现模式。

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

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

我有几本对我有强烈影响的好书,但到目前为止我还没有在这个清单上看到:

唐纳德·诺曼的《日常事物心理学》。为他人设计的一般原则。这似乎对UI很有好处,但如果你仔细想想,它几乎在任何地方都有应用程序,只要有一个界面,除了原始开发人员之外的人就必须与之打交道;例如,一个API,并以这样一种方式设计接口,使其他开发人员形成正确的心智模型,并从API本身获得适当的反馈。

《软件测试的艺术》作者:Glen Myers。对测试软件的良好的、一般的介绍;对于程序员来说,阅读有助于他们像测试人员一样思考,即思考可能出现的错误并为此做好准备。

顺便说一句,我知道这个问题是“最具影响力的一本书”,但讨论似乎已经变成了列出供开发人员阅读的好书,所以我希望我列出两本好书而不是一本能得到谅解。

我认为代码完整将是这个问题中非常受欢迎的一个,对我来说,它纠正了我的许多坏习惯,并重新肯定了我的好实践。

对于我的Perl背景,我非常喜欢Damian Conway的Perl最佳实践。如果不使用风格和最佳实践,Perl可能是一种令人讨厌的语言,这就是我在阅读(有时编写)的脚本中看到的情况。

我喜欢Head First系列,它们非常好,当你没有心情阅读更严肃的书籍时,它们很容易阅读。