電腦效能應用與安全研究室 Performance, Applications and Security Lab


我們的研究範圍很廣,從嵌入式系統、手機應用、一直到雲端計算、商務應用、資訊安全都有做。
我們的合作研究夥伴很多,包括聯發科、IBM、中研院、資策會,還有和台大、清大、交大的教授合組研發團隊
,包括高階應用處理器架構研究、虛擬化技術、異質計算、系統軟體等重要技術的研究與創新,我們很關切台灣人才與產業的未來。

2016年3月19日 星期六

Linux Kernel與產業發展的故事

下周(3/22)梁文耀博士要來台大講Linux Kernel,我來暖一下場子,提一下Linux Performance Tools,順便說說故事,免得學生覺得這個老師都找業師來上課,自己倒底懂不懂? 而且故事或許可以告訴大家,從以前到現在有甚麼變遷,不要食古不化、學錯重點了。同時大家也可想想,為什麼要學習Linux Kernel? 學了之後有甚麼用? 如何學習? Linux Kernel這麼龐大,要花多少時間來學? 如果學不得法,事倍功半。

早期,很多台灣的學生和工程師學Linux Kernel只是為了寫裝置驅動程式(device drivers)。因為系統代工廠開始採用Linux作業系統,要讓系統能夠在新的硬體上工作,必須找一群人來寫drivers。下游的系統晶片、周邊晶片、周邊設備廠,也得提供幫自家產品寫drivers給客戶用。

這些年有不少資工系的學生畢業後去業界負責寫drivers。例如聯發科技在業界的風評不錯,使用聯發科技的晶片的客戶,只要夠大咖,在driver方面會得到迅速確實的服務,其幕後當然就是那些刻苦耐勞系統的軟體工程師了,一旦有bug,就會在最短時間解決掉。

十多年前,嵌入式系統頗紅,教授只要宣稱有做嵌入式系統,學生就趨之若鶩,就是衝著台灣系統晶片和消費性電子產品的熱潮。那時政府投入到系統晶片的資源多,做嵌入式系統教學研究的人也分到一杯羹,學生畢業後進了像聯發科技這類的公司,也賺了不少錢,好像大家都很開心。

那時很多人學做嵌入式系統,只是看了幾本書,追蹤過Linux Kernel,寫寫驅動程式,讓系統會動、功能正確就好。在學術界做嵌入式系統研究,為了要發表論文,很多人跑去做系統裡面工作的即時排程、節能省電的研究,搞一堆數學模型和heursitics。這些研究成果雖然也很厲害,但是跟當時的業界的技術層級距離頗遙遠。

距離遙遠? 是的,大多數代工廠只需要按照客戶的規格要求把系統做出來,至於系統上面跑甚麼應用就不是他們要擔心的事了。以HTC為例,早期他代工做Windows Mobile手機,最在乎的就是如何選料做出價廉物美的硬體,而整支手機軟體中唯一能改的,就是drivers了 -- 這是2006年我們到HTC訪問時,軟體部門主管回應我的問題所說的話,因為「微軟只讓他們碰這個」。

因為學界被要求要證明自己是世界一流,業界有很多限制,所以學用落差很大,而兩邊又都很忙,很少溝通,但大家似乎不以為意。或許是因為當時的電子業錢太好賺,業界只要學校開一些簡單的實作課程幫學生打基礎就好,反正業界做的也不是甚麼偉大的研發工作,有了基礎到業界就能在短時間上手,那些眉眉角角的know-how,入行久了自然會知道。因此政府出錢,用補助設備和課程開發經費的方式鼓勵學界開一系列強調實作的嵌入式系統課程。

我在2005年回到台大教書,看到這種情況,很不以為然。同樣是做嵌入式系統的教學研究,我特別強調複雜系統的設計、效能分析與優化,我陸續開了一系列課程,包括「輸出裝置與驅動程式設計」「嵌入式處理器設計」「嵌入式多核心系統與軟體」「計算機效能最佳化」「平行計算機系統與應用」「Linux系統核心與應用」,嘗試訓練一些高階系統實務人才,但絕大多數賺錢的業界公司並沒有珍惜這些技能,也沒有想提升他們自己的境界,原因很簡單,因為搶錢都來不及了。

