这几天一直在写作业,今天才有点时间来写写博客。这次我们不谈技术,谈点更有意思的东西:我的大学生活。

学习

上课式学习

这两年在课上我学了不少知识,其主要的方面还是计算机和数学。我感受最深的一点是,很多学习过的知识都在期末考试之后就被束之高阁了。

比如说,我们的《数学分析》有三个学期的课程,主要是讲一些分析学的基础知识,也就是实数理论、极限、微积分、级数这些东西。这个课程每周有两节,一节1.5小时,这样算来,我上这门课所花费的时间为:

1.5×20×3×2=1801.5\times20\times3\times2=180

这还不算相当长的做作业时间。我在这门课上花费了这么多时间,我究竟收获了什么?

  • 实数的七个基本定理,我已经忘得差不多了。不过如果给我具体内容,我应该可以互相证明。
  • 极限的定义我还记得,但是多元函数的连续、可导、可微之间的关系,我已经不记得了。
  • 基本的微积分计算我还是会的。不过某些定式的积分,我也不太会了。
  • 求极值的拉格朗日判别法我已经不太记得了
  • 数项级数、函数项级数的敛散判断我也不太清楚了
  • 曲线积分、曲面积分由于是上个学期最后学的,还有点印象

可以看到,在这门课上学到的,至少50%的知识已经暂时性地离开了我。

这是为什么呢?主要还是因为用得少。我是计算机系学生,平常使用的数学绝大部分是逻辑学;第二位的是离散数学里的那些结构(图、树等等);第三位的是数论。如果我学了一些抽象代数,那么抽象代数会排在第四位。

这是因为只有当我们编写特定领域的程序时,才需要分析学的支持。

所以,我觉得对于这种学科,应该重视三个方面:

  • 各个定理的证明。这可以看作【应用逻辑学】
  • 各种结构的应用。
  • 各种结构的计算机实现。

换句话说,我们不要在具体的计算上纠缠

比如说,令我印象深刻的一道积分题:

11+x4\int \frac{1}{1+x^4}

让学生求这种【相当麻烦的、但已经有定式的积分】,究竟有什么意义?更应该研究的难道不是如何让计算机做这个积分吗?

比如说,mathematica可以算出:

1

真正理解mathematica是如何算出来这个结果人肯定很少,把画到重复劳动上的时间用来研究这个问题不是更有意义的吗?

《数学分析》还不是我上的最窝火的一门课。最让我感到恼火的是《大学物理》。

《大学物理》这门课,学时太少,竟然只有2个学时(每周上一节课)。讲授的老师照本宣科、毫无生气,整个授课过程死气沉沉。基本每节课,我都一些东西没有搞清楚。我们的书名叫【医用物理学】,书里的内容也过少,甚至有些还是错的。

但这门课糟糕的地方还不是上面那些东西,它真正糟糕是这两点:

  • 没有帮助学生建立一个正确的感性认识。我虽然为了考试记住了那些知识点,却不明白【波的传播】究竟是一个什么样的过程,【驻波】又是什么样的结构。这直接关系到对计算机网络中【发送时延】、【传输时延】的理解。
  • 在我们学这门课的时候,学《高等数学》的同学已经学过了,或正在学多元微积分;而我们需要在下个学期的《数学分析》中才能学到多元微积分

既建立不起来感性认识,想用数学结构来认识,却又因为数学水平不行而屡屡受挫,我多次怀疑我到底为什么要学这门课。

其实,物理学在计算机科学中是有点应用的。图形学和游戏引擎中有大量的物理学知识。如果真的要开这种课,我觉得最好的路径是这样的:

  1. 试着写一个简单的物理引擎
  2. 遇到技术难题,在物理学中寻找答案
  3. 用所学知识解决问题
  4. 重复2

通过实现一个简单的物理引擎来教授物理学,这是我觉得比较靠谱的方法。

其他的课在我看来也有这样那样的问题。比如说:

  • 数据结构课的老师不知道如何给别人讲授算法
  • 程序设计课不宜从C语言教起(个人看法)
  • 数电课上,我写了一个(自动化简逻辑表达式的)程序来代替我写作业,却被打了低分
  • 线性代数课没有突出重点,而且过于零散
  • 数据库系统课应该从《计算机程序的构造与解释》的第4.3节amb解释器或者逻辑编程讲起
  • 离散数学课应该多讲一些逻辑学的应用,期末考试不应该让人执行算法
  • 计算机组成原理课应该多讲一些物理接口的内容
  • 计算机网络、操作系统课应该允许用电子文档提交作业(而不是蹩脚之极的【先手写,再拍照】)
  • 所有的实验课都应该停止使用word作为【实验报告模板】

简单地说,在中大这种层次的学校上课,你会有一堆不满。不过,我们应该看到,这些问题不是中大、甚至不是中国的高校才有的问题。

