许久,你要我写的东西对非技术类没少依赖于博客。

来自0学习技术的开始。你会遇到很多类似的问题,我把他们失望。它会给人帮。但是,非技术性的东西,他还写信给自己看的,在不存在的“我想小”转换成“我想为大”之前(看了刘未鹏的博客后的感触),我不须要别人的理解和同情。

再者,即使面对面交流,也不能保证使一个人全然理解还有一个人。更何况活的思考变成死的文字。然而今天。我仅仅是想把憋在心里的话写出来。人的层次并不同样,譬如很多计算机专业的学生在进入大学之前已能熟练编程,而我其时还连光驱和光盘都弄不清楚。我仅仅是也想在这里说说自己一直放在心里没有说的话,来我博客的朋友请略过这一篇。

事情源于一次对照。近期学习网络流算法,啃了国内一本知名的算法教材好几天。通过不断反复倒是熟记了非常多基本概念,可是记住的概念越多,心里的问号越多。

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

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

一边看书我一边提醒自己。知道这些代码表示什么意思即可了。不是必需对这些代码这么认真。

我想,作者的初衷是为了有用,我细致读了些代码,感觉作者对算法的实现是很精简的,代码的细节也处理的很好,可是很可惜,代码中有太多的细节了,一门生僻的伪代码又会加重读者的负担,两难的选择。

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

随着写的代码多了起来,与非教材类的经典技术书籍的接触多了起来,我对大学的教材和课堂的失望和反感也与日俱增。大学里那些理论性强的专业课的教材,非常多地方明明几句话就能够点透的东西,却啰哩啰嗦晦涩难懂的讲上一大堆,在须要细致解说的时候,却往往又一句话带过,似乎唯恐不能炫耀其高超的水平。

那些艰涩的文字,读完非常多遍才发现也只是就是那么回事,真让人认为,採用这种方式解说的目的。就是由于对真正的难题束手无策。才专门在这些小问题上大做文章。既没有数学的简洁直接。又不通俗,一句话:入的貌似非常深。出的绝对不浅。

这些烂教材和烂书导致了一个更严重的后果:真正好的教材被忽视了。

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

其实。大学的专业课教材有些并不比那些经典著作省钱。

为什么我们在课堂上就仅仅能看到那些纸张低劣的教材,既然自己没有好的,为什么不“拿来”更好的?

上面这些仅仅是我的牢骚。我刚上大学时对计算机是个白痴,常经常得到很多容易混淆的名词,在课非常多,我看不出它和电脑有任何接触,教师不从这些教训除了说话有什么,所以经常逃课,等到教训是非常有用的知道逃跑的时候。该课程已完成的测试,我们已经积累了很多不满。

但我也读了很多我最博客的启示,我们看到了很多很好的技术作家写作,去怨怨,我是充满希望。只是感觉,需要时间。

转载于:https://www.cnblogs.com/bhlsheji/p/4581168.html