舉例來說,我在2005年去演講的時候,一位技術學院的教授當場嗆我,你講這些對我們沒甚麼用,我們只要能訓練出能寫USB裝置驅動程式的學生,他們就有做不完的工作了。我認為他看到的職場現狀接近現實,當時需要大量的工程師來幫忙做這些做不完的系統軟體開發工作 (註1),但邏輯上的問題是,這兩年有做不完的工作,未必代表未來二十年都有工作,我們不應該只教那些,業界也不應該只做那些。

大家現在都知道了,膚淺技術的代工業已經大不如前。即便代工,也得有高階技術才能生存發展。(補充說明: 不要誤會了,我很尊重那些注重技術研發、能持續精進的代工廠,包括台積電、聯發科、鴻海這些,他們現在也知道要投資做研發,才有出路。)。那些不上不下的公司,要如何生存發展呢? 這是個大問題。

過了十年,現在還是有很多系統廠還無法轉型和升級,仍然以代工製造硬體搭配膚淺的軟體為主。上個月有一家公司找我去諮商,公司大部分的軟體技術都仰賴微軟的供應鏈,自身的軟體研發能力薄弱。說到為何不用Linux呢? 他們一下子說不敢用,一下子說看不懂市場,一下子又說找不到人才。我說,一直這樣的話,你們也只能讓微軟予取予求,果然講到他們的痛點。以前讓微軟予取予求,就當作是繳稅,現在利潤如此微薄,這個微軟稅繳起來就很痛... 我看那個態勢,似乎是要我介紹人給他們,但我猜想,這公司恐怕僱不起Linux人才,也不見得有給人才發揮的空間,所以就謝謝再聯絡了。

昨天有位考上碩士班的學生來找我,他雖然是名校畢業,但非資工系,全是靠自學。他原本在某家高雄軟體園區的公司上班,做月薪22K的軟體開發工作。一開始聊,他完全聽不懂我在講甚麼,他自承是靠補習考上研究所,但對系統有興趣。其實不只一位學生,這幾天來了好幾位考上碩士班的學生,對系統的認識薄弱到令我訝異。所以我花了不少時間告訴他們如何迎頭趕上,包括看看我們在【開源系統軟體】臉書社團(註9)上分享的資訊和課程內容。

言歸正傳,話說Linux Kernel這麼龐大,要花多少時間來學? 這幾位靠補習考上研究所的碩士生,連Linux都沒用過,要怎麼在短時間內學會做系統研究?

第一,如果想做系統,只要能抽出時間,用力學就對了,不要管要花多少時間,Just Do It! 或許,有了一百小時的研習,可以讓你入門;幾百小時,可成為某個部份的高手,接下來就繼續補充不足、與其他高手過招、漸入佳境。如果想快速成為真正的專家,每天10小時,3年一萬小時,應該有機會。不過各位看看Jserv這麼厲害,我猜他一天超過十小時花在作業系統相關的議題上,搞了30年,大概是10萬小時。

第二,利用社群資源。一般學生在考試陰影下,潛意識中某種程度敵視老師和同儕,因為一個逼你念書,一個跟你搶名次。殊不知,到了研究所,老師和同儕都是寶貴的資源,甚至為了有更多資源,還要設法到網路社群上找。國內外有很多開源碼的討論社群,都可以加入。尤其是最新的資訊,不可能等到人家寫書或是開課來教你,一定要懂得上社群網路去搜刮最新資訊和參與討論。

第三,挑戰高階(複雜)的實作問題。我認識很多聰明人,給他抽象、簡化過的難題,他們可以解得不亦樂乎,但是真實世界是複雜多元的,如果不會解析複雜問題、化繁為簡的話,根本無從解起。這是現代高階人才該具備的重點能力之首: Complex Problem Solving (註2)。有些資訊系畢業的學生,連上千行的程式都沒看過幾個,要如何探討軟體架構 ( software architecture)? 如果在學校能看懂Linux Kernel架構,能了解其運作,嘗試解決其中的問題,也算是個開始。

