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

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

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

inquestion:this "Code Complete"

当前回答

唐纳德·诺曼,《日常用品的设计》

不是关于编程本身,而是关于世界上的事物应该如何工作——这是一种可用性心理学。

在设计终端用户界面和api方面,这对我来说是无价的。

其他回答

我想到了三本书。

《Unix编程的艺术》作者:Eric S. Raymond。 Rick Cook编译的魔法。 Donald Knuth的《计算机编程的艺术》。

我也喜欢保罗·格雷厄姆的作品。

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

Steve McConnell的《Code Complete》获得了很多人的支持,但是他的《软件项目生存指南》这本书呢?我认为它们都是必读的,但原因不同。

虽然我同意上面的许多书都是必读的(实用程序员、神秘的人月、计算机编程艺术和SICP立刻映入我的脑海),但我想走一个稍微不同的方向,推荐Edsger Dijkstra的《编程规程》。尽管它已经有32年的历史了,但它对“可验证性设计”的强调仍然非常重要(即使“可验证性”意味着“证明”而不是“单元测试”)。

我是Robert C. Martin的大多数书籍的忠实粉丝,尤其是敏捷软件开发、原则和实践以及干净的代码:敏捷软件工艺手册。