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

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

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

inquestion:this "Code Complete"

当前回答

明确的软件工艺

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

这本书解释了很多关于软件工程、系统开发的东西。理解不同类型的产品开发之间的差异也非常有用:web VS收缩包装VS IBM框架。当人们构思瀑布模型时,他们的想法是什么?读了这篇文章,我们就会明白(希望如此)

其他回答

去年我上了很多课。我读

创新者的困境(颠覆性技术) 神秘的人月(管理软件) 跨越鸿沟(启动) 数据库管理系统,牛书 编程c#,鸵鸟书 开始iPhone开发,葡萄柚书

每本书都很棒,但是克莱顿·克里斯滕森的《创新者的困境》(1997!!)确实是一本很棒的书,它让我真正思考了现代软件世界。要解决的挑战是颠覆性技术,以及磁盘驱动器公司和非技术公司如何总是被新的、改变游戏规则的技术所颠覆。当人们想到谷歌,可能是最大的“网络”公司时,它给了人们一个新的视角。为什么他们什么都要插手?这是因为他们不希望自己的地位被新事物打乱。谷歌上的预告已经足够让人理解了。读它!

计算机科学家的离散数学http://ecx.images-amazon.com/images/I/51HCJ5R42KL._SL500_BO2,204,203,200_AA219_PIsitb-sticker-dp-arrow,TopRight,-24,-23_SH20_OU02_.jpg

《计算机科学家的离散数学》作者J.K. Truss。

虽然这并没有教你编程,但它教会了你每个程序员都应该知道的基本数学。你可能还记得大学里的这些东西,但实际上,学习谓词逻辑会提高你的编程技能,如果你想用集合编程,你需要学习集合论。

这里确实有很多有趣的信息,可以让你从不同的角度思考问题。它很方便,只是偶尔拿起来学习一些新东西。

虽然它不是专门针对程序员的,但它非常清楚地解释了现在编程世界中模型驱动架构等正在发生的事情。

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

Steve MacGuire的《编写可靠的代码:微软开发无错误C程序的技术(微软编程系列)》。

有趣的是,这里提到的书中有很大一部分是C/ c++的书。