【转载】国外与国内,数学与计算机
【原文】http://www.pconline.com.cn/pcedu/empolder/life/0503/574641.html
【转者注】一直还真以为软件最牛是与数学紧密结合,现在看来,与“管理”结合更为重要。国内人文“科学”研究普遍远低于数理上的钻研,这大概是为什么我们总是学到了西方文明的皮毛而不是精髓并无法超越之的原因。
2005年03月16日 作者:骄傲的中国人 责任编辑:xietaoming
其实很早就想写这遍文章了,趁有点时间,想把自己的感受说一下。我的写作水平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的缘故。毕竟,数学与计算机有紧密联系,但同时也有许多本质的不同。
以上是我出国后感觉到的不同,归根到底就是两个字:“观念”。这也是我一家之言,盼能与大伙讨论一下,为中国的计算机发展出一分绵力。