导读:What’s wrong with CS research

July 31, 2008 – 4:55 pm

hrm.jpg其实我也不会写什么“导读”,只是今天在 newsmth 的 FuncProgram 版看到这篇文章的链接,读了一下,有种强烈地想要推荐给别人读一下的冲动。

文章的标题是:What’s wrong with CS research ,说了 CS 本不是 science 却如何被硬套上这个名号煞有介事地做 research 的。Mencius Moldbug (文章的作者)说 CS researchers 分为三种:

  • creative programmers
  • mathematicians
  • bureaucrats

而最该死的就是这些 bureaucrats :

Bureaucrats build academic empires which churn out meaningless solutions to irrelevant problems. …(but) no one wants to fund bureaucrats. Therefore, he must pretend to be either a creative programmer or a mathematician, preferably both.

…The bureaucrat has many strategies. But probably his best is to take an area of creative programming and devour it like a locust, by turning it into a form of mathematics.

文中多次说,并不是这些人的能力弱,只是他们将自己的才能用在了错误的地方。或许是体制的问题吧,但是不可否认,现在的现实是:

Academics have one advantage: money. Free-software programmers have another: freedom.

而 CS 的 academics (其他领域呢?) 并不是为了 create relevant software ,而是为了 publish more papers

以前我曾经介绍过 Joel 的演讲,里面有提到 CS 的两个分歧。其实在我们学校(我想其他许多学校应该也是这样吧)这个专业的全称是 Computer Science and Technology ,就是有 Science 和 Technology 之分。

极端情况下,做 Technology 的鄙视做 Science 的,说他们整天就喜欢把简单问题复杂化,搞一些没有任何价值的所谓“研究”;做 Science 的也鄙视做 Technology 的,说他们做的不过是体力活,没有一点技术含量。

我想每个 CS 的学生如果将来还想继续干这行的话,应该都会面临这个抉择,究竟走哪条路,Joel 的演讲里说到了一个很好的方法来进行自我测验,不过并不是每个人都有条件去做。真正如何选择应该还是看自己吧,如上面所说,两个方向都有批评的声音。

不过,说 CS 的 Technology 纯粹是体力活,我是不同意的,不用比建筑师了,就好比木匠吧,无论是完全按照客户的要求定制一个家具还是自己发挥创造力做一个模型,都不能称作是纯粹的体力活吧。另一方面,虽然在 What’s wrong with CS research 这篇文章中把做 Academic 的批得很惨,但也不能一概而论。比如,说做研究纯粹是去搬弄一些无意义的问题,这有些过头了,关键是要如何定义“无意义”呢?难道所有东西在变得有意义之前都是无意义的吗?这有点“事后诸葛亮”的味道。

不过,Technology 这边我看到了 Open Source 这个东西,很喜欢,大家 share 各自的东西,文档、代码、工具都很丰富,要做一件事情的时候觉得很方便,可以高度重用。而在 Academic 这边呢?我自己的一点点经历以及和同学的一点点闲谈中,我觉得许许多多的 paper 其实有很多高度重复的内容,只是有其中的一些细节胡乱改了一下。“胡乱”是研究探索,而“修改”真是创新所在。这本没什么,其他领域的科学大概也是这样研究的吧。关键是这个过程中那很大一部份的重复内容许多时候都需要研究者去重新做一遍。

不要说实现代码或者甚至只是一个二进制的 demo ,有时候连 paper 本身也是不能随便得到的,一旦有什么成果出来,便迫不及待地加上各种版权、专利之类的。正如 What’s wrong with CS research 中提到的那样,很多时候这也并不是那些人的本意,只是体制如此,别人出资给你搞研究,出的成果怎么能随便分享给其他人?到最后,搞研究的目的已经不再是为了“研究某个东西”了,而是“多发几篇 paper”。

而在中国(不知道其他国家是不是这样),还有诸多的潜规则和学术腐败,这一切都让我望而却步了。从记事开始,我的理想(正如几乎其他所有小孩子的一样)是做一名科学家;后来我说,即使穷点也没关系,我要做画家;再后来,我说我要先读书再说,上重点中学、重点大学、还要读研究生、博士以及博士后。