我真正喜欢上的课,有两门:

  • 文学院张均老师的《中国现当代小说选读》
  • 马克思主义学院胡雪莲老师的《中国近现代史》

这两门课可以说是非常引人入胜的。授课的老师旁征博引,对很多问题都有自己的观点,而且乐于与学生互动,准备非常充分(这里也表扬一下离散数学的周晓聪老师和信息安全数学基础的郑培嘉老师)。

《中国近现代史》是早晨8点上的课。我只有在上这门课的时候,会不到7点就精神抖擞地起床。希望这种课越来越多吧。

从另外一个角度上看,中大的课业基本上还是宽松的。作业不算多、考试不算难,我的成绩虽然不是很好,但也不是很差。这给我的自学提供了一个比较舒服的外部环境。

自学

大部分我对知识比较深刻的认识,都来源于自学。学校里没有教过我堆溢出、栈溢出是什么,没有教过我C/C++的链接过程,没有教过我glibc中malloc的实现,没有教过我无线网络的安全体系,没有教过我如何写一个解释器,没有教过我如何写parser,没有教过我什么是continuation,最重要的是,没有教过我如何解决问题。

我所掌握的这些东西全部都来源于我的自学。不过,现在看来,我也是走了很多弯路的。一开始最应该学的是程序语言的相关理论,并且要写程序实践这些理论。在这之后再研究逆向工程、系统结构之类的东西。

虽然自学是我学习生活中一个很重要的组成部分,但是我不想在这里费太多笔墨。每个人自学的强度、节奏都是不一样的,我个人的体验对别人的参考价值恐怕不大。

生活

当年为什么选择中大而不是别的学校呢?很大程度上,我是看中了广州。2012年,我偶然地有了一次广东之行。这次旅行给了我很深刻的印象:从广州到中山只需要40分钟,城际铁路和地铁相连;几乎没吃到过什么难吃的东西;台风过境时的暴雨倾泻;在广州和深圳的书店里买书…

我甚至记得我当年买的两本书,方舟子的《大象为什么不长毛》和李敖的《审判美国》。

在广州住了一年多的时间,我绝大部分时候都在东校区的教室、宿舍、食堂、图书馆之间穿梭。所谓生活,也无非是衣食住行而已。下面我们就来审视一下这些方面。

我很喜欢粤菜,但【中山大学食堂】的菜,和【粤菜】之间,恐怕是有点差距的。中大食堂我只能用【差强人意】四字形容。当然,这里面也有我期待过高的原因。

2016年的时候,我有幸参加了一个【青少年高校科学营】的活动。具体来说是【厦门大学分营】。也就是说,我在厦大住了一周,参加了很多有意思的活动。而我对厦大食堂的评价是:相当好吃。

所以,我不免对中大食堂有了不切实际的幻想。从我吃过的【大学食堂】来看,中大的食堂只能说是一般水平。如果要吃好吃的东西,那么我不太推荐中大。

中大在这件事上有严重错误。它在招生时的承诺是,大一住一年六人间,大二换成四人间。这个【六人间】不是【原生六人间】,而是【四人间改造成的六人间】。有人可能会好奇,【改造】是什么意思呢?

2

上图是四人间改为六人间以后的设计图,它最大的特点就是那个突出的桌子:

3

这个图片可能还没有冲击力,我们看这张:

4

可想而知,东西多了之后,过道将会多么拥挤。

所以,我们迫切地期望学校能够履行承诺。但是,大二上学期,学校因为工程进度原因,没有履行这个承诺。学校失信于学生,是我将会【永志不忘】的一个的污点。

这个宿舍的好处是,宿舍里有浴室和洗手间。它虽然有点逼仄,但是总比没有好。我的高中宿舍里没有浴室,在澡堂洗澡的麻烦和尴尬是我难以忘记的回忆。

总体来看,我对宿舍的评价是【还可以】。

就算是我这样不喜欢外出的人,也会想着出去吃点好的。更何况广州还有不少好去处,比如某个地铁站旁边的地下商场(懂得都懂)。所以,行也是一个值得一说的部分。

中大东校区宿舍距离地铁站不算远,在地图上看是这样的:

5

步行15分钟就可以到地铁站。

坐上地铁以后,广州市绝大部分需要去的地方都可以方便地到达。在这点上,我还算很满意的。

总结

虽然中大有各种各样的不好,但是我仍然不后悔两年前的选择。中大的气氛是相对自由的,它从来没有过【大一不准携带计算机】、【需要上晚自习】、【需要早起跑操】这些古板而弱智的规定。中大的老师是平易近人的,这里有不会讲课的老师、专业知识不过关的老师,但没有洋洋自得、固步自封、不与学生沟通的老师。中大的饭菜是差强人意的,虽然不是珍馐美味,但也不会难以下咽。

以上均属一家之言,不能也不可能反映全部情况,请自行甄别以上信息的真伪。