如果你能回到过去,告诉自己在开发人员职业生涯的开始读一本书,你会读哪本书?
我希望这份清单是多样的,涵盖范围很广。
搜索:使用右上角的搜索框。要搜索当前问题的答案,使用inquestion:this。例如:
inquestion:this "Code Complete"
如果你能回到过去,告诉自己在开发人员职业生涯的开始读一本书,你会读哪本书?
我希望这份清单是多样的,涵盖范围很广。
搜索:使用右上角的搜索框。要搜索当前问题的答案,使用inquestion:this。例如:
inquestion:this "Code Complete"
当前回答
Kernighan和Plauger的编程风格元素。 它说明了噱头-聪明和优雅-聪明之间的区别。
其他回答
兔子先生的ActiveX指南
另外,我想提到休·达文和CJ·戴特的《第三个宣言》。如果你对理解数据感兴趣(这在程序员中似乎并不常见),这本书是必读的。当您意识到SQL有多么糟糕时,它也会让您感到悲伤,但它也会帮助您应对这种破坏。了解工具是如何损坏的,可以让您在设计时牢记这些缺陷。
代码完成是第一选择,但我也会引用Gang of Four的设计模式和Craig Larman的应用UML和模式。
克里斯托弗·亚历山大(Christopher Alexander)的《永恒的建筑方式》(The Timeless Way of Building)是另一个伟大的作品。尽管它是关于架构的,但它包含在我已经读过的许多优秀编程书籍的参考书目中。
另一本,我从中学到很多新东西,是克里夫顿·诺克的《数据访问模式》。
《人工智能编程范式:通用Lisp的案例研究》,作者Peter Norvig
我开始读它是因为我想学习通用Lisp语言。当我读到一半的时候,我意识到这是我迄今为止读过的关于编程的最好的书。
虽然我同意上面的许多书都是必读的(实用程序员、神秘的人月、计算机编程艺术和SICP立刻映入我的脑海),但我想走一个稍微不同的方向,推荐Edsger Dijkstra的《编程规程》。尽管它已经有32年的历史了,但它对“可验证性设计”的强调仍然非常重要(即使“可验证性”意味着“证明”而不是“单元测试”)。