比如找一個大數據分析應用,設法解決其效能問題。由於很多大數據應用是架設在Linux系統上,這時候解析Linux Kernel的能力,對於改進系統在做資料儲存、資料交換上的效能非常重要。當然,處理大數據所用的中介軟體也很重要,所以我們之後也會來看Hadoop、Spark之類的中介軟體,但我希望大家可以舉一反三,否則只是學到皮毛而已。

效能工具(Performance Tools)的使用,是在實務上分析效能的關鍵。要解決問題,先要有資料;要有資料,最好是能自己動手蒐集,不必等人。要知道電腦系統裡面有很多效能監控機制,使用者可以透過效能工具取出這些資料加以分析。但是系統中有那些效能工具? 有哪些效能工具? 如何使用效能工具? 如何分析蒐集到的資料? 常常需要專業的知識,我們在學期稍後會講,但同學們可以先看。例如網誌的圖,上面列出玲瑯滿目的工具,來自於介紹Linux Performance Tools的網頁(註3),作者就是開顧問公司的。我們當年,在SUN的系統上開發了很多效能工具以及分析的方法,後來幾位SUN的工程師出去開了這家顧問公司。

我回到台大之後,也訓練學生做類似的工作,幫業界解決效能問題(註4)。但是因為過去代工業太賺錢了,願意花時間和傷腦筋創新的大公司不多,所以看到一大堆機會沒有被業界把握住,實在可惜。這幾年新創蔚為風氣,但許多贊助新創的機構的思維還是沒變,為了快速回收,只敢投在淺薄的技術研發上。

不過最近一些資金開始關注到某些「務實做有深度研發的項目」,燃起希望的火苗。例如有找我們解決效能問題的公司變多了,題目的素質也提升了;我學生畢業後到VMFive(註5)和Appier(註6)去幫忙解決效能問題;台灣開始有以解決效能問題的新創公司,例如Skymizer (註7); 翟神開的和沛(註8)最近重金禮聘幾位我認識的Linux專家,希望有好的發展。

台灣的競爭力應該是在人才的素質上,而不是人力的數量上。我想,眼前的業界,是朝向「質」的方向發展,這是可喜可賀的事。至於量的方面,關鍵是業界和政府能否把握機會行動,以及學生能否看清現實,而我只能盡人事聽天命,無法預測未來。所以請各位同學、業界朋友、長官不要問我,現在投入系統研發的行列,未來會不會大發。我只能說,學生要做的話就好好做到出師,業界要做的話就卯足全力衝刺,政府學界要做的話就給足資源,不上不下的半吊子,恐怕是難以呈現出價值的。

(註1)嵌入式系統商機大,卻鬧人才荒 (2005/01) http://www.ithome.com.tw/node/27357

(註2)現在和未來新創所需的技能 (2016/03) https://www.facebook.com/notes/洪�⋯⋯

(註3)Linux Performance http://www.brendangregg.com/linuxpe⋯⋯

(註4) https://www.facebook.com/notes/洪�⋯⋯

(註5)http://www.vmfive.com/


(註6)http://www.appier.com/zh/


(註7)http://skymizer.com/


(註8)https://www.hopebaytech.com/


(註9)https://www.facebook.com/groups/159⋯⋯

2016年3月16日 星期三

現在和未來新創所需的技能

看到這個世界經濟論壇報告裡講到2015和2020的Top Skills,如下圖。從2015到2020次序略有變動,耐人尋味。不過我比較關切的是從新創的角度來看這些Top Skills。基本上,新創的門檻會逐年提升,所以並不見得適合所有人,而且有些技能本來就需要某些資質和天份,不是說猛力訓練就能出得來,應該適性發展,不能過於勉強。同時,這上面所列的能力還頗多元的,但並不是說一個人必須具備所有表列的技能才行。



