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

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

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

inquestion:this "Code Complete"

当前回答

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

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

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

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

其他回答

计算机科学家的离散数学http://ecx.images-amazon.com/images/I/51HCJ5R42KL._SL500_BO2,204,203,200_AA219_PIsitb-sticker-dp-arrow,TopRight,-24,-23_SH20_OU02_.jpg

《计算机科学家的离散数学》作者J.K. Truss。

虽然这并没有教你编程,但它教会了你每个程序员都应该知道的基本数学。你可能还记得大学里的这些东西,但实际上,学习谓词逻辑会提高你的编程技能,如果你想用集合编程,你需要学习集合论。

这里确实有很多有趣的信息,可以让你从不同的角度思考问题。它很方便,只是偶尔拿起来学习一些新东西。

虽然不是严格意义上的软件开发书籍,但我强烈推荐《Don’t Make me Think!》列入这个名单。

管理千兆字节是思考繁重的信息工作的经典。

用Scrum进行敏捷软件开发,作者:Ken Schwaber和Mike Beedle。

我将这本书作为理解敏捷开发的起点。

Schaum的《c++编程大纲》,作者John R Hubbard。

这是我读的第一本编程书,那时我刚开始学习c++。这是一个看到我对编程感兴趣的人送给我的。这本书非常适合初学者——它从基本概念开始,一直到模板和向量。所举的例子非常相关。这本书让你思考和提出更多的问题,并亲自尝试一些事情。