《算法导论》为什么经典相关推荐

  1. C#经典算法实践,回顾往生,更是致敬《算法导论》

    该文章的最新版本已迁移至个人博客[比特飞],单击链接 C#经典算法实践,回顾往生,更是致敬<算法导论> | .Net中文网 访问. 概述 本系列博文将会向大家介绍本人在钻研<算法导论 ...

  2. 【算法导论学习-29】动态规划经典问题02:最长公共子序列问题(Longest common subsequence,LCS)...

    2019独角兽企业重金招聘Python工程师标准>>> 问题描述:序列X={x1,x2,-,xn},Y={y1,y2,-,yn},当Z={z1,z2-,zn}是X的严格递增下标顺序( ...

  3. 算法导论之单源最短路径

    单源最短路径,在现实中是很多应用的,是图的经典应用,比如在地图中找出两个点之间的最短距离.最小运费等.单源最短路径的问题:已知图G=(V,E),找出给定源顶点s∈V到每个顶点v∈V的最短路径.单源最短 ...

  4. 有关算法方面的经典书籍推荐

    最近在学习算法和数据结构方面的知识,看到一篇好的关于数据结构和算法的书籍 一.概要 如果计算机系只开三门课,那么这三门课就一定是:离散数学,数据结构与算法,编译原理.如果只开一门课,那剩下的就一定是: ...

  5. 算法导论吃透后的水平_初学算法,你应该这么玩

    很多前端童鞋对算法都有莫名的恐惧,究其原因无非两点:其一,对算法不了解:其二,没有找到实际应用场景. 一.为什么学习算法? 这是个很有意思的问题,对算法感兴趣的人,不需要问为什么,算法对他们可能是一种 ...

  6. 算法导论 pdf_学习数据结构和算法最好的书是什么?

    ----------- 通知:如果本站对你学习算法有帮助,请收藏网址,并推荐给你的朋友.由于 labuladong 的算法套路太火,很多人直接拿我的 GitHub 文章去开付费专栏,价格还不便宜.我这 ...

  7. 《程序员面试金典》+《算法导论》

    <程序员面试金典>+<算法导论> 因为最近可能会面临一波面试,但是自己各种算法以及常见的问题的熟悉程度感觉还不够,但是由前几次的代码优化经验来看,算法优化可以说是代码优化的重中 ...

  8. 基本数据结构(算法导论)与python

    Stack, Queue Stack是后进先出, LIFO, 队列为先进先出, FIFO 在python中两者, 都可以简单的用list实现, 进, 用append() 出, Stack用pop(), ...

  9. 麻省理工《算法导论》视频下载

    <算法导论>是太经典和权威的算法方面的专著, 一直都是在看<算法导论>的英文版本的教材(introduction to algorithm),看起来确实很吃力,进度比较慢.今天 ...

  10. MIT的算法导论课程资料

    MIT的算法导论第一节课上,教授就说得了算法的performance的重要性,并非简单的只是快一点,慢一点,而是整个解决方案可行与不可行的差别.作为一个学生来说,在<算法导论>和<计 ...

最新文章

  1. Python代码加密混淆
  2. matlab and操作,系统建模 | Control Tutorials for Matlab and Simulink
  3. 全国计算机一级选择题汇总,全国计算机一级考试选择题训练及答案
  4. 拥抱创新,持续探索——对话阿里云MVP胡逢法
  5. VSS (Visual Source Safe 2005) 用法详解(转载)
  6. form表单target实现当前页表单提交而不进行跳转刷新
  7. 省级-上市公司数字经济数据(2013-2020年)
  8. matlab偏最小二乘法
  9. 表格自动填充上一行_如何在Google文档电子表格上使用自动填充[快速提示]
  10. 获取富文本中的图片链接
  11. 网易云课堂-数据结构-练习题实现-00,打印沙漏
  12. vue-loader无法解析vue里的stylus的style,外部引入styl文件可以解析,引入VueLoaderPlugin也没用
  13. pr图形模板预设怎么使用_PR怎样安装动态图形模板?怎样调用Mogrt预设?Premiere导入MOGRTs预设完整教程...
  14. Echarts-----map(单独省级地图)
  15. 域名被劫持的处理办法和预防
  16. Magento付款方式的判断
  17. SAP FICO 财务月结--自动清账
  18. 浮点型数据规范以及规格化与非规格化数据(更新:原文疑问已解)
  19. linux怎么看go写的程序进程,Linux中查看进程状态信息-Go语言中文社区
  20. 虚幻引擎测试题(一)

热门文章

  1. getdate() java_JAVA获得当前时间的几种方法
  2. sourcetree合并分支_不会git命令,没关系啊,还有强大的图形界面工具SourceTree
  3. no target device found怎么解决_关于移动端开发 1px 线的一些理解和解决办法
  4. 【渝粤教育】国家开放大学2018年秋季 1323T内科护理学(本) 参考试题
  5. 【渝粤教育】国家开放大学2018年春季 0175-22T社会调查研究与方法 参考试题
  6. 系统类配置(三)【ubuntu14.04或者ubuntu16.04 配置caffe】
  7. An Introduction to Unstructured Mesh Generation Methods and Softwares for Scientific Computing
  8. Linux下C++可视化调试神器vgdb
  9. 浅谈软件性能测试中关键指标的监控与分析
  10. linux系统 (实验二)实验楼的课程笔记