| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 363 人关注过本帖
标题:我为什么在乎这一个A+ {转自 http://www.yinwang.org/blog-cn/2015/03/13/a ...
只看楼主 加入收藏
longwu9t
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:小飞侠
威 望:6
帖 子:732
专家分:2468
注 册:2014-10-9
结帖率:100%
收藏
已结贴  问题点数:20 回复次数:1 
我为什么在乎这一个A+ {转自 http://www.yinwang.org/blog-cn/2015/03/13/a-plus/}
  我为什么在乎这一个A+

  我知道有些人至今仍然嘲笑和鄙视我,因为我曾经说过,我在Dan Friedman的两门课程B521(程序语言理论)和B621(高级程序语言理论)都得了A+。只要提到我,他们就会拿出这个把柄来,好像我是一个只在乎分数的肤浅的人。实际上我觉得这些人只是心理变态,为了鄙视而鄙视,所以他们发现貌似一个把柄,也不搞清楚Dan Friedman是谁,也不搞清楚这个A+的分量,拿着半截就开跑,抓住不放了。所以即使我没提过这分数的事情,他们一样会找到其它话题来损我。我一直都懒得回应这些人的言论,不过今天我有兴致,所以想花点时间告诉你,这个A+到底意味着什么。

  从我的人生历史里面,你应该很明显的看出来,课程,考试,分数,名校,权威,事业,成就,贡献,以至于图灵奖,诺贝尔奖,对于我来说真的什么都不是。你觉得一个在乎这些东西的人,会以优秀的成绩从清华,Cornell,Indiana三所大学退学吗?在漫长的学术生涯中,我上过许多的课程,很多最后结果都是A或者A+,也有几门课的分数低到C。因为我从来不觉得任何人有资格出题来考我,所以自上大学以来,我给自己定的标准就是“及格万岁”。我是一个非常不喜欢上课的人,我觉得普通的课堂讲座本身就是一种极其落后的教学方式,所以一旦觉得老师水平不够或者不懂教学就开始翘课,自己看书自学。所以,最后无论什么分数都不能衡量我的价值,反而有时候觉得高分是对我价值的侮辱。然而,我为什么唯独在乎在一个非名校,“非名师”手里上的这门课程,并且愿意告诉你我在里面的成绩呢?

  其实,这个分数的意义远远不止是一个A+,它涵盖的内容可能超乎你的想象。也许你可以从一个很小的例子看出它到底意味着什么。在课程进行到一半的时候,我花了一个星期的时间,独立解决了曾经困扰程序语言领域十多年的难题——CPS变换。在这十几年里面,有众多的世界级专家参与过这个问题的研究,包括非常强悍的丹麦Aarhus大学教授Olivier Danvy,Andrzej Filinski,Dan Friedman本人以及他的得意门生Matthias Felleisen,Felleisen的得意门生Amr Sabry,普林斯顿大学著名教授Andrew Appel(编译器教材“虎书”的作者)。这些人为这个话题发表了不知道多少论文,Appel还为此专门写了一本书。我之所以会去解决这个问题,是因为Friedman别出心裁,把这个问题作为了一道附加题目放进了B521的作业里。我不知道这个问题有如此之难,所以愣头愣脑,真把它当成作业题给解决了。按照作业的“道德规范”,完全从问题出发,不看书不看论文不查网络,全凭自己的头脑,在一个星期之内得到了最优的结果。这就是所谓“王垠40行代码”的含义。一个人七天,一群人十年,我想你应该知道这是什么概念。

  我的名字叫做王垠(父亲起名含义是谐音“亡垠”,无边无垠的意思),所以我将会永不停息的完善自己,永远不会拿某一个东西自居。解决这个难题只是对我这个人内在品质的一种反映而已,而且它只是我在B521做出的好几个“课外练习”的其中一个。在短短一学期的时间里,我还进行了其它几个重量级的练习,包括重新实现miniKanren语言,加入constraint logic programming功能和一种非常强大的逻辑逆(negation)操作符,等等。这些练习,全都是独立依靠自己领悟摸索完成,没有查阅任何书籍和论文资料。从这些练习里面,我获得了让我受益终生的独立思考能力。也就是这种能力,让我可以在Google,Coverity之类的公司,轻松解决其他人咋咋呼呼,认为不可能完成的任务。这就是为什么我会讲这个课程的故事,并且告诉你我得了A+。

  有趣的是,学期结束的时候,成绩单上出现的分数其实是I(Incomplete)。这种成绩表示有课程任务没有完成,如果在一年之内不弥补,就会变成F(不及格)。我很纳闷,发信去问Friedman。他回答说:“对不起,是秘书搞错了!” 然后急忙发信给秘书说:“这个人的分数应该是A+!实际上如果可能的话,我希望给他A+++++++!”

  现在你还觉得我是因为肤浅才告诉你这个A+分数吗?B521教会我的,是一生最重要的东西,它让我真正的理解了什么叫做“简单”,它使得我去追寻它。它赋予我的独立思考能力,继续在帮助我用巧妙简单的方法解决其他人望而却步的问题。这不是一个普通的A+,这是一个把我送上世界巅峰,给予我勇气和自由思想的A+。

  就像爱因斯坦说的,任何一个傻瓜都可以把问题搞复杂,你需要一点天才,还有很多勇气,才能达到简单。很多牛人用“简单”来标榜自己设计的东西,然而我发现他们对简单的理解其实很肤浅。大部分时候他们用一种类似“皇帝的新装”的心理技巧——你如果不能理解他的东西,他就说你是傻瓜或者菜鸟,不能理解这种简单。所以没有人敢说他们设计的东西太复杂。

  你觉得世界上有几个人能够在B521上得A+呢?谦虚是一种美德,不要随便评判别人,然而当看到这么多“大牛”都那么不谦虚,耀武扬威的,很多人用他们作为评判其他人的依据,所以我只好冒着评判他们的风险,告诉你一些事实。其实Donald Knuth, Dennis Ritchie, Bjarne Stroustrup, Guido van Rossum, Brendan Eich, Linus Torvalds, Rob Pike, ... 这些很多人仰慕的大牛,如果上B521肯定是连A都拿不到的。有些甚至不能及格,因为有些人根本不知道他们在干什么,设计出一堆复杂的垃圾,然后仗着自己的威望和强权迫使你去“学习”。其实我对计算机的理解跟这些大牛们,早就不在一个数量级上了。我心里有数他们该得什么分数,你们自己猜猜吧。

  也许我现在可以毫不担心的告诉你了,我在Kent Dybvig的编译器课程上得的也是A+。Kent恐怕是世界上最厉害的编译器作者,他几乎从来不给人A+,而我恐怕是他20多年来最厉害的一个学生。我们做了一个Scheme编译器,它的难度和工作量,是C语言编译器的两倍以上。这下某些人又有另一个把柄和八卦话题了吧,不过要记住,每一天我都在超越昨天的自己……
搜索更多相关主题的帖子: 心理变态 程序语言 课程 
2015-03-15 13:55
tlliqi
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
等 级:贵宾
威 望:204
帖 子:15453
专家分:65956
注 册:2006-4-27
收藏
得分:20 
看了
2015-03-15 13:59
快速回复:我为什么在乎这一个A+ {转自 http://www.yinwang.org/blog-cn/2015/03 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022846 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved