做研究與寫論文

标签: Computer-電腦與人生 Life-生活雜記 research | 发表时间:2011-03-03 07:27 | 作者:vgod cong
出处:http://blog.vgod.tw/

最近有幾篇頗有爭議的文章「陳鍾誠給李家同的一封公開信」 「陳鍾誠給李家同的第二封公開信」,針對李家同批判他是現在學術界獨尊論文的始作俑者,並指出應該要有其他的研究產物或評鑑方法(像是寫一個作業系統、做一個CPU之類的)。雖然李家同常常講出令人啼笑皆非的話,但就這兩篇文章而言我還真覺得李家同挺無辜的,連學術界獨尊論文的事也怪到他頭上實在有點牛頭不對馬嘴。

雖然我博士班還沒畢業,但我也寫過幾篇論文,也做過有上萬人使用的系統,我非常了解擅長實作不擅長寫論文在學術界的苦悶和無奈。但隨著我在MIT的時間越來越長,也對這個現象慢慢有了不同的看法。

話說我很愛寫程式,遠勝於寫論文。我可以不眠不休的寫程式,但沒辦法這樣寫論文。如果我當初碩士畢業後直接去工作,就可以在任何我想去的公司愉快的全職寫程式,但到頭來我還是來念博士班了,為什麼?很簡單,我需要有個環境能讓我不計後果的做各種嘗試和試驗。我喜歡寫程式,尤其是沒人做過的程式(一直重複寫留言板和twitter client可不好玩)。做沒人做過的事雖然好玩,結果可能會出乎意料的好,但也有可能會大大的失敗 – 而這就是研究。在公司裡做工程師寫程式就不太能做這樣子的事情,因為公司要考量風險,可能會大成功的東西也意味著可能會大失敗,而大部分的公司沒辦法禁得起這種失敗,所以只好跟著別人的屁股走。

MIT是個很酷的地方,歷史上有很多有名的系統都是在這裡誕生的,像是Ethernet、Emacs、GCC、LISP(語言和第一個compiler)…。如果說要在學術界動手做真正的系統,那MIT一定是世界上數一數二的地方。那麼在這個地方,博士班學生要如何畢業,教授要如何升等呢?

很不幸的,答案是:寫論文。

在資訊科學這領域,美國學校不像台灣獨尊SCI論文,事實上美國人大多不知道SCI是什麼東西,但不是這樣就代表美國不寫論文。在這邊搞電腦、資訊研究的,一樣要寫論文,而且只投到各子領域的一兩個頂尖會議去。(一個大家都知道的潛規則是,三篇頂尖會議的長論文=博士畢業)