我先談與新創最有關係的前三項,之後有空再慢慢補充其他項目:
第一是解決複雜問題的能力(Complex Problem Solving),但是要如何才能訓練出這種能力呢?我們做系統研究,就是研究複雜系統裡面組件之間各種互動模式中可能產生的問題,這需要蒐集資料、細心觀察、分析問題根源、提出解決方案、實際驗證效果。這不是在學校裡做那些可預見結果的實驗,也不是去業界做那些受幾個月訓練就能上手的工作所能培養的能力。
第二是批判式的思考(Critical Thinking),更是那些乖乖聽話讀書的人所欠缺的訓練。我們的社會,一向不大鼓勵批判傳統主流想法,甚至把批判和特立獨行看成是叛逆。但是批判式的思考,並不是網民打口水戰、為反對而反對嗆聲,要有足夠深刻的思想,才能脫離膚淺的批判。
第三是創新的能力(Creativity)。在這個資訊爆炸的時代,已經有ㄧ輩子讀不完的好書和電影、電視,還有數位教育課程,甚至還有會解決已知問題、精準完成任務的人工智慧和機器人,如果不創新的話,那要做什麼事來呈現個人的價值呢?但要如何訓練創新的能力呢?除了天才和天份之外,我覺得上述第一和第二項能力也是創新的關鍵,如果懂得解析複雜問題、批判既有作法,那創新的機會可能提高不少。

此外,對於研究人才來說,排在五和第七位的Coordinating with Others和Judgement and Decision Making,也是很重要的技能。

但這些聽起來還是很抽象,要如何發展和應用這些技能呢? 要講清楚並不容易,剛好今天晚上在探索開源系統軟體時,看到一個技術創業的故事,剛好可以拿來對比以上所提到的技能。

話說我對Tachyon這個開源系統軟體很感興趣,原因可能是因為我也早有類似的構想,只是沒有找到有能力而且願意做的博士班學生。今晚突然想關心一下Tachyon的時候,發現他變成了1.0版,而且名字換成了Alluxio (註1)。想多了解一下為什麼換名字,就讀了作者的部落格。



Tachyon/Alluxio的作者HaoYuan Li還在唸博士班,讓我們來看看他的技術創業故事,也試著看看那些地方用得到上述的技能:
  1. HaoYuan Li是2008年北京大學畢業的學生,先到美國Cornell大學念碩士,2011年開始在UC Berkeley攻讀博士。他在北大時,在2005-2008年就到Google實習;2010年拿到Cornell碩士後,到Conviva這家2006年成立的新創公司做了一年,才到Berkeley念博士。所以在念博士班之前,就具備了相當的業界經驗。 
  2. 他看到AMPLAB實驗室出品的Spark和Mesos這兩個軟體紅起來,卻同時也看到這幾個軟體的不足之處 ,這應該就是所謂的Critical Thinking。 
  3. 於是在2012年底產生了Tachyon技術來補充不足之處的想法,這是所謂的Creativity。 
  4. 評估之後,決定這是值得研究的題目,馬上開始做,花了幾個月做出了Tachyon的雛型,這是Judgement and Decision Making。 
  5. 在2013/04開放原始碼,以與社群合作的方式繼續研發,這需要Coordinating with Others的技能。 
  6. 再花了兩年的時間不斷去改進Tachyon ,這就是博士班最強調的Complex Problem Solving 。 
  7. 在2015年獲得750萬美元的投資成立公司。到現在,阿里巴巴、百度、華為、IBM、BARCLAYS等大公司都開始用這個軟體,不知道Alluxio這個公司現在價值多少? 他作為CEO,要讓公司發展,可不能光憑技術,也需要People Management、Emotional Intelligence、Service Orientation、Negotiation等技能。 
當然啦,再說一次,我這裡談的是新創,而且不是說其他的技能不重要,也不是說一定要有這幾個技能才能做新創。個人要如何發展,應該是看個人的資質和願景而定,只是說世界在變,大環境所重視的技能也在變,統計上的資料有其參考價值,但還須要多觀察實際的例子以及了解自己的特性。

