2019年2月11日 星期一

劉邦鋒 (台大資訊系教授)


採訪人:柯建宇、柯柏丞、黃柏瑋

1. 求學經歷
2. 回校(任教、研究)之原因
3. 擔任教授期間 學生的變化
4. 簡述專業領域(平行程式設計)
5. 批改娘的誕生及經歷
6. 對資工環境的看法
7. 給學生的建議
8. 書法的影響

Q1:可以請教授分享您的求學經歷嗎?
A1:我是台大資訊系第五屆畢業的,民國70年進到這個學系。那時候高中生對於資訊系真的完全不了解,因為當時電腦並不普及,我們根本不知道電腦是甚麼東西──至少我不知道電腦在幹甚麼,就考進這個系,跟大部分人一樣把這個系念完了。因為覺得還蠻有興趣的,所以當完兵之後,我就出國繼續念博士學位,博士念完之後便回台灣。大致上就是這樣,沒有甚麼特殊的事情。大約在民國七十幾年的時候,那時候的人大部分都是這樣,出國比率很高,而國內的博士班並沒有這麼普遍,所以想唸博士班的人,像是我的同學,絕大部分都選擇出國,出國風氣非常非常的盛。

Q2:為甚麼會選擇當教授而不是進入業界?
A2:其實我畢業之後,在美國業界待過一陣子,但我是公費生,一定要回到台灣服務,因此曾經在中研院待過一陣子,當了postdoc(中研院博士後研究學者),之後就到中正大學去教了幾年,後來就回到台北。
至於為甚麼沒有去業界?我覺得,學界的好處,是你可以做你自己想要做的事情,業界有很多老闆,告訴你下一個、明年度的product是甚麼、要怎麼做……都會有人跟你講;學界就沒有,基本上,你可以做很多你想要的事情,只要能夠符合一些標準。學界比較自由,可以做很多我想做的事情,很多實驗、對於人生做很多不同的實驗,我覺得蠻有趣的;業界的話,就比較被框架限制住了,比如說去做那家公司的產品,而不能做其他的事情,大概就是這樣。我是比較喜歡自由的人,業界對我的吸引力並不怎麼大,學界對我比較有吸引力。

Q3:請問教授,擔任教授的期間,學生以前到現在有甚麼變化?譬如教授在這學年的計算機程式課程,新增了需練習考古題至60分,才能夠參與當周小考的限制。
A3:這個你們年輕人一定不喜歡聽的啦,老先生都會跟你們講說:「現在的年輕人怎麼會越來越差?」不過我坦白講,如果你去翻過去十年來,計算機程式課程的考題難度,你會發現是一直在下降的,若去考十年前的題目,一定會了解十年前和現在差距到甚麼樣的程度。
我是認為你們不喜歡聽,但我還是可以講:我覺得學生越來越依賴,從我的觀點來看,學生越來越有依賴的心,希望老師在一門課裡頭,能夠把所有的東西都準備好,放在一個地方,簡單來說就是「餵食系」,你只要「嘴巴張大」,就懂了。世界上沒有這種事情,很多時候,老師只能告訴你甚麼事情比較「重要」,甚麼事情在「哪裡」。以前的學生,可能跟他講:這邊很重要,回去要看一下,google一下,那就可以;現在的話,就算我們幫他準備很多東西,他還是說:不夠清楚、不夠明白,或者他沒有時間把它弄清楚,這點我是覺得蠻要命的,坦白說,在Computer Science這個領域,不太可能有人把東西都準備好給你,人家最多只能告訴你說:甚麼事情很重要,而「自學的能力」,就是非常非常重要的。現在的人──至少大一的同學,自學的能力是越來越差的。