然而现在似乎所有的愿望都要破灭了,一来我不会成为科学家了,二来我也成不了画家,最后,变味的学术研究也让我对 PhD 没有多少兴趣。如今只剩下一个只会敲键盘其他什么都不会的我。每当回忆起自己双脚粉碎性骨折治愈过程中的那几个月,以及后来下地以后重新学步的那种奇妙的感觉,我就在想,现在的我最重要的大概也就三样东西了吧:脑袋、眼睛和手。如果其中某一个坏掉了,那我又要如何生存下去呢?特别是前几天在 reddit 上看到有人说起自己(一个程序员)被诊断为会失明的事情以及下面的讨论之后,感触更加深刻了。

Update 2008-08-03: 周 core 写了一篇科研其实就是灌水,亲身体验,似乎也挺有道理。 :D

  1. 24 Responses to “导读:What’s wrong with CS research”

  2. 双脚粉碎性骨折?哦买高,什么时候的事情?

    发现我不能把自己归类到那三个里头去,唉。不是一个研究者……

    By Jake on Jul 31, 2008

  3. @Jake,
    高中的事情了……不过学步真的很奇妙,哈哈!

    By pluskid on Jul 31, 2008

  4. @pluskid,
    有点叹为观止……
    kid 也要大四了哦,准备怎样?

    By Jake on Jul 31, 2008

  5. @Jake,
    也许是要读研吧,我觉得学校里再腐败,也比社会上要好吧。哈哈! ^_^

    By pluskid on Jul 31, 2008

  6. @pluskid,
    在百脑汇混了快两个月,觉得我接下来这三年基本上卖给 Java 和 Basic 了。原本做技术支持的话还能写点 Perl,做开发就没戏了,哈哈。腐败与否其实看老师的,你应该能保研的话,挑选余地比较大就谨慎一点咯。

    By Jake on Jul 31, 2008

  7. 其实cs research也不一定就是science了
    其中有不少属于research on engineering
    把science和technology割裂开,把mathematics和programming割裂开,我觉得都是不合适的
    更多的时候是个balance问题
    简单问题复杂化、paper导向、资源不能自由共享这些问题,不仅仅是cs这一个领域的问题,更是整个学术界的问题吧。就像现代工业文明异化人的问题一样,这些也反映了时代的局限性,客观看待就可以了。
    像bureaucrat这种东西,我估计只要还有人类,就必然会存在,人性啊。welcome to the real world!
    academia的好处,于我而言,主要是自由。因为我比较散漫比较自由主义……anyway,there’s no perfection, 不管选择哪条路都必须支付相应的代价,就看你最想要的是什么了……

    By moonykily on Jul 31, 2008

  8. 哈哈,要不来百度吧,一堆学校里出来的工程师,跟在学校里差不多,而且跟浙大“求是”校训也很符合~

    看了 reddit 上的那篇文章,关于万一瞎了以后怎么办的问题我也想过,每次想起来都心慌。原来盲人写程序也没什么问题,不错!

    By Rhythm on Jul 31, 2008

  9. CS不是science 完全同意
    [from wikipedia] Science (from the Latin scientia, meaning “knowledge”) is the effort to discover, and increase human understanding of how the physical world works.
    CS学生大多不具备一个science研究者的素质 从方法到手段都不一样
    若研究对象为工具 则为engineer
    对象为理论 则为mathematician
    剩下的基本是CS界的剩余产物消费者 ;-)

    By arron on Jul 31, 2008

  10. 我小时候的理想也是科学家^_^

    By maninred on Jul 31, 2008

  11. @moonykily,
    你是说“清者自清,浊者自浊”是吧?

    By pluskid on Aug 1, 2008

  12. @Rhythm,
    呵呵,原来你也喜欢胡想。不过盲了之后写起来肯定是非常不方便啊。我最惊叹的是先天性失明的竟然也能成为优秀的程序员,果真是世上无难事的!

    By pluskid on Aug 1, 2008

  13. 现实并不可怕。比方说走出校门进入社会。但有些事是真正可恶的,比方说明明是一家商业公司,却以类似学校的环境来误导员工。

    By ashchan on Aug 2, 2008

  14. @ashchan,
    哦?怎么个误导法?

    By pluskid on Aug 2, 2008

  15. 我觉得不管是Technology还是Research,都是在创造。

    Technology做出更方便更强大的应用,Research为这些应用做基础。

    比如说,Hacker写出了一个程序,让人们的工作效率大大增加。在这背后,需要数学家提供基础的理论依据、研究算法的人不断的想出更快的算法,需要体系结构研究者优化CPU及存储结构让这个程序跑地更舒服。

    这里面缺了谁都不行,而有些人更是身兼数职。总而言之,CS最大的魅力就是创造、进步。

    至于出现的各种各样的问题,还是要看自己的主观想法的

    By chunhao on Aug 2, 2008

  16. @chunhao,
    不太同意“主观的想法”,我觉得是体制和社会或者说风气的问题,而不是搞科研的人(至少大部分人)自己想要那样。我也觉得真正的科研应该是更神圣的,也许是自己的想法还太幼稚了吧,现实总是不太一样的。

    By pluskid on Aug 3, 2008

  17. 类似学校的商业公司最大的毛病可能就是职业技能训练方面做得非常不好。员工在其中也许可以得到专业技能的锻炼,但是不能得到足够的职业技能锻炼。我现在就有这种感觉:专业技能还过得去,但是职业技能差很多……

    By rhythm on Aug 3, 2008

  18. @Rhythm,

    职业技能是什么样子的,和专业技能有什么区别?

    是不是我在家里熟悉使用vi,然后到了工作场所由于其他人的工作习惯而不得不改变?

    By quark on Aug 4, 2008

  19. @rhythm,
    同问职业技能和专业技能的区别。

    By pluskid on Aug 4, 2008

  20. @pluskid,误导之一是给员工营造一种类似大学校园的工作环境,这样员工会区分不开工作和生活。一般来说,这样的公司里,员工自觉不自觉的主动加班的现象比较常见。我想rhythm的意思是,专业技能指一般性的技术水平(如programming),职业技能是指你在一个行业或整个职业生涯中需要掌握的技巧,如teamwork,沟通方式,与上下级及同事相处方式,职业规划等等。

    By ashchan on Aug 5, 2008

  21. 是不是我在家里熟悉使用vi,然后到了工作场所由于其他人的工作习惯而不得不改变?

    是的,受雇于人,就会有很多不得已的tradoff,对于大部分人来说,这些限制是不以自己的个人意志为转移的。我刚开始上班那几年,很受打击的一次经历是,学习和使用ruby居然被领导批评,说那是浪费时间(原因之一是当时任务很紧,加班比较多,虽说用ruby写一些小工具能提高工作效率会有很不错的效果)。

    By ashchan on Aug 5, 2008

  22. @ashchan,
    那样来说的话,校园式的工作环境也未尝不好啊,大多数公司都是传统的管理方式,也并不能说明其他方式一定不好呢。 :D

    By pluskid on Aug 5, 2008

  23. @quark & pluskid

    我也不知道确切是啥意思啦,我自己的感觉是职业技能更注重沟通和合作,更具备工程性,需要和群体一致。既要为了顾全整体而放弃一些个性(例如前卫的设计和开发方法),也要在整体出现偏差时勇于指出并且切实有效地宣传和推行正确的做法。

    By rhythm on Aug 9, 2008

  24. @rhythm,
    恩,如果是这样来说的话,确实职业技能好像更加难掌握一些。特别是合作的话,任何时候都想找很合适的搭档好像比较困难啊。

    By pluskid on Aug 9, 2008

  1. 1 Trackback(s)

  2. Dec 30, 2010: 2010 关于 « Free Mind

Post a Comment