如果你能回到过去,告诉自己在开发人员职业生涯的开始读一本书,你会读哪本书?
我希望这份清单是多样的,涵盖范围很广。
搜索:使用右上角的搜索框。要搜索当前问题的答案,使用inquestion:this。例如:
inquestion:this "Code Complete"
如果你能回到过去,告诉自己在开发人员职业生涯的开始读一本书,你会读哪本书?
我希望这份清单是多样的,涵盖范围很广。
搜索:使用右上角的搜索框。要搜索当前问题的答案,使用inquestion:this。例如:
inquestion:this "Code Complete"
当前回答
Pragmatic程序员做得很好。然而,当我刚开始工作的时候,真正影响我的是:
Windows 95系统编程秘密
我知道——它听起来和看起来有点俗气,可能有点过时了——但这是基于作者(Matt Pietrek)使用他自己的工具(随书提供的代码)调查的Win95内部结构的一个很棒的解释。请记住,这是在整个开源事件之前,微软仍然对发布内部文档非常谨慎——更不用说源代码了。 里面有一些引用,比如“如果你正在解决一些问题,遇到了一些症结,那么你需要停下来,真正深入地研究它,真正理解它是如何工作的”。我发现这是一个非常好的建议——尤其是现在,当你经常有图书馆的源代码,可以去看看。 它也激励我享受深入研究系统工作原理的乐趣,这在我的职业生涯中被证明是非常宝贵的。
哦,我还想介绍一下Don Box对。net内部的解释。
其他回答
Steve McConnell的《Code Complete》获得了很多人的支持,但是他的《软件项目生存指南》这本书呢?我认为它们都是必读的,但原因不同。
如果你在Unix/Linux/MacOS等环境下工作,你必须阅读已故W Richard Stevens的《Unix环境下的高级编程》(也被称为APUE)。如果你不知道文件描述符是如何工作的,或者什么是会话,或者当你守护自己的时候你应该做的所有事情(承认吧,你不知道),那么这本书会告诉你。
之后你会觉得有点不专业,但是如果你想在Unix环境下成为一个专业的程序员(任何语言),你需要阅读这篇文章。
Pro Spring是对控制反转和依赖注入世界的一个极好的介绍。如果你不了解这些实践和它们的含义,那么Pro Spring中主题和技术细节的平衡是非常出色的。它建立了一个伟大的案例和随之而来的个人基础。
我建议的另一本书是Robert Martin的《敏捷软件开发》(ASD)。代码味道、敏捷技术、测试驱动开发、原则……许多不同编程方面的良好平衡。
更传统的经典著作包括臭名昭著的GoF设计模式,Bertrand Meyer的面向对象软件构建,Booch的面向对象分析与设计,Scott Meyer的“有效的c++”系列,以及Gunderloy写的一本不太出名的书,《编码员到开发人员》。
虽然书很好……别忘了收音机!
... 我再补充一点。如果你还没有发现过狩猎,那就来看看吧。它比堆栈溢出更让人上瘾:-)我发现,以我的谷歌类型的习惯——我需要更昂贵的订阅,这样我就可以在任何时候看任何一本书——但我会向任何有兴趣的人推荐这个试验。
(啊,是的,今天来点obj-C,明天来杯可可,花样?soa ?那本食谱里的例子是什么?史蒂夫在第二版里说了什么?我应该买这本书吗?... 如果你想要一些连续性和上下文,像这样的订阅是很好的…)
重构
企业应用程序体系结构模式
除了它们在我书架上的排列顺序外,没有特别的顺序:
实用的程序员 福勒的rafacoring 有效地使用Feathers的遗留代码。这实际上是重构的一个伙伴卷。 Fowler提炼的UML。它的其他优点之一是简洁。 Steve Maguire编写的调试开发过程 设计模式(又名“四人组”)由Gamma等人