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

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

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

inquestion:this "Code Complete"

当前回答

Turbo c++中的面向对象编程。不是很受欢迎,但它让我开始学习,是第一本真正帮助我理解什么是物体的书。我在高中的时候读过这篇文章。这让我热泪盈眶……

其他回答

虽然不是最有影响力,但值得一看的是j.m.库切的《青春》。

《芳华》的叙述者是20世纪50年代南非的一名学生,长期以来一直在策划逃离祖国:逃离母亲令人窒息的爱,逃离失败困扰着他的父亲,以及他确信即将到来的革命。学习数学、读诗、存钱,他努力确保当他来到现实世界时,无论现实世界在哪里,他都准备好充分体验生活,并将其转化为艺术。然而,最后到达伦敦时,他既没有发现诗意,也没有发现浪漫。相反,他屈服于作为一名计算机程序员的单调生活,在这种生活中,随机的、没有爱情的事情并不能让他得到解脱。由于缺乏灵感,他停止了写作。作为一个尴尬的殖民者,一个宪法的局外人,他开始了一段黑暗的朝圣之旅,在这段旅程中,他不断受到考验,不断被发现有缺陷。

青年封面http://img440.imageshack.us/img440/5140/youthgd4.jpg

重构

企业应用程序体系结构模式

Alistair Cockburn的敏捷软件开发

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

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

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

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

我已经有一段时间了,所以我发现的大多数有影响力的书在今天并不一定适用。我相信理解你所开发的平台(包括硬件和操作系统)是非常重要的。我也认为从别人的错误中学习很重要。所以我想推荐两本书:

计算灾难和寻找愚蠢:二十多年的高科技营销灾难