台灣有台灣的遊戲規則,美國也有自己的遊戲規則,但即使是MIT的系統hacker們,也擺脫不了寫論文的命運。(例如說,Richard Stallman其實有寫Emacs的論文,做PostgreSQL的Stonebraker也有一大票的POSTGRES論文

我以前覺得寫論文很痛苦,也懷疑有多少人會去看這些紙張(論文英文就叫paper,所以名符其實就是一堆紙),對我來說直接把程式寫出來讓人用似乎更能直接造福人們。我到現在其實還是這麼覺得,所以我花了很多時間把SIKULI open source,建立起一個community,並持續更新千百個跟研究完全無關的功能,目的就是讓所有人能更直接的享用到這個研究的成果。(而很不幸的是,做這些事情跟我能不能畢業沒什麼關係,但還好我老闆還是支持我的。)

但同時,我也覺得論文的存在有其必要性。我認為做研究可以產出多樣化的「產品」,這產品可以是程式碼,可以是影片,或其他任何形式的媒介。而追朔到其核心,研究的產出最重要的是「想法」,也就是 “idea”,而論文只是最簡單又最容易被其他人接受的傳播媒介而已。

為什麼說論文有其必要性,就是因為論文是傳播想法最有效的媒介。論文的架構設計得讓人可以很容易抓到重點,也可以很容易的深入核心想法。如果寫過論文的都知道,論文的架構是死的,一定都有abstract、introduction、related work、conclusion等等,這種架構讓人能各取所需,要深讀或略讀都很容易。但如果說研究的產出是一個軟體系統,我們該從何了解這個系統的「想法」在哪呢?為了要讓一個系統達到「可用」的程度,整個系統裡面至少90%以上的程式碼都是純粹的工程產物,跟核心概念一點關係都沒有。而程式碼又是很難讀的東西,如果別人要了解這個研究的創新在哪,讀程式碼一定是不得已的最後手段。

我絕對贊成做研究的人也得懂如何實作。很多好的idea其實老早在數十年前的論文就出現過了,但一直到現在都看不到,常常只是因為沒人去把它實作出來而已。做研究最難的事就是找到新的idea,如果只是學人家實作一個作業系統或是CPU,那也不過是照本宣科,沒什麼「研究」的價值和貢獻。像MIT這種強調”Mind & Hand”(手腦並用)的地方,很多教授都有很強的實作能力,但他們一手寫程式,另一隻手還是寫論文,因為他們知道這樣才能得到務實的經驗,而同時也能把這些貢獻和想法用最有效的方法傳播出去。

如果你問我,「我在學術界,但我擅長寫程式,不擅長寫論文,該怎麼辦?」

我覺得答案很簡單:如果你有很多創新的點子,那就開始練習寫作和英文,因為不管在什麼領域,如果你沒辦法好好的把想法傳達給別人,那也是孤掌難鳴;如果你沒有什麼點子,只是喜歡寫程式,那更簡單了,趕快quit去做工程師專心享受寫程式的時光吧。

延伸閱讀:
我看李家同的是與非。此文的觀點跟我很接近,所以他講過的很多東西我就不再重複了。

附帶一提,最近在facebook上成立了粉絲頁,歡迎大家加入多多交流!

相关 [研究] 推荐:

用户研究

- - 技术改变世界 创新驱动中国 - 《程序员》官网
介绍自己的设计流程时,设计师通常都说它是“以人为中心”或是“以用户为中心”的. 笼统地讲,这表示设计师经常要考虑所设计产品的潜在用户,尽力为这些人创造出最好的产品. 这个问题看似简单,实际上却不好回答. 好的设计通常都是从用户研究着手的. 我们如何才能发现人们想要实现的目标. 虽然这样做有时会得到一些有用的信息,但一定要小心地评估人们给出的答案.

JVM研究

- - 开源软件 - ITeye博客
每天接客户的电话都是战战兢兢的,生怕再出什么幺蛾子了. 我想Java做的久一点的都有这样的经历,那这些问题的最终根结是在哪呢. JVM全称是Java Virtual Machine,Java虚拟机,也就是在计算机上再虚拟一个计算机,这和我们使用 VMWare不一样,那个虚拟的东西你是可以看到的,这个JVM你是看不到的,它存在内存中.

BigPipe学习研究

- maxiyun - 搜索技术博客-淘宝
技术背景 FaceBook页面加载技术. 试想这样一个场景,一个经常访问的网站,每次打开它的页面都要要花费6 秒;同时另外一个网站提供了相似的服务,但响应时间只需3 秒,那么你会如何选择呢. 数据表明,如果用户打开一个网站,等待3~4 秒还没有任何反应,他们会变得急躁,焦虑,抱怨,甚至关闭网页并且不再访问,这是非常糟糕的情况.

Mysql缓存研究

- - CSDN博客推荐文章
缓存机制简单的说就是缓存sql文本及查询结果,如果运行相同的sql,服务器直接从缓存中取到结果,而不需要再去解析和执行sql. 如果表更改了,那么使用这个表的所有缓存查询将不再有效,查询缓存值的相关条目被清空. 更改指的是表中任何数据或是结构的改变,包括INSERT、UPDATE、DELETE、TRUNCATE、ALTER TABLE、DROP TABLE或DROP DATABASE等,也包括那些映射到改变了的表的使用MERGE表的查询.

Web Service的研究

- - CSDN博客系统运维推荐文章
SOA和Web Service. 首先明白SOA和Web Service的关系:. * SOA面向服务架构,用于大型分布式系统的一个概念;. * Web Service是实现SOA的方式之一,不是所有的SOA都是基于Web service的;. * 但Webservice确实为最主流的SOA实现方式,有的人甚至把SOA等同于Webservice.

HTTPS劫持研究

- - FreeBuf互联网安全新媒体平台
这篇文章描述了我们对哈萨克斯坦政府实施的电信级HTTPS劫持的分析. 哈萨克斯坦政府最近开始使用一个假的根证书颁发机构,对包括Facebook,Twitter和Google等网站在内的HTTPS连接进行中间人(MitM)攻击,在此文中,我们给出了还在进行中的研究的初步结果,以及哈萨克劫持系统中新的技术细节.

HTML5 & CSS3 研究文档

- Kings - 幸福收藏夹
已经说了好久,一直没把这个文件夹分享出来. 这是我去年第四季度里做的,里面有 11 一个文档. 包括 HTML5 中最主要的 JS API 文档,还有 CSS3 中两个比较难的属性. 主要还停留在纯 API 层面上的研究,没有深入到应用中去. 不过,当做工具来使用,和入门文档,还是不错的. 特别是其中的 HTML5 JS API 文档.

做研究與寫論文

- cong - vgod's blog
最近有幾篇頗有爭議的文章「陳鍾誠給李家同的一封公開信」和 「陳鍾誠給李家同的第二封公開信」,針對李家同批判他是現在學術界獨尊論文的始作俑者,並指出應該要有其他的研究產物或評鑑方法(像是寫一個作業系統、做一個CPU之類的). 雖然李家同常常講出令人啼笑皆非的話,但就這兩篇文章而言我還真覺得李家同挺無辜的,連學術界獨尊論文的事也怪到他頭上實在有點牛頭不對馬嘴.

in 和 exists性能研究

- zhengyun - CSDN博客推荐文章
从sql编程角度来说,in直观,exists不直观多一个select;in可以用于各种子查询,而exists好像只适宜于关联子查询. in 是把外表和内表作hash join,而exists是对外表作loop,每次loop再对内表进行查询. 一直以来认为exists比in效率高的说法是不准确的. 如果查询的两个表大小相当,那么用in和exists差别不大.

Zookeeper研究和应用

- medal - 搜索技术博客-淘宝
zookeeper是一个开源分布式的服务,它提供了分布式协作,分布式同步,配置管理等功能. 其实现的功能与google的chubby基本一致.zookeeper的官方网站已经写了一篇非常经典的概述性文章,请大家参阅:ZooKeeper: A Distributed Coordination Service for Distributed Applications.