理想上,上述的技能,當然是越早適性開發越好,但我們常常批評在台灣長大的人,只會念書考試,我想中國也不遑多讓。我想HaoYuan Li本身的資質應該是頗優秀的,不過在這個例子裡,可以看到UC Berkeley研究所提供了發展和應用技能的環境和機會。這樣的研究所環境,台灣有沒有呢? 以前的學術界的問題已經談過很多,在此就不說了,現在學校比較重視新創和產學,所以建議諸位對新創有興趣的同學和業界朋友,可以設法找到這樣的環境,善加利用。

(註1) http://www.alluxio.com/2016/02/allu⋯⋯

2016年3月3日 星期四

改行做軟體與自學新專業

某位臉友來信談到轉行自學的問題,由於是常見問題,在徵得他本人同意之下,我公開回答他的提問,也希望諸位先進給與指教。

Q. 臉友提問:

我是您Blog & FB 的追蹤者,長時間閱讀老師所寫的文章,而老師也時常點出業界的弊病及提出改善的方法,台灣須從高資本低技術轉型到低資本高技術產業,已是刻不容緩的事情。

本身研究所畢業之後從事顯示器背光模組機構設計(兩年),近年來因技術被大陸追趕,不斷被搶單,而高層只想賺可以立竿見影的easy money,不願意長期投資先端的研發。因為硬體開發成本高的特性,底下的工程師縱使再有想法也無力影響公司改變,最後是失望離開。

因想要轉職&政府補助,在資策會進修過java web設計,目前做銀行AP的軟體撰寫。但是從硬體產業跳到軟體產業,發現若不從事深度技術的研發,依然是在做代工。若是想往系統底層技術發展,勢必須在系統軟體鑽研,而根據老師你近日的文章表示,此領域若不能全心投入很難有顯著的成果。

雖然本身透過下班之餘自學,但以非相關背景進入此領域還是感受到困難。由於您在平行運算&異質系統有深刻的研究,希望可以請教老師有關學習&如何踏入這行的建議。

A. 我的回覆:

在這個資訊全球化的時代,如果只是會做一些眾多人都會的東西,技術門檻不高的話,那麼無論做甚麼,所可能獲得的利益,恐怕還是會和硬體代工業或是傳統產業差不多,除非有個富爸爸或是政府補助。甚至由於資訊科技的進步極快,較為浮面膚淺的東西過不了多久就被淘汰,因此要在資訊界安身立命,談何容易?

如果細心看我的文字,我從來不隨便鼓勵年輕人走資訊科技這條路的,我只是說資訊界目前需要人才,而且在可預見的將來還持續提供人才發揮能力的舞台,但未必所有人都適合走這條路。事實上,這條路並不容易走,如果只是偏重技術研發,沒辦法在生態系中佔據一席之地的話,到頭來還是只能以技術代工,甚至在一窩蜂搶訂單,無法向上發展的情況下,就會遇到您所見的窘境。

我所謂的在生態系中佔據一席之地、向上發展,並不是說一定要擴大營業額、做品牌行銷。那是一般的迷思,覺得代工廠賺錢後,就應該放大利潤、朝品牌發展、直接面對消費者。我認為,以台灣本身的市場規模和經濟實力,在大型消費市場上做品牌行銷,需要大量資本和商業操作,如果沒有技術門檻的保護,很容易踢到鐵板。

因此,其實我並不反對代工,只是我們總是希望工作可以換取更高的報酬。代工業者如果精益求精,提高自己與競爭者的技術差距,就有機會獲得較高報酬。例如台積電、鴻海這些公司,雖然是代工,但他們長期在製造技術上所投入的研發,讓他們得以在生態系中佔據一席之地。

但是要向上發展的話,不只要會做漸進式的改進,而是要能解決原本不會,或是更複雜的問題。例如組裝iPhone的工廠和設計iPhone的Apple相比,一個強調代工製造的能力,一個強調「Think Different」,各有各的專業,但專業的報酬有頗大的差別。雖然很多人都覬覦Apple的高獲利能力,但這並非台灣的廠商能夠快速趕上的領域。

