逃课,在大多数人眼中都是“坏学生”的专利,一说起逃课,就会联想起逃课打游戏,逃课出去玩,逃课把妹等。然而,还可以为了学习而逃课,这里我们要说的就是逃课去学习的故事。

为什么我要逃掉算法课?

写这篇文章的时候我本来应该在教室上《算法分析与设计》这门课,算法对于学计算机的同学来说,重要性不言而喻。我们应该花费大量的时间去熟悉各种算法,同时了解算法背后的思想。那么我为什么会逃掉这么重要的一门课呢?

忘了在哪里看过一句话,大致意思是看一个人读过的书就知道这个人的品味。同样,我觉得看一个老师推荐的教材就知道这个老师的水平了。下面来看看老师推荐的算法教材吧,排名有先后(完全复制课件内容,排版未做更改):

  1. 郑宗汉等,算法设计与分析,清华大学出版社
  2. 王晓东等,计算机算法设计与分析,电子工业出版社
  3. Thomas H.Cormen;Charles E.Leiserson;Ronald L.Rivest;Clifford Stein. Introduction to Algorithms, 2th Ed. The MIT Press, 2001, ISBN 978-0-262-33293-3. 影印版: 《算法导论》(第二版),北京:高等教育出版社, 2007,ISBN 978-7-040-11050-0. 中译版:潘金贵等译, 《算法导论》(第2版),北京:机械工业出版社, 2006,ISBN 7-111-18777-6
  4. 郭嵩山、李志业、金涛、梁锋.《国际大学生程序设计竞赛例题解(一)数论、计算几何、搜索算法专集》. 电子工业出版社, 2006.5

推荐的书中只知道《算法导论》这本,不过早在2012年已经出了第三版了,这里还是第二版,其中原因想必大家也猜的到。其他三本,真的没有听说过,也没有兴趣去看,国内写的计算机教材,可以看的寥寥可数,这几本当然不在其中。

本来我也不用看这几本书的,直到碰见这么一道小组作业题(作业还是要做的,不然挂科了怎么办):

动态规划

我左看右看,上看下看,也不明白这道题什么意思(看了其他小组的作业题目,发现基本也没有能看懂的)。于是,Google之,果真被我找到了原题,原来就是郑宗汉《算法设计与分析》里面的课后题,再一看,原来我们的全部作业题都是这本书的课后题。这里的资源最优分配问题,在书中给过解释,终于可以写作业了。

其实只看推荐的书就确定这门课不值得上,当然是不科学的,不去听听你永远不知道这门课到底怎么样。第一节课,我当然没有错过,并且坐到前排,洗耳恭听(前排人挺多,基本很少人坐后面)。然后,不好意思,我已经忘了那节课讲的啥了。后面还连续去了几次,发现根本听不下去,为了讲一个算法思想,比如递归,老师给出一个又一个的例子,然后“深入浅出”用递归搞定问题。整节课感觉就是在听例子,听解法,让我想起了高中时代的题海战术与填鸭式教育。

其实,除了第一节课大家都在前面,后面几次课,几乎所有人都坐在后排,前排已经空了。然后去上课的人要不自己看书,要不睡觉,很少有人听老师讲了。

该逃掉哪些课

前面就是我逃掉算法课的主要理由了,其实我现在逃掉了大部分课,那么我如何决定某一门课是不是可以逃掉呢?其实自己也没有刻意去找理由,很多时候就是一种感觉。不过我猜测潜意识里可能会经过下面一番思考。

1、我是真的想去认真上这门课吗?有时候,我们选择一门课只是为了拿学分而已,这种课完全没有必要在课堂上花费时间,应该毫不犹豫地逃掉。

2、这门课需要花费时间去学习,但是老师讲的太没水平了,还不如自己看书。上面的算法课就是这种情况了,对我来说大多数的逃课都是因为老师讲的没水平(你必须面对这个残酷的现实)。

其实想讲好一门课还是很难的,特别是理工科专业性比较强的课。需要老师自己有深厚的专业素养,同时还要有很好的授课技巧,确保能够清晰明了、又不枯燥无味地传达知识,能做到这一点的老师真的是屈指可数。

或许正是因为讲好一门课是如此之难,所以部分老师干脆就不负责任地糊弄大家。于是,我遇到过、听说过下面这些奇葩事:

  1. 老师完全“照本宣科”,但是读着读着发现自己都读不懂了
  2. 课件是 N 多年前的,内容十分陈旧
  3. 课上一直在吹水,讲自己的一些经历或者其它和课程完全无关的事
  4. 给我们把一个介绍技术概念的视频连续播放了三遍
  5. 考试试题是前一年的,年份、年级都没改
  6. 给我们演示一个简单的实验时,不知道怎么安装一个常用工具
  7. 教C++时,一个 Hello World 编译不通过,调试了半天才找到问题所在

