如果你能回到过去,告诉自己在开发人员职业生涯的开始读一本书,你会读哪本书?
我希望这份清单是多样的,涵盖范围很广。
搜索:使用右上角的搜索框。要搜索当前问题的答案,使用inquestion:this。例如:
inquestion:this "Code Complete"
如果你能回到过去,告诉自己在开发人员职业生涯的开始读一本书,你会读哪本书?
我希望这份清单是多样的,涵盖范围很广。
搜索:使用右上角的搜索框。要搜索当前问题的答案,使用inquestion:this。例如:
inquestion:this "Code Complete"
当前回答
我认为代码完整将是这个问题中非常受欢迎的一个,对我来说,它纠正了我的许多坏习惯,并重新肯定了我的好实践。
对于我的Perl背景,我非常喜欢Damian Conway的Perl最佳实践。如果不使用风格和最佳实践,Perl可能是一种令人讨厌的语言,这就是我在阅读(有时编写)的脚本中看到的情况。
我喜欢Head First系列,它们非常好,当你没有心情阅读更严肃的书籍时,它们很容易阅读。
其他回答
这不是一本严格意义上的开发书籍,我相信我在其他地方提到过它,但我真的认为所有开发人员都应该读这本书,从php到Java再到汇编开发人员。
Code
它汇集了计算机的底层原理,为什么不应该浪费内存,以及计算史上一些更有趣的部分。这是对计算机及其内容的介绍。它让我对低级编程产生了极大的热情,并且比其他任何计算机都更能帮助我理解指针和内存。
我读了大部分在这个问题上得分很高的书,但不是所有的书(感谢上帝!),我马上把其他的书加入了我的亚马逊愿望清单!
(有人应该在亚马逊上为这些书列个清单……也许是一个名为“Stackoverflow有史以来最好的书”的列表?有人知道怎么做吗?)
对我来说,最好的书是《代码完成》。这是一个启示。我买了英语版的第二版,然后是法语版,我仍然认为它应该是任何计算机科学学校的必读书目。数据结构很酷,但代码完整,不是开玩笑,更重要的是…
然后,我的第二本最好的书是《编写可靠的代码》——在学习了如何被理解之后,知道如何编写可靠的代码是非常棒的。
还有很多非常好的书,但这里没有一本值得一提。直到2001年,我认为:框架设计指南:可重用。net库的约定、习惯用法和模式。一个珍宝!这本书我读了很多遍,现在还放在我的桌子上,就在我的液晶显示器旁边,还有《代码完成》(真的!)我喜欢它的写作方式(喜欢这里和那里添加的评论-书都应该这样写!)
但是,我忘记了我读过的第一本书!是他们让我充满激情地爱上了计算机科学:
计算!(C64杂志-永远不会忘记吉姆蝴蝶:o) Borland c++用户指南(旧的,大约1991年,那些试图引入面向对象编程的人,写得非常好)。 大多数微软开发工具用户指南,大约在1990-1995年。不知道是谁写的,但他们很酷!我记得我在周六的深夜读过它们……
问得好:o)
我已经有一段时间了,所以我发现的大多数有影响力的书在今天并不一定适用。我相信理解你所开发的平台(包括硬件和操作系统)是非常重要的。我也认为从别人的错误中学习很重要。所以我想推荐两本书:
计算灾难和寻找愚蠢:二十多年的高科技营销灾难
Pro Spring是对控制反转和依赖注入世界的一个极好的介绍。如果你不了解这些实践和它们的含义,那么Pro Spring中主题和技术细节的平衡是非常出色的。它建立了一个伟大的案例和随之而来的个人基础。
我建议的另一本书是Robert Martin的《敏捷软件开发》(ASD)。代码味道、敏捷技术、测试驱动开发、原则……许多不同编程方面的良好平衡。
更传统的经典著作包括臭名昭著的GoF设计模式,Bertrand Meyer的面向对象软件构建,Booch的面向对象分析与设计,Scott Meyer的“有效的c++”系列,以及Gunderloy写的一本不太出名的书,《编码员到开发人员》。
虽然书很好……别忘了收音机!
... 我再补充一点。如果你还没有发现过狩猎,那就来看看吧。它比堆栈溢出更让人上瘾:-)我发现,以我的谷歌类型的习惯——我需要更昂贵的订阅,这样我就可以在任何时候看任何一本书——但我会向任何有兴趣的人推荐这个试验。
(啊,是的,今天来点obj-C,明天来杯可可,花样?soa ?那本食谱里的例子是什么?史蒂夫在第二版里说了什么?我应该买这本书吗?... 如果你想要一些连续性和上下文,像这样的订阅是很好的…)
《Effective c++》和《More Effective c++》作者:Scott Myers。