zoukankan      html  css  js  c++  java
  • 《算法导论》为什么经典

    许久,你要我写的东西对非技术类没少依赖于博客。来自0学习技术的开始。你会遇到很多类似的问题,我把他们失望。它会给人帮。

    但是,非技术性的东西。他还写信给自己看的,在不存在的“我想小”转换成“我想为大”之前(看了刘未鹏的博客后的感触),我不须要别人的理解和同情。再者,即使面对面交流,也不能保证使一个人全然理解还有一个人,更何况活的思考变成死的文字。

    然而今天。我仅仅是想把憋在心里的话写出来。人的层次并不同样。譬如很多计算机专业的学生在进入大学之前已能熟练编程。而我其时还连光驱和光盘都弄不清楚。我仅仅是也想在这里说说自己一直放在心里没有说的话,来我博客的朋友请略过这一篇。

    事情源于一次对照。

    近期学习网络流算法,啃了国内一本知名的算法教材好几天。通过不断反复倒是熟记了非常多基本概念,可是记住的概念越多。心里的问号越多。对于算法学习来说,死记硬背算法是非常低效的。我于是翻开《算法导论》。交叉学习。看了《算法导论》几页,发现两本书解说方式上有非常大的不同,简单对照方下:《算法导论》中,第26章讲网络流算法,总共用了35页(翻译过来的中文版)。使用了10组演示图片,总共使用了64行伪代码。国内的那本知名教材,解说相同内容的网络流算法。用了40页,4张图片,没有一张图片是用来演示算法运行流程的,最让我惊讶的是,在40页的算法解说中,C++代码超过了20页!

    64行伪代码和超过20页的C++代码,这巨大的反差。使我对国内那本教材很失望和惋惜。

    这让我想到霍金引用过的一句话,大意是书中每一条物理公式会使读者的数量降低一半。相同,对于解说算法的书。代码的行数是与书的可读性成反比的。代码是很有个人特色的,看到与自己风格不同的代码。不自觉就会产生一种排斥的心理。更不用说我们国内教材中的代码:风格混乱,字体难看,纸张低劣。印刷错误。最让我痛苦的是。完整的代码被分割得很碎,配合着解说算法的须要,这里撒一小块,那里撒一小块,我常常为了一个莫名其妙的变量和函数调用到处在前面的书页中找它的意义。或者依据上下文去猜它的意义。代码中不可避免地要用到如栈、队列、链表等这些基本数据结构,为了能集中精力讲算法,这些数据结构的实现代码是不应该贴上来的,所以仅仅好杜撰一些名称,用惯了STL,我对这些不遵守STL中的约定的代码很反感。一边看书我一边提醒自己,知道这些代码表示什么意思即可了。不是必需对这些代码这么认真。我想,作者的初衷是为了有用,我细致读了些代码,感觉作者对算法的实现是很精简的,代码的细节也处理的很好。可是很可惜,代码中有太多的细节了,一门生僻的伪代码又会加重读者的负担,两难的选择。

    假设说这本教材让我感到惋惜。那么其他的教材,书店里铺天盖地的基础教程、新手教程,就让人愤慨了。

    虽然电子工业出版社和机械工业出版社不断推出让人一看就想买下来的书。这却对教材没有产生不论什么的影响。回忆我大学时候的教材,C、C++、数据结构、算法,当中充斥着大量风格糟糕的代码:没有缩进,没有凝视、变量名一律abcd或者汉语拼音。我当时痛苦地写着这种代码,在我上C++课时看到老师在黑板上写下int anIntVar;这种语句时。我为这个变量名兴奋了好久。

    随着写的代码多了起来,与非教材类的经典技术书籍的接触多了起来,我对大学的教材和课堂的失望和反感也与日俱增。

    大学里那些理论性强的专业课的教材,非常多地方明明几句话就能够点透的东西,却啰哩啰嗦晦涩难懂的讲上一大堆。在须要细致解说的时候。却往往又一句话带过,似乎唯恐不能炫耀其高超的水平。那些艰涩的文字,读完非常多遍才发现也只是就是那么回事,真让人认为,採用这种方式解说的目的,就是由于对真正的难题束手无策,才专门在这些小问题上大做文章。

    既没有数学的简洁直接,又不通俗,一句话:入的貌似非常深。出的绝对不浅。

    这些烂教材和烂书导致了一个更严重的后果:真正好的教材被忽视了。而今,一提起“教材”这个词语,我们的印象就是一堆内容陈腐、解说死板、形式僵化、专门用来应付考试的垃圾纸。这使得那些教材中十分珍贵的精华被一起当成了垃圾。考完试就随手抛掉。这对不论什么一方,都是巨大的浪费。

    其实,大学的专业课教材有些并不比那些经典著作省钱。为什么我们在课堂上就仅仅能看到那些纸张低劣的教材,既然自己没有好的,为什么不“拿来”更好的?

    上面这些仅仅是我的牢骚,我刚上大学时对计算该机是白痴,经常得到很多容易混淆的名词,在课非常多,我看不出它和电脑有任何接触,教师不从这些教训除了说话有什么,所以经常逃课,等到教训是非常有用的知道逃跑的时候。该课程已完成的测试。我们已经积累了很多不满。但我也读了很多我最博客的启示,我们看到了很多很好的技术作家写作。去怨怨。我是充满希望。只是感觉,需要时间。

  • 相关阅读:
    10.用户管理
    9.更新系统时间
    8.标准输入输出重定向
    7.文件压缩与find命令
    6.Linux文件的详细属性
    5.Linux基础命令
    4.Linux目录结构
    3.磁盘光驱挂载
    2.xshell连接
    javascript中的location的用法
  • 原文地址:https://www.cnblogs.com/zfyouxi/p/4567402.html
Copyright © 2011-2022 走看看