單單只是換個方向朝「軟體」發展,如果不能提高技術門檻的話,也很難提昇工作的報酬。美國的公司,在十多年前就將一些軟體的工作外包到印度去,而印度也欣然地扶植其軟體代工業,然而迄今印度的軟體技術以及從業人員的收入,仍然大幅落後美國。

印度的軟體代工人員的薪資不高的原因是軟體越來越複雜,用途越來越廣,但提高軟體價值的關鍵不在於軟體本身,而在於如何使用軟體開拓新產業,或是提昇既有產業的競爭力。因此,如果我們不改變想法,一頭熱投向軟體產業,做一些低技術門檻的軟體代工,那結果可能就如同您所描述的「從硬體產業跳到軟體產業,發現若不從事深度技術的研發,依然是在做代工」。因此,我希望國內在做軟體研發的時候,能夠找到一些方法來提昇產業的競爭力,包括與特定產業領域知識的深度結合,或是在軟體技術上產生差異化。

想與特定產業領域知識的深度結合,以您目前做銀行AP的軟體撰寫的工作為例,如果只是被動接受委託寫出銀行所需的軟體功能,那就是代工;如果您能夠深切了解銀行的需求,主動提出可能提昇銀行競爭力、因應未來需求的軟體方案,那就是目前最熱門的金融科技(FinTech)了。同樣是幫銀行寫軟體,工作性質有很大的不同。如果要做金融科技的話,就要有能力跟得上這門快速進步中的新興領域,如同我一開始講的,從業者本身若是沒有兩下子,談何容易?

那麼要在軟體技術上產生差異化,可以怎麼做呢?方法頗多,如我昨天在「開源系統軟體」社團上貼文提到,我們可以把改善開源軟體效能的方法分為四大類:

1. 改進演算法,這個是大多數CS的學生都可以試試看的

2. 加入JIT編譯技術加速,範例請參考Jim Huang (黃敬群老師)的筆記(註)

3. 改以平行化,分散式計算或異質運算加速

4. 改進資料流動的效率,例如以DMA/RDMA傳送資料,以caching存取常用資料,以memory取代硬碟存放大數據

要解決實務問題,招數不嫌多。第一招是最多人可以嘗試的,像是參加程式設計競賽一樣,要想到別人想不到的最佳的演算法,難度頗高;第二招需要懂一些動態編譯器的技術,屬於比較硬一點的軟體技術;第三招需要搭配計算機架構/平行計算/網路/GPU,也有其難度;第四招則需要打破傳統以計算為主的思維,在系統層面觀察實際資料的流動,再以軟硬體綜合規劃的方式去改善效能。

然而,要精通上述的每一種招數,都需要花費時間去學習和應用,很難速成。黃敬群老師昨天來我課堂上講三小時,學生起碼要花三十小時才能有起碼的了解,都是學生們必須自己嘗試去學習的,如果所有的東西都要等老師來教,那將來要如何面對快速進化的開源系統軟體?

今天有位大四的學生對我說,他聽了黃老師的課之後非常惶恐,覺得自己懂得太少。我勸他不要太擔心,因為業界有太多人基本的軟體功夫不夠扎實,很少跟社群接觸,根本不知道自己懂太少。知道自己懂得少,有幸遇到明師願意指導,就好好把握學習機會,只要一路學下去,就有機會成為專家。

此外,要使用上述招數之前,必須有能力解析資訊系統和複雜軟體的功能和效能,這些也不是短期間能夠精熟的東西。而且,就算能精通以上的技能,我們還是要回歸到應用面,想辦法用這些技能去改善高價值的軟體應用,提昇產業的競爭力,這樣才會得到重視。

所以說,您問到要如何踏入這行、鑽研系統軟體,這固然有其困難之處,但我想更關鍵的問題在於,您是否了解這個行業快速變化的特質,是否能夠適應這種不斷在演進的場域,願意花多少時間來學習成為專家,以及未來想如何展現身手、持續精進?如果只有下班之餘能夠自學,也不是不可行,但要在有限時間和資源之下迎頭趕上,恐怕難度頗高。

