如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
计算机科学必读经典前天看到pongba说好书太多以致于没时间写博客,深有同感.架子上目前放着DreaminginCode和TAoCP第四卷第三册,手不释卷,以至于三上时间都不放过.细想自己读过的好书不少(至于烂书,只能用无数这个词来衡量了),勉强回忆了一些让自己印象深刻的,写一两句话的点评,算是我眼中的必读经典吧.计算机程序的构造和解释(SICP)堪称是MIT计算机系的镇山之宝之一,书中通过展示LISP语言和程序设计两条主线,向读者展示了程序设计的几乎所有重要概念.数十年来各种语言层出不穷,MIT依然故我给入学本科生教LISP.LISP这种函数式的语言,和过程语言相比,理论更加优美(lambda演算),描述更加简洁.现代的动态语言如Javascript,Python和Ruby都或多或少被LISP影响.任何想写具有清晰结构,或者正确思路的程序的人,都应当阅读这本书.好消息是,这本书是可以在线免费看的.TheArtofComputerProgramming(TAOCP)计算机程序设计艺术(TAOCP)是计算机领域的一部未完成的里程碑.如果之前没有听过它的大名,那就不算学过计算机科学.Knuth(中文名高德纳)阅读文献无数,博古通今,文风幽默.书中讲解细致深入,大开大阖.如果说SICP是练童子功的话,这本书就是属于名门正派的顶极内功.TAoCP上往往一个普通的习题,就是一个很经典的结论;往往不经意的一句话,就是一个巧妙的算法.Knuth常常把貌似不相关的结论深刻的联系在一起,比如我现在读的第四卷第二册上九连环问题和Gray码是深刻联系的,易经和生物遗传密码子也是有对应关系的(当然不是民科说的那种).如此的打通任督二脉的例子和习题俯拾皆是,真的是穷人进了皇宫的感觉.即使对于面试工作,这套书也是值得一翻的:在Google面试的时候,面试官问一道题目,我很快给了一个答案,其中用到了一个不太显然的结论.面试官问,这个结论怎么来的?我说,TAOCP第二卷讲了这道题目的一个推广情形.面试官说,这道题目就是看面试的有没有看过TAOCP.我看很多人面试之前都在网上疯狂做题,尚不能穷其一隅.其实读过TAoCP的人极少会害怕面试的时候那些技巧性的问题.万变都极少超出TAOCP划出的框架.www.docin.com算法导论(IntroductiontoAlgorithm),在圈子里常常按四个作者的首字母写成CLRS,算是对不愿意看或者看不懂TAOCP的人送上了半个梯子(还有半个当属具体数学ConcreteMathematics).这本书在美国大部分大学中被列为算法类教材,在国内也是ACM竞赛集训必看的教材之一.虽然名字里面带一个导论,内容却一点不含糊.在我个人看来,其内容基本覆盖绝大多数常用的算法,在NP复杂性理论以及近似算法方面也有所涉及.这本书最好的地方是习题详细且全部没有答案,非常适合作为大学课本和ACM讨论班阅读材料,最坏的地方也在于没有答案,对于自学者来说,可能会觉得枯燥无味且困难重重.另:如果有淘老书的习惯,不妨选择TheDesignandAnalysisofComputerAlgorithms(计算机算法设计与分析)这本书在CLRS出现之前绝对是算法教材一哥.可惜这本书一直没有更新,CLRS才以算法多而全取胜.这就是著名的龙书(DragonBook)啦.和上面的TheDesign一样,都是Stanford教授JeffreyD.Ullman的巨著.计算机的历史很大程度上是编译器发展的历史.当年Knuth就是因为写了Alogo60编译器后,Addison-Wesley过来找高爷爷约稿,1962年的时候就让他写本编译器的书.Knuth写啊写啊,发现写了很久还没写到主题.那边编辑急了,说你都写了3000页手稿了,你还不交稿.高爷爷说,这个,我还没写到正题呢.书商说,算了,你出多卷本吧.于是才有了TAoCP.这个小故事也就说明计算机编程的发展史和编译器的发展史是平行的.龙书基本上框出了一个编译器的架子,从词法句法分析到类型分析代码生成.新版加入了JIT,垃圾收集等现代特性.这部巨作的作者阵容也是强大的:AlfredVainoAho是grep和awk的作者.RaviSethi以前在Bell实验室,现在好像是朗讯的首席技术官.Avaya实验室的头.至于JeffreyUllman这个老头,好玩的趣事就更加多了,比如他是SergeyBrin的导师,他有两大不回信原则:陶瓷信不回,问书后习题信不回.[underconstruction,morelate