CS课程感受

 

发信人: honsrx (Timing~两矿一波), 信区: CS
标  题: 看到大家说课程,我也说一说我的感受
发信站: 瀚海星云 (2009年03月25日19:40:12 星期三), 站内信件 WWWPOST

大一的时候喜欢技术,有一阵子没日没夜的编程,做好玩的小东西,觉得技术上有太多
的名词不懂,什么java啊,php啊,c++啊,python啊,linux的XX之类,在我眼里都是很
牛很厉害的东西。

我那个时候挺愤青的,当然,愤的不是国家政治之类的,而是我们的课程表。大一大二
用了一大半的时间学习数学物理,应付没完没了的物理实验报告。我当时很怀疑我来科
大是来错了,我是来学习信息科学的还是物理数学的?曾经有一次报告会上,我还打断
过一个老师,当场问他为什么大二的我感觉还没有找到计算机世界的大门?当时我的心
里,有一个现在看来很可笑但是那个时候很真实的印象:学信息科学的是it精英,以后
的生活会衣着光鲜,满嘴名词,口袋里大把钞票,连做的工作都是像google这样有趣有
影响力的;而数理工作者的生活则应该是像灰蒙蒙的旧照片里一样,秃顶,生活弱智,
只是没有钱没有魅力的geek。在这样的潜意识的影响下,从大学开始,我就和我以前喜
欢的物理数学毅然分手,信息学才是我的新欢。那个时侯我眼中的信息学的内容,可以
参见第一段。

基于这个想法,我的物理课数学课一直疲软,因为我觉得学个大概就行了。虽然分数不
难看,但是真正理解了多少我并不用心并不在意。我继续进行着自己程序设计这份很有
前途的职业,学习GUI,学习脚本,学着人家做漂亮的个人主页挂在服务器上。让我改变
的是在大三上学期,那个学期我接触到一些paper,有一个讲coolstreaming原理的(最
早的一个p2p视频点播),还有一篇讲无线网络中的网络容量的优化。我拿到
coolstreaming那篇paper的时候,本来是准备把它当作一个分布式网络程序的架构来学
习的,结果开篇几个定义和一连串的矩阵运算把我砸晕了。我当时记忆中的线性代数知
识已经所剩无几。让我乘个矩阵可能还可以,其它的恐怕就不行了。我再翻几页,满篇
都是求导求极限线性回归参数估计的种种奇怪符号。这看起来不像是计算机啊,倒像是
以前看的物理书和数学书!我再找了老师上课说的其他几篇reference paper,完了,大
部分是这样子啊。我顿时有一种进了洞房掀开红盖头发现娶错了人的感觉,那不是我高
贵的老婆大人,分明是个撅嘴瞪眼的非主流啊。

为了以后的人生幸福,我毅然开始华丽丽的转型。每天回去不开电脑,拿起线性代数,
拿起概率论,拿起图论,拿起运筹学,看书做题。这时候系统的上过这些课的优势就体
现出来了,基本上两天一本的样子,顺带着还看看别的书,交叉验证。当时还学算法,
做acm,几十天下来,感觉把以前松松垮垮的数理基础很是压了压紧。这些天过得很充
实,因为有很强烈的一直在进步的感觉。每天睡觉的时候几乎都是带着一个数学问题睡
着的,醒来的时候仿佛还能听到我的经验槽涨满又升一级的声音……有一次在地铁里
(那个学期在香港交流),周围都是忙碌的人群,我就突然很有感慨。后来的日志写
到,如果退休了,就去研究理论物理和抽象代数。

我们学的数学和物理是很有用的。计算机方面的很多课程依赖与这些基础的土壤。你不
学习图论当然也能看懂匈牙利算法,你不学习概率也能记住ALOHA协议的效率是1/e,你
不学习排队论也知道平均队长=到达率*平均等待时间……不可否认专业知识的重要,但
较多较好的数学物理训练能够在很大程度上帮助你:1.)快速理解算法的核心思想;
2.)帮助记忆专业知识;3.)训练形式化定义和证明的能力和意识。

第一点和第三点很明白,第二点我想举一些例子,因为是在系版,我们往专业的说。说
说我自己感受到的:
1. Universal Hashing/Perfect Hashing保证O(1)的访问时间,其理论依据是代数结构
(威尔逊定理(的引理))。
2. Google Pagerank排序算法有三种等价的数学解读:a.线性变换角度:特征值为1的特
征向量;b.马尔科夫链的极限分布;c. 竞赛图里的Hamilton路。
3. 素数判定的随机算法,代数结构(费马小定理)。
4. 快速排序的分析,为什么随机选取pivot就能保证O(nlogn)?还记得
1+1/2+1/3+1/4+....+1/n = O(logn)吗?
5. 矩阵的原地转置,置换到可以分解成若干个不想交的轮换之积。
6. Machine Learning: 线性回归,参数估计(极大似然估计),贝叶斯分析,牛顿迭
代,梯度下降……你还能再数学点吗?
7. 函数式语言,这个我接触的不多。但重要的特点是没有变量,所有的操作都是用递归
函数定义的。大大减少了出错调试的开销。也许你会想这怎么可能编出程序呢?理论:
还记得图灵机的计算能力限于递归可枚举集合吗?

学习生活中这样的体会是很多的,现在只能想出来这么些了。最近搜集了不少stanford
和mit ocw的课程,感觉他们的课程设计很用心,例子很生动很“计算机”,让学生很有
兴趣。除此之外,都是数学。现在很火的machine learning啊,data mining啊之类的,
出去数据库系统方面的描述,大部分内容也只是数学的马甲而已。“学习率”其实就是
函数的梯度,“带宽”其实是高斯分布的标准差,所谓名词,大部分是这样的。对于找
工作的同学来说,数学的思维也是很重要的,我面试百度的时候基本上大部分问题是和
计算机关系不大的,主要是图论,概率这些内容。正因为cs和数学这样的重叠,经常还
见到“is computer science science?”这样的讨论呵呵。

现在我大四了,呆在实验室里做毕设,虽然不是很忙碌,也是感受到了自己的变化。很
难再有能像之前的3年那样一心一意学习基础理论的时光了。现在做研究也好,做项目也
好,都有很多系统方面的问题需要了解学习和尝试,这些非常的花费时间和精力。每次
忙很久挺累的还说不太清楚自己到底干了些啥,但是瞎忙也得忙啊。操作系统网络这些
课程的内容在不断更新,并且随着经验的积累,大家的功力其实是差不多的。而数学这
些基础的东西往往决定了以后发展的深度和广度。从大四开始,对不考研的同学来说,
能够像大一那样静静的坐下来看线性代数的日子很可能一去不复返了。不管是读研还是
工作,有的是机会学习技术,但是静下心来学习数学物理的机会很少了。

我们这些人都是高中时候数学物理很好的,我相信大部分同学当时也是很喜欢它们的。
我们科大的学生,心里应该有一个角落留给这些漂亮的精灵们。

以上种种,个人见解,大家轻拍呵呵。


--
[1;37m※ 来源:·瀚海星云 bbs.ustc.edu.cn·[FROM: 210.45.73.177][m

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值