每一位计算机爱好者都需要一个坚实的图书馆来寻找灵感以及查找参考资料。这儿的列表能给你一些你想要的东西,里面既有计算机科学的顶级大学教材,也有对业界的真知灼见,还有你不可或缺的参考书籍
人月神话:软件工程评述-周年版
Fredrick P. Brooks著
这本论述软件工程中人的因素的经典著作出版于1975年。这些年来,技术已经发生了很大的变化,但是人的因素还是和原来一样让人头痛。这是一本有深刻洞察力的书籍,也是一本在业界非常著名,常常被引用的书籍。《人月神话》概括了许多在大中型项目中经常遇到的,也是非常致命的问题。它提出了2条著名的准则:
◦人月神话:向一个已经延后的项目中投入更多的人力资源只会让它更延后
◦没有银弹:没有一种策略,技术或者技巧可以极大地提高程序员的生产力
我不仅向程序员推荐这本书,也想任何一个项目管理人员推荐这本书。项目经理和程序员都会喜欢布鲁克斯清楚而明晰的观点。
C 程序设计语言(第二版)
这是一本权威的C语言参考书籍,人们通常叫它K&R。它无比精炼,同时也能恰到好处地给初学者提供足够的信息。K&R提供的信息刚好是你需要的,不多也不少。274页的篇幅是你说能发现的参考书中最紧凑的。我敢说Java的作者是很难写出如此简明扼要的著作。
这本书适合任意一个学习C语言或者想寻找C语言参考书的人。K&R也是任何一位想撰写语言参考或者技术著作的人必读的书目。
如果你没有任何的编程经验,K&R不太适合做为起点。但是如果你足够有冲劲的话,它还是能让你学到不少东西。初学者需要去买一本答案,它提供了所有练习的详细解释。
计算机程序设计与解释 (第二版)
Harlod Abelson和Gerald Jay Sussman著
SICP是一本被很多顶级高校,诸如加州大学伯克利分校,麻省理工学院等,使用的入门书籍。它用Scheme语言介绍了许多强大的范例,比如递归,lamda表达式,抽象以及解释性语言。
我发现这本书做为入门教材是难以想象的厚重。我工作了几年并且对这些东西有了更深的了解以后,再来重新读这本书,仍然学到了很多东西。
如果你在课堂上没用到这本书,我推荐你把它找来仔细看看自己遗漏了什么,特别是你没用使用过LISP这样的语言的话。
代码大全2:软件架构的实用手册
Steve McConnell著
《代码大全2》是一本在软件架构方面得到高度评价的书。McConnell在书中定义了主要的编程和调试的架构,也阐述了一些架构设计,详细设计,单元测试,整合和整合测试的内容。
这本书的主要目的是让你写出更好的代码。McConnell涉及了包括管理软件复杂度,重构,代码风格和写出优美的注释等方方面面的内容。
这本书推荐给任何一个想写出健壮的代码的人。当你学习到了良好的代码实践,那么你就会节约很多起步的时间;同时,它对于有多年经验的程序员也能帮助他们改变自己不好的开发习惯。
算法简介
Thomas H. Cormen,Charles E. Leiserson,Ronald L. Rivest 和 Clifford Stein著
这是另外一本教材。《算法简介》也许是大学中使用的最多的算法教材。它同时也是一本非常好的参考书。
尽管在实际情况中大部分程序员在生产环境中都不会自己去写诸如快速排序这样的算法实现,但是算法知识是了解你所应用的库以及你自己代码实际效率的基础。
《算法简介》被推荐给任何一个想完善自己算法技巧的开发人员,它也被推荐给那些对NP完备性,随机算法,快速傅立叶变换等课题感兴趣的人。阅读这本书也需要良好的数学知识。
设计模式:可复用的面向对象软件的原则
Erich Gamma,Richard Helm,Ralph Johnson和John M. Vlissides著
这本书阐述了各种面向对象的设计模式。对于书中23种模式的每一种,作者都给出了深度分析,这些分析包括清晰的示例,常见的缺陷,相关的模式,用C++或者SmallTalk写的示例代码。这些模式涵盖了单件模式,观察者模式,模板方法模式,迭代器模式和代理模式。
这本书对于使用面向对象语言的中级或者高级开发者是必读书目。刚刚进入面向对象开发的开发人员最好在掌握了面向对象语言以及在非实验性项目中深入实践以后再来学习里面的模式。否者你学到的东西不可能是很牢靠的。
编程珍珠 (第二版)
Jon Bentley著
这本书在学习解决问题的技巧方面非常突出。15章的每一个章节都对应着一个任务,例如排序电话号码,创建回文词或者搜索文本。Bentley先定义问题,然后再提出不同的解决方案,提供了讨论和对每个解决方案清晰的分析,最后再给出了编程的基本原则。
《编程珍珠》包含了一些非常聪明的主意,它们可以用来做为解决一些小问题的时候做为参考。但是这本书更有用的地方是如何从工程师的角度解决问题。
我把这本书推荐给每一位享受编程工作的人。
编译器:原则,技术和工具
Alfred V. Aho, Ravi Sethi 和Jeffrey D. Ullman著
《编译器:原则,技术和工具》通常被叫做“龙书”(封面上有一条红色的龙)。它是编译原理课堂上的标准图书。它涵盖了你想知道的编译器的各方面:文法,分析器,词法分析,语法,中间语言的产生,运行时环境,优化等等。如果你对这些东西还没有足够的了解的话,那么你就要准备去学习一些新的术语和概念,比如确定性有限自动机,有限状态自动机,LR剖析器等等。
我很喜欢龙书的各部分并且对里面的数学概念和理论很感兴趣(它们贯穿了整本书)。如果你很喜欢正则表达式和状态机,那么你会很喜欢这本书。另外一方面,如果你想知道一些现代编译器的实现原理,你可能无法在里面找到你所需要的东西。龙书是1986年出版的,不能涵盖这些现代的话题。
Unix强大工具 第三版
Shelley Powers,Jerry Peek,Tim O' Reilly和Mike Loukides著
这本书是O'Reilly出版社出版的很多伟大著作中的一本。《Unix强大工具》达到了1200页,完全描述了Unix下面命令行工具,用法,脚本语法示例。
《Unix强大工具》是一本组织的非常好的参考书。如果你依次读下去,你会发现自己会变成让人惊讶的计算机瘾君子典型代表。
这本书里面大部分内容都可以在Google上面搜索到,但是有时候我们也需要这样一本很好的参考书。
这本书是为数不多的适合于初学者和专家的书籍之一。不管是Unix新手还是有多年经验的系统管理员都能从这本书获益。
便车旅行者指南终极收藏版:5部完整的小说和一个故事
Douglas Adams著
这不是一本技术书籍。但是如果你没读过这部便车旅行者三部曲,你就不可能摘掉计算机瘾君子的帽子。它其实包含了5本书,《银河便车指南》,《宇宙尽头的旅馆》,《生活,宇宙和一切》,《再见,谢谢那些鱼》,《大部无害》,再加上一篇短篇小说《小柴法德谨慎行事》
在发现对生活,宇宙和一切的答案中找到愉悦。学习如何制作Pan Galactic Gargle Blaster(这应该是一种饮料,但是不知道怎么翻译。出处在这儿:http://ywsl.com/bbs/bbsshow.aspx?id=42780
The Hitch Hiker's Guide to the Galaxy also mentions alcohol. It says that the best drink in existence is the Pan Galactic Gargle Blaster.It says that the effect of a Pan Galactic Gargle Blaster is like having your brains smashed out by a slice of lemon wrapped round a large gold brick.
),而这一切都是毫不痛苦的。
这个版本有漂亮的黑色皮革封面,还有丝带书签。阅读的时候就好像在读一本很好的圣经,而且还更可信。(我要在某些喜欢争辩的人发现我之前收回我的话,这只是一个玩笑而已啦)
这就是我最喜欢的9部半书籍,你会把哪些放在你的书架上?