上面的比较极端也不常见。然而大多数课堂也好不到哪里去,常常是台上“高谈阔论”,台下漠不关心,台上问题一出,台下寂寥无声。总之,如果你在上一门课时,总是精神奕奕地走进教室,然后听着听着就萎了,那么可以考虑逃掉这门课了。

如何说服自己逃课

其实好多同学都知道在教室里听课并不能学到什么,但是还有许多“好学生”作为老师的“忠实”听众,老老实实坐在台下(听课?)。

刚上大学时,我也是从不逃课,并且有点鄙视那些逃课的人。那时候天真地认为学生怎么可以逃课呢?课堂是那么神圣庄严的地方,是我们学习科学文化知识的天堂啊(好幼稚的想法啊),在这种想法的激励下,不论什么课我都逼自己认真听讲,好好消化。

然而渐渐发现,有的老师照本宣科(最典型的是当时的数学分析这门课了),有的老师讲的不明不白,有的课特别没意思。逼了自己一个学期后,实在太累,上课再也不能坚持认真听讲了,于是上课基本就是听着听着就困了,睡了。或者是,干脆不听老师讲,自己拿本书在看。

那时,虽然在获取知识上,去上课已经失去了意义。但是从小到大养成的不逃课“好习惯”以及“要想学习好就得认真听讲”的观念仍旧像一个无形牢笼,把我束缚在无聊的课堂上。

后来遇到了中特、毛概这两门全国统一、全球唯一的课程,本来就十分讨厌这些在初、高中必须背诵的东西,加上老师讲的又太不精彩,一怒之下就不去上课。然后发现逃课也不是多么坏的事情,于是渐渐地逃掉越来越多无关紧要的课。现在看来,应该感谢这两门课,让我认识到不是所有的课都需要去学,那些无关紧要的课甚至逃掉了也没有关系。

但是,那些重要的专业课,即使老师讲的很差,自己也不敢逃掉。生怕逃掉这些课,就失去了学好这门课的机会(虽然知道课堂上学不到什么,但是当时还是这样想)。后来,发现系里面好多大牛都不怎么去上课,但他们的专业素质不是一般的强。一个偶然的机会,听一个大牛说,老师讲的那么差,干嘛要去上课,自己想学好一个东西,就去找书找资料学啊。这道理自己也懂,但是听大牛说出来完全是不一样的感觉,并最终促使我把这种想法转变为实践,并开始了逃课之旅。如果你还害怕逃掉重要的课,那么请默念不去上课也能成为大牛,成不成为大牛和上不上课没有关系

挣脱了“必须去上课才能成为大牛”这个枷锁,其实你可以学的更多更快。此外,逃课不仅可以让学生学得更好,也有可能刺激老师好好讲课呢。毕竟,台下没人听课对老师来说也是一种打击吧。(希望不是我在 YY)

挣脱束缚

逃课是为了更好地学习

现在,我们不需要按时上课,坐在教室一味听老师啦。我们可以找本经典的书,坐在一个安静的地方,按照自己的节奏去理解书中的内容。其实这样的学习效率,比在教室听老师讲好太多了。算法这门课,我买了 Robert Sedgewick,Kevin Wayne 写的 算法(第4版),感觉写的还不错。另外,也顺便刷一刷 LeetCode 上面的算法题,收获也是颇丰的。

除了看书外,还可以选修一些经典的开放式网络课程,然后认真听讲,做作业,考试,拿证书。同样是课程,为什么要逃掉传统的课堂教室,去参加虚拟的网络课程呢?因为网络课程有着许多无可比拟的优点:

  1. 老师水平普遍较高,讲授内容质量高。这里的老师好多来自世界名校,内容准备的也特别用心;这点是最重要的。
  2. 完善的在线作业系统,作业得到很好的反馈。传统课堂中作业更多是用来给定平时成绩,交上作业就完事了,没有一个反馈,你甚至不知道老师有没有去看你的作业;
  3. 活跃的课程论坛。每一个课程都有一个供学生讨论的板块,在这里可以和全世界各地的学生交流学习心得,讨论作业题目;
  4. 弹性的学习时间,学习地点。没有说你必须在什么时候上课,你只要在 Deadline 前听完课,写完作业就可以了。
  5. 顺着大脑学习的规律教学,每次讲一小段时间就会穿插一些测试之类的,不会让你感到消化不了。想想传统课堂,一下子两节课,大脑早疲劳了。

还不知道MOOC(大规模在线开放课程)?看看下面这些文章吧:

哦,对了,亲测上面的“三座大山”都没有挂掉,所以你访问不了的话,一定是你的问题。

最后问一个问题,今天你逃课去学习了吗?