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

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

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

inquestion:this "Code Complete"

当前回答

Donald Knuth写的《Literate Programming》,这是一本关于代码结构的好书。

其他回答

Martin Fowler的《重构:改进现有代码的设计》已经被列出。但我会详细说明它对我的影响。

整本书的本质是关于如何构造代码,以便人类更容易阅读和理解。它强烈地告诉我,我写的代码是为了让我的同事和后继者消费,并可能从中学到一些好的东西。它激励我有意识地以一种方式编程,让人们赞美我的名字,而不是诅咒我,直到永远。

近年来,它是由“Nicolai M. Josuttis”撰写的“c++标准库”。这是我的圣经。

可选文字 http://ecx.images-amazon.com/images/I/51BT5SKXTCL._SL500_AA240_.jpg

好吧,所以问题不是“最好的编程书是什么”,而是“如果你能告诉自己在职业生涯的开始应该读什么”……

可能是“On Lisp”和SICP,再加上一个CLRS或Udi Manber的“算法:一种创造性的方法”。

算法介绍由Udi Manber http://vig-fp.prenhall.com/bigcovers/0201120372.jpg

前两个课程将教授许多编程技术、模式,并真正打开一个人的思维,发挥他/她自己的创造力;另外两个是不同的。它们更理论化,但也非常重要,专注于设计正确有效的算法(需要大量的数学知识)。

当“优秀编程书籍”的主题出现时,我看到很多人推荐前三本书,但最后一本(Manber写的)是一本很棒的书,但很少有人知道它。真可惜!Manber专注于算法的增量发展,通过使用归纳法进行定理证明。

如果你在Unix/Linux/MacOS等环境下工作,你必须阅读已故W Richard Stevens的《Unix环境下的高级编程》(也被称为APUE)。如果你不知道文件描述符是如何工作的,或者什么是会话,或者当你守护自己的时候你应该做的所有事情(承认吧,你不知道),那么这本书会告诉你。

之后你会觉得有点不专业,但是如果你想在Unix环境下成为一个专业的程序员(任何语言),你需要阅读这篇文章。

尽管我已经从事了多年的专业编程工作,但Rocky Lhotka关于他的CSLA框架的“业务对象”系列还是让我大开眼界。 他的想法让我再次对软件开发模式和理论感到兴奋。它让我对学习如何成为一名更好的开发人员产生了新的兴趣,而不仅仅是学习最新的令人惊叹的控件或库。(不要误解我,我仍然喜欢一本好的技术书籍-你必须跟上!)