Q4:可以請問一下教授,「批改娘」(judgegirl)的誕生跟她的經歷是怎麼樣嗎?
A4:這個故事蠻長的。我是2001年來到台大的,剛來的時候,還沒有教計算機程式,是到第二、三年才開始教。那時候教的時候,考試的方式大概就是跟一般課程一樣的方法,比如說要寫一個程式,你就在考卷上「寫」一個程式給老師看,請老師確認對不對,或者是老師寫一個程式後,印在紙上,再給input之後問學生output會是甚麼樣,這種很典型的紙筆測驗。那我個人覺得,這樣的方式大概也沒什麼用,學生就算考過了,也不會寫程式,因為很多程式需要真正跑了,才知道它的問題在哪裡,所以我在約2003年時,大概花了三天的時間,去看MySQLdatabasePerl Script,用Perl Script寫一個Combination script(?!) ,然後用PHP寫它的介面。
前面我提到自學很重要,坦白說,這些東西基本上不是我學過的東西,我就到書店裡去買書,一邊翻書一邊寫,大概花三天的時間把它寫完,之後便開始在用。因為前面幾屆的學生會抱怨說,用紙筆寫實在是很麻煩的事情,我一直在想說這件事情怎麼自動化,當然,2003年的時候線上批改系統很少人用,我就寫了一個。後來的話,之後的助教就一直在改一直在改,才變成現在這個樣子,已經不是我原來寫的,大概已經第三版了,助教一直都有貢獻code進來。那這個批改系統現在已經是Open Source了,在github上面都有,像電機系或者其他系,或者系上的ACM培訓,都有用這個系統,所以基本上是一個蠻robust的、很好的系統,而且已經使用了這麼多年。
我個人在教課過程中發現,是真的有必要使用這個東西,那現在,我相信在台灣,應該是第一個用線上系統去改作業和考題的,學生可以藉此馬上知道他哪裡錯了,也可以馬上改,我覺得這樣也是蠻好的。當然,我希望台灣所有的大學都盡量使用,這樣才是教程式課的有用方式,不要再使用紙筆測驗了。整個過程大概就是這個樣子,因為我教學碰到一些需求,然後我想辦法,用很基本的技術解決,這並不難。

Q5:可以請教授介紹一下您專業的相關領域嗎?
A5:我博士班的時候是唸理論,計算機的Theoretical Computer Science,這個基本上就是你們的資料結構、演算法之類的東西,那比較重視的是平行分散式的資料結構和演算法,所以我是做平行計算出身的。我的背景跟一般人不太一樣,做的是天文物理的平移化,以前人家在算天文物理的時候,受限於計算機,不能計算複雜的model,那我們平行計算就可以讓這件事情變得很快,但問題是我們要學它的domain knowledge,就是天文物理到底是在算甚麼東西。所以,我為了做博士的研究,還要唸一點天文物理的東西,把這個事情搞定。
博士後的階段,比較在做理論和Computer system,那Computer system我做了幾年,因為我有一些System programmingOperating system的基礎,所以可以做這方面的研究。平行分散式系統裡頭,它的效能瓶頸在哪裡,怎麼用演算法和資料結構去克服,克服完之後再實作,實作完再解決這個系統的瓶頸問題--基本上就跟看病一樣,某個平行分散系統可能有問題,那麼找出原因來,用方法去解、去實作,然後證明比以前更好,大家都在做這樣的事情。
你們可以去看我的網頁,我現在在做的都是大型的Database,都是No SQLDatabase,做Cloud Computing,而在實驗室做的比較多的是平行分散式的Deep Learning,因為現在AI也蠻多人做的,但是跑起來都很慢,只能用平行分散式的技術讓它跑的快一點,便是我們實驗室在做的方向。我們實驗室用的技術很多方面,不管理論、系統都要會才能做現在在做的事情。總而言之,平行分散式系統的優化,使用演算法和計算機系統方面的技術,是目前實驗室在做的事情。

