C++舞者

jinnie的专栏

国外与国内 数学与计算机(转)

其实很早就想写这遍文章了,趁有点时间,想把自己的感受说一下。我的写作水平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的缘故。毕竟,数学与计算机有紧密联系,但同时也有许多本质的不同。

  以上是我出国后感觉到的不同,归根到底就是两个字:“观念”。这也是我一家之言,盼能与大伙讨论一下,为中国的计算机发展出一分绵力。

阅读更多
个人分类: 品味人生
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