你这辈子可能都不需要看《计算机程序设计艺术》了!

“欣哥, 我什么时候可以看《计算机程序设计艺术》? ”

“你这辈子可能都不需要看了!”

我在大学的时候并不知道《计算机程序设计艺术》(简称TAOCP)有多牛,他的作者有多牛,人家计划写七卷,写了三卷以后,图灵奖的评委们就“迫不及待”地把图灵奖版给他了。 

我只是看到了比尔盖茨的一句话:

“如果你完完整整读完了《计算机程序设计艺术》,请立刻给我发一份简历。”  

我立刻就跑到图书馆去,翻出了那本泛黄的,破旧的《计算机程序设计艺术》,准备看完后给盖茨发简历。

这本书一开始就是数学准备,讲归纳法,幂,对数,排序和阶乘,几乎全是数学公式,我一看到数学就头大,特别是觉得这些东西高中应该掌握了,于是果断跳过。 

然后的章节就把我镇住了,这是什么算法书啊!一开头居然自定义一个了虚拟的计算机,附带了一套自定义的汇编语言,然后书中的算法都用自己的汇编语言来写, 截个图大家感受下:

用汇编写算法,这不是自虐吗? 为啥不用C语言? C语言也很贴近硬件啊!

哦,这本书出版的时候(1968年)C语言还没诞生(1972年)呢!  

Kunth 老爷子选择自创汇编,除了迫不得已,还有可能是语言会随着时代潮起潮落衰落,而汇编将会永恒。

我释然了,放弃了, 决定不再给比尔盖茨发信了。 

我很清楚自己有几斤几两,这本充满着数学和汇编的书并不是为我等凡夫俗子缩写,我还是老老实实地去看我的数据结构和算法的教科书把。 

Knuth说过: “要是看不懂 TAOCP,就别当程序员。”  

显然Knuth是错的, 我还是成了一个程序员。

工作以后,我还买了一本,放到书架上来装点门面,显得自己非常高深的样子。  

有一次被同学看到了,调侃似地问我:“你真的把这本书看完了? 给比尔盖茨发简历没有?” 

我无言以对,默默地把它从书架上抽出来,放到了箱子的最底部,然后换上了一本《算法导论》 。

后来这个“可恶”的同学又来了,惊讶问我:“你把《算法导论》看完了? 厉害啊!”

于是我默默地把《算法导论》 也抽了出来,换上了一本《算法》。没错,这就是我一直推荐的一本算法书,适合我等凡夫俗子阅读。 

如果你不是做算法分析的,我不建议你去碰《计算机程序设计艺术》这个圣经了。有啃这本书的时间,我觉得还不如自己去折腾个操作系统出来,要有意思得多。

展开阅读全文

没有更多推荐了,返回首页