Q6:請問教授對現在資工環境的看法?
A6:我覺得還是要回到基本功。Computer Science現在大家都很注重application,我個人認為,Computer systemSystem softwareComputer architecture,跟Computer algorithm,這些東西才是fundamental的,意思就是說,你這些基本的東西不會,那你在競爭就不會有優勢。因為這些是除了Computer science department以外,沒什麼人懂的東西,所以大概不會有人,像是別系的人,比我們懂這些東西--Computer systemOperating SystemArchitecture,在這方面的話,我相信是我們的基礎。
給各位一個良心的建議,基礎一定要穩固,Application才會搞得好,這個我只能點到為止。如果基礎不穩定的話,那做Application可能會碰到瓶頸,譬如你現在在做一個Framework,覺得它太慢了,那你要怎麼辦?比如說,使用的是STL,如果不懂資料結構、演算法的話,你是沒有辦法對它做客製化和優化的,也就是說你會被它限制住。至於怎麼樣調適這些基本工具咧,那就是我們Computer Science比別人厲害的地方,別人只會用Tool,而我們知道怎麼樣修改這些Tool,因為我們知道它的工作原理,不太可能會受限於Tool,還是要回歸基本面。

Q7:請問教授給資工系學生的一些建議?
A7:跨領域學習固然重要,但更重要的是,要學習別人不會的技能,而不是一些膚淺的表面功夫,這樣才可以提升自己的競爭力,未來找工作會更有保障,因為不可取代性是相當重要的。舉例來說,假設你會寫網頁,但高中生也會,這樣公司找高中生還可以省下人事成本;但當公司需要會校調compiler的人才,而你也剛好懂,這樣工作就會是你的了。也就是說,當你會的東西門檻越高,工作就越好找,薪資就會越高。當然,資工系有太多是其他人不會的東西了,所以把資工系教的基礎紮好,基本上工作也不會太難找。

BONUS:請問書法對教授您的生活有甚麼改變或影響?
A:有阿。因為我問過的導生中,現在的人已經不怎麼寫字了,都用電腦打了,那就算有寫字也不會拿毛筆寫字。坦白講,我寫字也是這幾年的事情,但是我們以前國小的時候,是一直要寫到高中,而且我們以前的學校是真的很認真在教,所以我大概知道怎麼寫字,就是需要再練習一下筆法這樣,當然這是很修生養性的東西,小朋友可能沒有這個耐心去好好地把字寫好。那...寫字很OK呀!我覺得寫字蠻好的,可以讓你的心情比較平靜怎樣的,這都很好呀!多鼓勵大家寫字呀!
我這樣說好了,各位可能都知道我是蠻喜歡中國文學的,比方說我就很喜歡讀史記,但是如果有人逼著我要考試、要念史記的話,我可能反而不想念,就是看你的興趣,如果你有興趣的話,你可以接觸一下,我沒有鼓勵要大家都去寫字,這完全不對,你只要有興趣就去碰它,那你覺得有興趣你就去做,沒有興趣就算了,但是總有一些好處啦。是這樣的,就跟我喜歡讀歷史一樣,也沒有人逼著我念,基本上,就是一種興趣或愛好而已,當然你們也鼓勵不來,叫你們寫程式你們也不一定會寫呀,更不用說叫你們寫書法,那更不可能。我只能跟你講說有甚麼好處而已,它可以讓你心平氣和,如果你覺得你無法心平氣和的話,你去寫字看看,你就可能心平氣和,我們現在大概就是這樣子,是蠻有趣的事情,就跟如果我跟你講說打某一個game很好玩,差不多意思,要不要打那你家的事情,我只能跟你講說打那個game很好玩,就跟我說寫書法蠻能修心養性,你如果想做就去做,多試試看。現在人真的很少寫字



2019年1月5日 星期六

廖世偉 (台大資訊系副教授)

採訪人:楊昌明、張道然

Q:當時怎麼會念資訊系?進入大學前有碰過資訊領域嗎?
A:上大學以前,就已經開始跟著建中的同學一起弄電腦,所以自然而然地就對資訊方面很有興趣,因此,對我來說,能念資訊系很高興。