我個人已經浸淫在資訊科技將近三十五年了,到現在還是時常要涉獵新領域、學習新知識、思考新問題,才能維持自己在這個行業的競爭力和敏銳度,如果將此視為興趣,自然會樂此不疲,但若以此維生養家活口,那麼可能還是再考慮一下吧?

延伸閱讀: 關於產業轉型的部分,我另外寫了一篇網誌,可以參考一下: https://www.facebook.com/notes/洪�⋯⋯

(註)

https://ntuoss.hackpad.com/Mar-1-20⋯⋯

https://embedded2015.hackpad.com/Co⋯⋯

冀望新政府來解決學用落差?

包括小弟我在內,很多人探討這些年來高等教育的學用落差問題,有些人希望新政府能解決問題。

我多次說過我不想當官,只想做事,因為我認為在這個時代,當官不見得做得了事,要做事的不一定要當官,尤其是對我這個人而言。因為我個人認為,台灣當前許多問題的根源在於教育文化,而教育文化影響到經濟與政治,衍生出社會問題。這些根源性的問題,光是換一批人執政,或許能改善問題,但並不足以全盤解決。

我想,唯有民眾的覺醒,才能促使教育文化的提升。比如說以下這段報導,希望只是媒體的片段報導,也希望民眾會明察秋毫:

「蔡英文政策辦公室執行長張景森轉述,業者反映台灣教育系統與產業脫節,產業需要的軟體人才非常不足,因為老師教學生寫軟體、或自己寫軟體,也不能升等,造成教育系統產生的人才不符合產業需求。」(註1)

如果把上述這段的「因為」換成「其原因之一是」的話,那我可以接受。但是,邏輯上我不大認同以上這段的說法,因為完全沒有提到業界自己該負起的責任,包括業界提供具備吸引力的工作條件,以及業界與學界合作共同培養軟體人才。

教育部或是學校的長官們,或許不方便出面反駁這個未來可能是上級長官的張景森執行長所轉述的話,因此社會大眾和未來的執政團隊可能以為學界默認了此類業界人士的說法。

因為我沒有長官們的包袱,所以可以大膽跳出來說,當前的學用落差,是這些年學界、業界與政府所造成的共業,我們不能老是讓業界指責政府,政府訓示學校,而學校為了經費只好悶聲照辦,不敢說話。如果換了政府還是這樣幹,是超越不了這個共業所造成的障礙而持續這個循環的。

但坊間往往對於我這類沒權沒勢沒名的人的話不放在眼裡,當成是憤青、酸民之流,甚至學界大老會嗤之以鼻,說不在體制內反映意見,不好好做教學研究,寫這些沒什麼用。但在體制內反映意見能造成改變嗎? 什麼是好好做教學研究呢?

其實張景森執行長轉述的話,就是指出我們多年前就指出的大問題。雖然在過去這些年,教授要快速升等的話,教軟體不如專心寫論文,關心教育界大環境不如教學生鑽牛角尖,至少這是我親身經驗。但我覺得,在新的時代,學術界必須有新氣象,不能再延續這樣的舊文化,所以我覺得該做的事情要做,該講的話還是該講,只是累壞自己的身體,減少陪伴家人的時間罷了。

我在2014-2015年間,接受臺灣大學公共政策與法律研究中心的委託,探討學用落差的問題,撰寫了一份題目為【務實弭平學用落差與促進產學合作】的研究報告,收錄於【台灣高等教育與人才培育--學界業界與政府應負的責任】(註2) 的第五章,歡迎各界參考。學用落差的問題,牽連到產官學各界,如果各自為政,互踢皮球,推卸責任,那麼是解決不了問題的,想概略了解全局的話,可以看看這篇報告,在此我就不多說了。

該報告完成時大約是2015年5月,剛好當時的教育部吳思華部長找我和一群關心高等教育改革的人士某周末在部長官邸做非正式茶敘,我把這份360頁的報告,還來不及裝訂,直接呈上去給部長,建議他有空看看。當然,吳部長有沒有空看,我不知道。我只是想盡我作為國民的一份責任,以及述說我在學界的所見所聞所思。

