如果你能回到过去,告诉自己在开发人员职业生涯的开始读一本书,你会读哪本书?
我希望这份清单是多样的,涵盖范围很广。
搜索:使用右上角的搜索框。要搜索当前问题的答案,使用inquestion:this。例如:
inquestion:this "Code Complete"
如果你能回到过去,告诉自己在开发人员职业生涯的开始读一本书,你会读哪本书?
我希望这份清单是多样的,涵盖范围很广。
搜索:使用右上角的搜索框。要搜索当前问题的答案,使用inquestion:this。例如:
inquestion:this "Code Complete"
当前回答
推荐用于Windows程序员,编程Windows
其他回答
务实程序员
当我开始使用Java进行开发时(直到今天仍在这样做),我不得不推荐该领域的杰出工作:Mr Bunny’s Big Cup o’Java。
摘自作者的简介:
学习Java最好的方法就是把一个Java编程专家的松果体植入你的大脑。遗憾的是,大多数hmo拒绝为这个挽救职业生涯的程序买单,认为Java太过实验性。对于我们这些等不及全面医疗改革的人来说,终于有了另一种治疗方法。 10个医生中有n个推荐兔子先生的爪哇大杯,这里的n是你想要给容易上当受骗的公众留下深刻印象的任何整数。这本书以对这本书的概述开始,然后迅速展开到书本身。看看涵盖的主题: Java 简而言之,MBBCOJ将教你在今天的兔子开发环境中获得成功的职业生涯所需要知道的一切。
光是对像素的洞察就足以缩短我的软件开发寿命。
我回答这个问题已经晚了,但显然我还有一些独特的东西可以提供……Barry Boehm写的《软件工程经济学》,总结一下,如果你想要真正提高软件的生产力,就需要更好的人,因为更好的工具、硬件、语言、方法等都会产生边际影响。只有优秀的人才能显著提高生产率。我强调,这是更好的工程师,而不是更多的工程师!
这本书不像《Coders At Work》那样能让你带着上床睡觉,而是能让你深刻体会到我们这个行业一直在努力牢记在心的教训。以离岸为例,这是一种虚假的经济,Boehm的模型预测,如果有的话,也只会产生边际的积极影响。来看看。
好吧,所以问题不是“最好的编程书是什么”,而是“如果你能告诉自己在职业生涯的开始应该读什么”……
可能是“On Lisp”和SICP,再加上一个CLRS或Udi Manber的“算法:一种创造性的方法”。
算法介绍由Udi Manber http://vig-fp.prenhall.com/bigcovers/0201120372.jpg
前两个课程将教授许多编程技术、模式,并真正打开一个人的思维,发挥他/她自己的创造力;另外两个是不同的。它们更理论化,但也非常重要,专注于设计正确有效的算法(需要大量的数学知识)。
当“优秀编程书籍”的主题出现时,我看到很多人推荐前三本书,但最后一本(Manber写的)是一本很棒的书,但很少有人知道它。真可惜!Manber专注于算法的增量发展,通过使用归纳法进行定理证明。
Alistair Cockburn的《敏捷软件开发:合作游戏》是一本优秀的书,虽然没有得到广泛的赞扬,但却充满了深刻的见解。
它有什么特别之处?好吧,显然每个人都听说过“敏捷”这个术语,而且现在似乎大多数人都是信徒。不管你信不信,敏捷运动存在的背后都有一些深刻的原则。这本书以精确、科学的方式揭示并阐明了这些原则。一些原则是(顺便说一下,这些是我的,不是Alistair的):
团队软件开发中最困难的事情是让每个人的大脑都有相同的理解。我们正在建造巨大的、精细的、复杂的系统,这些系统在有形世界中是看不见的。你越善于让更多的人分享更深入的理解,你的团队在软件开发中就越有效。这就是结对编程有意义的根本原因。大多数人对它不屑一顾(我一开始也这么认为),但有了这个原则,我强烈建议你再试一次。你最终得到了两个深刻理解你刚刚构建的子系统的人……没有多少其他方法可以如此快速地获得如此深入的信息传输。就像瓦肯人的心灵融合。 你并不总是需要用语言来快速表达深刻的理解。一个必然的结果是:太多的词,你就超过了听者/读者的能力,这意味着你试图实现的理解转换无法发生。考虑到孩子们通过“沉浸”和“吸收”来学习如何说语言。不仅仅是语言……他举了一个孩子在地板上玩火车的例子。走过来的是另一个从未见过火车的孩子……但通过观察其他孩子,他掌握了游戏的要点,并与他们一起玩。人与人之间经常发生这种事。这和关于太多单词的推论一起,帮助您了解在旧的“瀑布”时代,试图编写700页详细的需求规范是多么错误。
里面还有很多东西。我现在要闭嘴了,但是我强烈推荐这本书!