Q:教授您認為在求學階段要怎麼平衡學業和人際關係?
A:在大學時期,同學都就叫我教授,會有這樣的綽號是因為只要同學來問我問題,我都會盡量去教會同學。我覺得在教別人的時候,事實上,我們自己得到的受益是最大的,而且能在拚學業的同時維持與同學的互動,這也算是一種平衡吧

Q:您認為去國外讀書需要具備什麼樣的能力?
A:學習精神、英文與 assertiveness(不是 aggressive)。

Q:您進入 Google 工作的契機?
A:當時,我正在 Stanford University 讀書,沒有主動去找工作,而我在 Stanford 的同學就在 Google 工作,所以會進入 Google 是因為那時候他們找我加入。

Q:您在 Google 負責的領域?
A:待在 Google 的前半段,我主要負責 machine-learning-based data optimization(那時候的 AI 還是 dirty word,而我們就叫做 machine-learning on big data。之後,待在 Google 的後半段是負責 Android Virtual Machine and Renderscript Engine,也因為對 Android 的貢獻而得到創始人獎

Q:是什麼樣的原因回台大教書?
A:回兒時的夢想吧,因為小時候的綽號就是教授。

Q:在校成績對於未來找工作是否影響很大?
A:我覺得最多只會對第一份工作有小影響,但我想大家應該沒有在幻想拿到台大書卷獎就能打通關了。所以我覺得比起在校成績,Team work、跨領域、玩真的、做中學比較重要。

Q:會建議學生們如何找到適合自己的研究領域?
A:事實上,從我的人生經驗來看,跟對人比選領域重要。High-quality 的人不會浪費他的生命在錯誤的領域上,所以我覺得要選 High-quality 的人。

王瀚中 (B02, Google Software Engineer)


採訪人:周寬、王竑睿

Q: 請學長自我介紹一下。
A: 我是B02的資工系學生,我叫王瀚中,大家都叫我瀚瀚。我在Google這邊工作大概9個月了,我是今年二月的時候來的。之前大部分時間都是在打資訊競賽如ACM-ICPC。我的Master念了一個學期就dropped了,因為我就來這邊工作了。

Q: 學長剛才有提到自己都在打資訊競賽,請問參加這些資訊競賽對於你之後課業、研究、業務有什麼樣的幫助?
A: 我覺得就其實不是到非常有幫助(笑。我覺得比較有幫助的是它可以幫助你把你想的事情和寫出來的code之間的mapping關係做得比較好,也就是你可以比較快地實現你想做的東西。可是其實並不需要比到那麼後面也可以。我的意思就是說這對你把你的想法寫成城市有幫助可是並不是說這會dominate一切。

Q: 學長大學時的專題研究是關於哪個方向?
A: 我大學的時候是跟蔡欣穆教授做專題研究,那個時候我們做的是可見光通訊。就是有LED在那邊閃,可是因為他閃爍的頻率很快,所以人眼看不出它在閃。你可以拿相機去拍他,原本光是一圈圈發亮的,但是在照片裡你會看到它是有一杠一杠的。如果閃爍的頻率不一樣,條紋的粗細也會不一樣,會變寬或變窄。所以就可以用這個特性去說比如2mm的條紋是代表哪個bit? 可能代表01,再看你用幾個bits比如18之類的,就可以有一個對應關係。所以就可以用可見光去傳遞資訊然後拿相機去拍,就可以解碼出這是什麼,是在傳遞什麼訊息。然後那時候TX(傳輸端)和RX端(接收端)我都有寫code.

Q: 當初為什麼會選擇加入Google,甚至不惜放棄研究所?
A: 有蠻多原因的,其中一個原因是我想要換一個生活方式,之前也在學校待了四年。來這裡是一個轉變生活方式的機會。另外一個原因是有蠻多認識的朋友都來這邊,然後當時也覺得想換一個方式生活,也想做一點其他不一樣的事,所以就來這邊。跟認識的人一起做事也是蠻開心的。如果只想換一個生活方式,我可以有很多其他選擇,譬如我可以選擇去新創公司。我當時想了很久,我來這邊有一個原因就是這邊算是非常完整的一個公司,來這邊可以受到不少的訓練。在台灣可以先進大公司接受一些磨練之後,你就會知道做一個project會需要哪些知識。譬如說我要訂時程、我要完成什麼目標、我要怎麼跟其他人合作。之後再想要做其他的事情也可以。而且在這邊會遇到很多不一樣的人,像我現在會需要跟很多在美國的人meeting或是跟他們討論事情。

Q: 學長目前在Google的工作內容?
A: Google在去年發布了Pixel 2 Pixel 2裡面有一個chip叫做Pixel Visual Core。那是一個處理影像的晶片,我現在在的Team叫作G Chips,就在做一些High Performance Application,就是我要寫一些Code跑在那個Pixel Visual Core上面,然後看他可以做得多好,像一些關於Image上面的演算法,就需要讀一些Paper或是跟Algorithm Team合作。在開發過程中,可能Tool Chain會有問題或是你覺得應該要這樣寫或者為什麼這樣寫跑不快,這時就要跟Tool Chain Team溝通,大概做的就是這樣的事。

Q: 相較於當學生,工作的loading重嗎?會不會時常需要加班、熬夜?
A: 我覺得在Google可能跟在其他地方非常不一樣。在Google我們非常注重Work-Life Balance,也就是工作和生活是分離的。說加班嗎?其實也不太會。如果說加班是工作超過八小時的話,我覺得沒有,因為這邊很多人工作都遠小於八小時。有些人十點來,有些人中午才來,有些人為了要接孩子四五點就走了。我的話就還好,大概七小時左右吧。有時候做多一點就八小時,很少會超過八小時。熬夜的話也還好,主要是看人。因為我們這邊就是很flexible,你可以比較晚開始做,也可以做到比較晚。像有些人就是夜貓子,本來就很晚睡,那他就熬夜嘛。我是沒有熬夜啦!

Q: 剛才有提到Work-Life Balance,請問學長在工作之餘還會做一些什麼事情?
A: 我有時候會去看音樂表演,就是一些Live House像是The WallLegacy。我們每個禮拜一就有一個羽球日,我們在附近就會租一個羽球場,一起打羽球。有些人會去打籃球,可能在禮拜四。每個禮拜還有一個瑜伽課,就有人會去上瑜伽。譬如說昨天我們就去了密室逃脫。有些人就會玩電腦玩遊戲之類的,不過我就還好,沒有很喜歡玩。總之,可以做各種自己有興趣的事情。

Q: 對於也想在Google工作的學弟妹們有什麼修課、自習、面試等方面上的建議?
A: Google面試蠻偏向coding。以前是手寫,不過現在有電腦可以打字,是真的要寫code,然後code是要能動的。語言的話可以自己決定,想寫Python, C++還是Java都可以。Google主要會考AlgorithmsData Structures,對於new graduate來講,應該這些就夠了。有些再senior一點的可能就會考一些System Designs或是一些Domain Knowledge

Q: 有什麼後悔沒在學生時期裡完成的事情嗎?
A: 我覺得交換學生蠻有趣的,可是我就沒參加過。當時蠻多時間都在準備比賽,要跟隊友一起練習或什麼的,不過其實是藉口(笑,還是可以(抽出時間)去的。

 Q: 最後,有什麼想送給學弟妹們的話?
 A: 我覺得大家修課什麼的,不一定要想着對以後工作有沒有用。我覺得可以去參加一些你覺得有趣的課,雖然這些東西你可能沒有直接的用,可是我覺得有時候多少都會有幫助,譬如說你可能在做某個project,你遇到問題但可能在某一們課上會遇過類似的問題,這時候你就會比較有sense,比較知道該怎麼處理。而且修各種你覺得有趣的課,你才能接觸各種不同的課,就會更明白自己想做的是什麼。