的確,我是不能只靠教學生寫軟體、或自己寫軟體而升等的,我也不是為了升等而來做「開源系統軟體」的教學研究,而上述探討學用落差的報告,對我的學術生涯不會有加分作用,只希望不要被長官認為是不務正業就好。

有趣的是,這些日子以來,學術界似乎出現某種轉機。這一周來參與了系上的「產學合作」和「新興領域」的策略會議,討論如何鼓勵系上同仁做產學合作以及朝向新興領域發展。最近負責寫新的「研發基地」的構想書,教育部長官已不再拿「大學排名」和「學術卓越」作為首要的目標,而是洋洋灑灑列了十大點:

1. 對台灣前瞻創新產業發展的影響

2. 是否對解決我國社會重要問題有所貢獻

3. 是否成為該領域或主題匯聚校內外人才與研究成果的重要平台,並創造外部連結效益

4. 是否展現階段性研究進展

5. 是否與國際重要研究單位與社群建立合作連結關係

6. 是否在該研究領域上積極促進社會對話、每年提出政策建議書

7. 是否吸引全球人才來台就學工作

8. 在該領域是否擁有整合與學術領導地位

9. 研究成果回饋學生學習的情形

10. 其他學校自訂重點

當然,學術中人最會寫文章,所以要落實一切,最後還是要看評審是否務實,是否有眼光,是否能抗拒人情壓力。否則,就算文章作得再好,結果靠學術人脈結案,還是務虛一場。

除了教育部,產業界和其他政府部門似乎也開始想玩真的,想多投一些資源在軟體研發上,對於開源系統軟體有興趣,找我諮詢發展軟體的對策等等,甚至學生們也動了起來,開始關心起資訊教育。我想,這些都是好現象。

在我談理念的同時,我也跟年輕人談現實面,理想和現實往往是有段距離的,最終還是得一面尋求平衡,一面藉由創新來降低期間的落差。想降低學用落差,也是一樣的道理。我昨天才寫了一篇網誌,公開回應一位想轉行的臉友(註3)。我說,現在是個全球資訊化的時代,當年台灣靠著與美國日本的友好關係和技術合作,也得花上一段時間才能建立起硬體代工、代設計產業,現在某些代工產業所面臨的問題,在於技術門檻不夠高、差異化不夠,會做的人多,只好削價競爭,但是那些夠專業的代工廠,還是有其生存之道。我們鼓勵創新,但同時希望技術門檻要夠,才能真正改變產業。

我希望多一些像我一樣做軟體教學研究的教授能夠升等,但我不能保證;我希望多一些和我合作做軟體技術研發的公司能夠發達,但我不能保證;我希望讓多一些對軟體有興趣的學生更上一層樓,但我不能保證他們一定找到理想的工作。不過我個人覺得,好好想清楚,找到值得努力的理想,比起找到確定能大發利市的工作,更是個人能把握的事情。

對我來說,有個值得努力的理想,在努力的過程中嘗試縮短理想與事實之間的差距、讓自己看得起自己,這樣的意義性比獲得名聲、財富、地位更重要。當然,名聲、財富、地位可能對於達成理想有所幫助,但若捨本逐末,那我就不是現在的我了。

總之,想改變社會亂象,不能只冀望政府,也需要眾多人的努力,唯有促使教育文化的提升,才是根本的解決之道。至於如何影響教育文化? 我想,不是只能由教育部、文化部來告訴我們什麼是教育文化以及解決學用落差問題,可以是由我們主動來告訴教育部、文化部,以及更多的部會,我們希望有甚麼樣的未來,以及我們願意承擔哪些責任。

(註1) http://udn.com/news/story/9485/1532⋯⋯:要能與產業溝通-推動新人才培育,聯合報,2016-03-01

(註2) 「台灣高等教育與人才培育--學界業界與政府應負的責任」,陳永芳、周祝瑛、洪士灝等撰,臺灣大學公共政策與法律研究中心研究報告,2015/05,http://www.cppl.ntu.edu.tw/research⋯⋯

(註3) 洪士灝,臉書網誌: 改行做軟體與自學新專業, https://www.facebook.com/notes/洪�⋯⋯