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

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

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

inquestion:this "Code Complete"

当前回答

正如很多人列出了头部优先设计模式,我认为这是一本非常好的书,我想看看是否有很多人知道一本名为《设计模式解释:面向对象设计的新视角》的书。

本书出色地论述了设计模式。本书的前半部分非常容易理解,其余章节只需要对已经涵盖的内容有一个坚定的把握。我觉得本书的后半部分不太容易理解的原因是,它涵盖了我作为一个缺乏经验的年轻开发人员所没有使用过的模式。

本标题还介绍了设计模式背后的概念,涵盖了Christopher Alexander在架构方面的最初工作,以及GoF在SmallTalk中首次实现文档模式。

我认为任何喜欢头部优先设计模式,但仍然觉得GoF非常枯燥的人,都应该看看《设计模式解释》,它是一个可读性更强的选择(尽管没有那么全面)。

其他回答

当我开始使用Java进行开发时(直到今天仍在这样做),我不得不推荐该领域的杰出工作:Mr Bunny’s Big Cup o’Java。

摘自作者的简介:

学习Java最好的方法就是把一个Java编程专家的松果体植入你的大脑。遗憾的是,大多数hmo拒绝为这个挽救职业生涯的程序买单,认为Java太过实验性。对于我们这些等不及全面医疗改革的人来说,终于有了另一种治疗方法。 10个医生中有n个推荐兔子先生的爪哇大杯,这里的n是你想要给容易上当受骗的公众留下深刻印象的任何整数。这本书以对这本书的概述开始,然后迅速展开到书本身。看看涵盖的主题: Java 简而言之,MBBCOJ将教你在今天的兔子开发环境中获得成功的职业生涯所需要知道的一切。

光是对像素的洞察就足以缩短我的软件开发寿命。

我读了大部分在这个问题上得分很高的书,但不是所有的书(感谢上帝!),我马上把其他的书加入了我的亚马逊愿望清单!

(有人应该在亚马逊上为这些书列个清单……也许是一个名为“Stackoverflow有史以来最好的书”的列表?有人知道怎么做吗?)

对我来说,最好的书是《代码完成》。这是一个启示。我买了英语版的第二版,然后是法语版,我仍然认为它应该是任何计算机科学学校的必读书目。数据结构很酷,但代码完整,不是开玩笑,更重要的是…

然后,我的第二本最好的书是《编写可靠的代码》——在学习了如何被理解之后,知道如何编写可靠的代码是非常棒的。

还有很多非常好的书,但这里没有一本值得一提。直到2001年,我认为:框架设计指南:可重用。net库的约定、习惯用法和模式。一个珍宝!这本书我读了很多遍,现在还放在我的桌子上,就在我的液晶显示器旁边,还有《代码完成》(真的!)我喜欢它的写作方式(喜欢这里和那里添加的评论-书都应该这样写!)

但是,我忘记了我读过的第一本书!是他们让我充满激情地爱上了计算机科学:

计算!(C64杂志-永远不会忘记吉姆蝴蝶:o) Borland c++用户指南(旧的,大约1991年,那些试图引入面向对象编程的人,写得非常好)。 大多数微软开发工具用户指南,大约在1990-1995年。不知道是谁写的,但他们很酷!我记得我在周六的深夜读过它们……

问得好:o)

虽然它不是专门针对程序员的,但它非常清楚地解释了现在编程世界中模型驱动架构等正在发生的事情。

对我产生真正影响的第一本书是Tom Swan的Mastering Turbo Assembler。

其他有影响的书有Linus Torvalds和David Diamond的《Just For Fun》,当然还有Andrew Hunt和David Thomas的《The Pragmatic Programmer》。

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