国外与国内,数学与计算机
国外与国内,数学与计算机 一点看法一点体会——作者:骄傲的中国人
其实很早就想写这遍文章了,趁有点时间,想把自己的感受说一
下。我的写作水平just so so,写english还好一点,因为不用象中
文那样,要注意那么多的修辞方式和文采,只需平铺直叙就行了。
可能我天生就是要注定学Computer的,因为从小学到现在,只有
两堂课是可以的——数学,英语。我那股凡事都要问个为什么的牛脾
气,更在学数学中体现得淋漓尽致。整天地查书,追问着同学,老师
每一条算式,定理的推算和证明,直到最后得知那是一条公理,才心
有不甘地停止了穷追猛打,甚至还想弄一些鬼点子来推翻公理。以至
同学、老师一见到我就觉得烦。可惜我学艺不精,小中大学都被选拔
参加过不少数学竞赛,却没有拿过一次理想的成绩。我那牛脾气也延
续都到写program中,几乎什么都喜欢自己implementation。所以我不
太喜欢VB,DELPHI,CBC,什么都用别人的Component。觉得有一种压
抑感,由于是从SDK学起的,所以Windows的机理也比较清晰,以前还
打算把MFC source codes改写成为自己的classes,可惜MFC实在庞大,
而且还在不断updated,以我一个人的能力完成了约1/3,已经精疲力尽
了。以前在国内一直梦想着能到Symantec 这样的公司做developer,
因为很想弄清楚为什么Norton能把Windows control 起来。
以前总觉得国外的programmer很厉害,若不是的话,为什么能开
发出这么多改变人类生活Software,但出来见识过了,才知道在技术
上,他们也不过如此,反而觉得国内的高手还多一些。也许这与教育
制度有关,国内普遍都认为只要数学学好了,计算机也就没问题了,
君不见国产的教科书都是以那些枯燥的数学问题来教导初学者。诚然,
数学思维对写code有莫大的帮助,我也是受益者,所以中国人写程序
在同等外界条件下(硬件,资料等)绝对比鬼佬强。但同时也带来了
严重的错误观念——“编程研究到一定程度,归根结底是数学问题”。
刚出来的时候,我也是这样认为。
我哥也是Master of Computer Science出身,由于他自己的努力,
还没到30岁,已经在3com总部担任Project manager了。他以前在silion
valley 多间公司做过,包括Symantec。兄弟俩经常就computer的问
题进行讨论,他为了我能尽快适应silicon valley的文化,不断把不
少经验告诉我,使我收益非浅。发现其实是观念上的不同。这里认为
“编程研究到一定程度,归根结底是管理和人类发展的问题”。
一、管理问题: 其实写code在一个software product生产过程中只
占一小部分,关键在于如何使product占有market和有效管理整个pro-
duct的开发过程。这学期在Project Management Course学习中,有两
点很有感受。
(1) At some point in the development, Better becomes the
enemy of Good.
(2) Engineers are very good at taking more time and sp-
ending more money to make "better" than what the customer
ever wanted or has the time or money to pay for.
(3)一群水平一般的Engineers + 一个优秀,经验丰富的Manager
>> 一群拔尖的Engineers。
而中国恰好在管理上缺乏优秀人才,制度和观念更是与silion
valley 的不能同日而语。因此,尽管国内优秀的programmer相当多,
但是只是一盘散沙,白白浪费掉。可叹的是有不少国人还白日做梦地
期盼着中关村能取代硅谷。若制度和观念不改变的话,即使把全国最
优秀的程序员聚积在中关村,也别想追上硅谷。另一个典型的例子,
Linux 如今高唱入云,而且聚积了世界上许多优秀程序员的成果,但
是若它的开发和维护仍停留在以个人或小群体的基础上,没有系统性,
规范化。即使它的性能比Windows 要好许多,也只能成为那些发烧友
桌上的宠物,永远不能登大雅之堂!如今不少大公司加入其中,对它
开发和维护的管理有很大帮助,才有可能向microsoft叫板!
二、人类发展从计算机技术的发展历史来看,计算机最终解决的
是人类发展问题,而不是数学问题。很简单的例子就是,Programming
Language的发展,asm-> c-> c++-> java-> CORBA(注意:CORBA不
是一种语言)
可以看到这样的发展,主要是为了方便一个Software,一个Pro-
duct 的更有效的开发和应用。简单地说,c使程序员摆脱了机器语言
的苦涩,c++(也可以说Object-oriented Languages)使产品的组成、
开发、维护更符合人类的思维方式,java在Internet流行的这个年代,
顺理成章地成为了宠儿,CORBA更是进了一大步,承诺Language-inde-
pendence, Platform-independence, Location-independence。已
经是相当成熟的Distributed Object Computing。看了许多CORBA 的
书,颇有感叹,CORBA应该说是人类思维的发展的一个体现。同时,
为中国计算机的研究无奈!这里的研究可以说是以人为本,为的是在
整体上运用计算机促进人类发展,而国内的研究更多的是在于算法等
局部,微观的研究,这方面虽然是必要,但在观念上可以看得出人家
已经高一个层次了。不夸张地说,silicon valley,它有自己独特的
文化,在这里,不但可以看到到计算机技术的飞速发展,同时也从中
感受到人类思维的发展。这也是为什么要独立开办一个Computer science
department的缘故。毕竟,数学与计算机有紧密联系,但同时也有许
多本质的不同。
以上是我出国后感觉到的不同,归根到底就是两个字:“观念”。
这也是我一家之言,盼能与大伙讨论一下,为中国的计算机发展出一
分绵力。