聽到有位系上同學Teebone Ding在FB上說:「一天看完兩篇14頁OSDI的paper真是人類極限=____= 念HCI類的paper相比之下簡直是躺著念啊....」接下來,他感嘆的說:「全世界都在徵網站前端設計師與APP developer,我卻在這裡搞最難搞的系統研究.... 」
我說:如果隨意給兩篇OSDI,你都能在一天看完看懂,那你的內功程度就很不錯了。這些內功,將來可以受用很多很久。
比看懂paper更大問題是,對研究者來說,寫一篇能夠登上OSDI的paper,跟某些領域SCI paper的難度和需要做的工作差多少?明白的人應該會覺得用paper數量或點數,跨領域論英雄真是大笑話。
學術界以前大家不大願意做系統研究,一方面是上述學術評鑑的問題,另一方面是十年前台灣的業界只是做系統開發,跟研究差很遠。即便是做系統開發,需要的人才也不大夠,因為學校教授做這方面的不多,願意進到這領域來的學生也少。
我在2005年返國教書後,去過幾次嵌入式系統軟體聯盟辦的場合演講跟多核心系統相關的議題,在座有許多技職體系的老師們參加。有一位技職體系的資深教授聽完後以一種過來人的姿態對我說,你講的那些研究對學生和業界沒什麼用,還是教學生怎麼寫USB周邊裝置的驅動程式比較務實。
在2006年,我和一群電資學院的教授到HTC開會,和包括周永明總經理在內的部門主管們交換意見,我被告知的是,HTC能夠自行修改的軟體部分非常有限,因為當時只能做Windows Mobile手機,整個軟體操之在微軟手上,只有辦法發展周邊裝置的驅動程式和相關軟體。
上面這兩件事說明,國內學界和業界在那個時代,在做系統開發上,規模很小,軟體的部份被看成是硬體的附屬品,複雜度並不高,也沒什麼高深的系統研究是能夠拿來做產學合作。
這幾年,傳統電子資訊產業利潤微薄,手機和雲端這些複雜的系統突然興起,台灣政府和業界一開始搞不清楚狀況,用跟以前做PC的心態去經營,碰到問題之後才體認到系統人才的不足。一下子要找那麼多系統人才 ,去哪裡找?
由於以上的歷史共業,產官學的長官們,沒幾個懂系統的。一堆長官,以為做系統研究很容易。例如,最近有位國營事業研究機構的長官在談合作案的時候對幾位教授說,你們現在講的這些,很多我們也會做,你能不能提出一些新構想去取代現有的雲端科技,比
MapReduce 做得更好呢?我聽到這個,覺得很不可思議。這個單位的名字,我不想講,但是在學術界的人都知道,他們這麼多年來到底做了什麼偉大的貢獻?
不懂系統研究的人,以為我們做的工作像是「黑手」做的,以為我們的創新,不過是小小的改進。要神來一筆,想出個全新的技術,必須是大師級的人物。但是現在電腦系統這麼複雜,光是把系統搞透徹都越來越難了,要當大師談何容易。因此我對於曾在Google待過的新任科技政委張善政先生有些期待,我不期待國內能夠突飛猛進,但是如果能夠修改政府和學界好高騖遠的心態,多致力於實務性質的系統研究,會有利於長遠的進步發展。
我想,做系統,有點像拼圖堆積木。大家小時候有沒有堆過Lego積木?你如果覺得積木很好玩,你會一邊玩一邊堆出各種不同的作品,然後可能會越堆越大。到最後,你可以堆得很快,知道如何使用材料,知道怎樣堆出好玩的東西,樂趣就在其中。有些人不愛玩積木,喜歡玩現成的玩具,無法領略堆積木的樂趣。
我做系統研究的樂趣,早先來自於高中時代勤跑光華商場拼裝電腦、跑中華路猛讀電腦書,就像拼圖一樣,想要搞懂電腦是什麼、能拿來做什麼?當時學到廢寢忘時,可惜當時國內電腦系統的師資不足,即使是台大,也沒幾個教授是做電腦系統的,因此我大學絕大多數和電腦相關的知識,全部來自於自修。退而求其次,我從大二開始做專題,藉此得以使用實驗室的設備,以及跟老師要點經費買些電路板電子零件來玩。
出國唸書後,可以學的東西太多了。我的運氣還不錯,計算機結構,平行處理,效能分析,作業系統,資訊安全,網路運算... 在求學和工作的生崖裡,一個問題接著一個文提來,一像技術接著一項技術學,很過癮。這些問題和技術彼此相關,可以讓拼圖遊戲變得非常有趣;基礎若是打好的話,可以讓積木推得越來越高;經驗夠豐富、道理搞清楚的話,可以化繁為簡,以簡馭繁,快速找到解決問題的關鍵。
系統的問題,比起解決一個單純的問題,主要的差別在於複雜的程度。如果把研究範圍縮得很小,可能就失去做系統研究的樂趣。前一陣子有位的研究生,很聰明(可惜不是我學生),見到我聊了一陣子,他說在做某個研究,但整天在跑simulation好無聊,不知道模擬器寫得對不對,也不知到做的東西有沒有用。我想,如果是我的話,如果覺得很無聊,我應該會想辦法跳出來做更有去的東西。
我很感謝我當初念博士班的時候,指導教授完全不限制我研究方向,只是丟給我問題,以及和我討論我提出的想法。我到處去挖掘寶藏,想辦法讓「平行運算」做得更好。我當時沒想到,「平行運算」是多麼大的領域,也沒想到最後會以「平行應用的最佳化(Optimizing Parallel Applications)」作為我的博論題目。記得某一天,我的指導教授突然對我說:「我覺得我們對平行運算問題的了解的廣泛和透澈程度,大概已經超過所有人了,現在讓我們來想辦法把我們的知識和解決問題的方法寫出來。」(這句話應該是他用以激勵我的話。)所以,我開始寫博士論文,花了半年的時間把兩百多頁的論文寫出來。在此之前,我從來沒有發表過任何論文。
時代不一樣,現在系統更複雜了,如果不給點方向,同學們可能不知道要往哪裡走。然而,我相信最終的目標還是一樣,希望能夠化繁為簡,以簡馭繁。
我做系統研究的樂趣,早先來自於高中時代勤跑光華商場拼裝電腦、跑中華路猛讀電腦書,就像拼圖一樣,想要搞懂電腦是什麼、能拿來做什麼?當時學到廢寢忘時,可惜當時國內電腦系統的師資不足,即使是台大,也沒幾個教授是做電腦系統的,因此我大學絕大多數和電腦相關的知識,全部來自於自修。退而求其次,我從大二開始做專題,藉此得以使用實驗室的設備,以及跟老師要點經費買些電路板電子零件來玩。
出國唸書後,可以學的東西太多了。我的運氣還不錯,計算機結構,平行處理,效能分析,作業系統,資訊安全,網路運算... 在求學和工作的生崖裡,一個問題接著一個文提來,一像技術接著一項技術學,很過癮。這些問題和技術彼此相關,可以讓拼圖遊戲變得非常有趣;基礎若是打好的話,可以讓積木推得越來越高;經驗夠豐富、道理搞清楚的話,可以化繁為簡,以簡馭繁,快速找到解決問題的關鍵。
系統的問題,比起解決一個單純的問題,主要的差別在於複雜的程度。如果把研究範圍縮得很小,可能就失去做系統研究的樂趣。前一陣子有位的研究生,很聰明(可惜不是我學生),見到我聊了一陣子,他說在做某個研究,但整天在跑simulation好無聊,不知道模擬器寫得對不對,也不知到做的東西有沒有用。我想,如果是我的話,如果覺得很無聊,我應該會想辦法跳出來做更有去的東西。
我很感謝我當初念博士班的時候,指導教授完全不限制我研究方向,只是丟給我問題,以及和我討論我提出的想法。我到處去挖掘寶藏,想辦法讓「平行運算」做得更好。我當時沒想到,「平行運算」是多麼大的領域,也沒想到最後會以「平行應用的最佳化(Optimizing Parallel Applications)」作為我的博論題目。記得某一天,我的指導教授突然對我說:「我覺得我們對平行運算問題的了解的廣泛和透澈程度,大概已經超過所有人了,現在讓我們來想辦法把我們的知識和解決問題的方法寫出來。」(這句話應該是他用以激勵我的話。)所以,我開始寫博士論文,花了半年的時間把兩百多頁的論文寫出來。在此之前,我從來沒有發表過任何論文。
時代不一樣,現在系統更複雜了,如果不給點方向,同學們可能不知道要往哪裡走。然而,我相信最終的目標還是一樣,希望能夠化繁為簡,以簡馭繁。
因此,做系統研究的大家一起加油吧... 尤其是同學們,好好練功,找到其中的樂趣,克服困難,將來你們都是重要的大內高手!