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


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

2013年10月31日 星期四

談從小開始的資訊教育

今天下午和對於資訊教育極度熱心的Raymond Laii學長一起去拜訪師大資訊教育學系林美娟、林育慈兩位教授,嘗試了解資訊教育在台灣的十二年國教中現實的環境和未來可能扮演的角色。簡要記錄一下我聊到的內容(其中夾雜與會人士個人意見,並不一定是共識):

- 資訊教育是否(要如何)普及到國中小學,政府的立場並不確定,和其他的教育決策,教育部總是茲事體大,保守行事,必須顧及資源分配和人事問題。

- 大多數人只看到台灣過去和目前的狀況,不理解或不相信軟體人才在國外受重視的程度;(有天份的)年輕人如果18歲就有能力做高階軟體研發,甚至從事軟體創業,可能遠比25歲念完研究所的人多了很大的自由度。

- 談到在中小學找尋對電腦有天份的小孩,提供從小培養專業的軟體coders/hackers(培養圍棋國手,從小開始最好),目前還缺乏足夠的教材來銜接Scratch到大學的MOCC,這個需要找人幫忙開發。

- 學習coding/hacking,不是學「照著做」,而是學習「開發創意」和「解決問題」。從小學,學到家了,遇到困難會自學,會善用網路資源,會到學校找人請益,不用擔心「學校沒教」的這種事!這樣的人才,能做一些那種循著「正常」管道一路被考試引導、被告知下一步該做什麼的「好學生」所做不到的事,軟體界需要多些這種人。

- 現階段看來,高中的電腦社團應該是培養軟體人才的溫床。以我的個人經驗,我想一定有些高中生像我當初那樣研究電腦如痴如狂(不是玩game ),當掉幾科都無所謂  真的有天份的話,直接修線上課程,再到大學找老師做研究就行了,不用擔心考試成績和學位。( 歡迎厲害的hacker來找我!)

- 那其他的學科怎麼辦?所謂的博雅教育呢?哈,大家都知道很多從小被考試逼著學的科目,考過了就還給老師了。而且,求學過程中被考試逼著學,就業之後被工作逼著做事,有什麼博雅可言?不被逼出一肚子怨氣就不錯了。如果早點學了一身高強武藝之後,能夠在氣氛好、工時正常、受尊重的地方發揮能力,有剩餘時間去和家人朋友相處、或是追尋自我,不是有可能更博雅嗎?

- 大學會不會擔心沒人來?不會。我很歡迎自學有成的高手到學校來學習更高段的研究心法,我更希望有人能來教我那些我不會的東西。

Intel + Apple = New ARM Chip

Intel終於要為Apple代工做ARM晶片,這是說「人在屋簷下,不得不低頭」?「十十年河東,十年河西」?(約莫十年前,Apple被迫改用Intel晶片)。還是說「識時務者為俊傑」?Intel自己的人不好意思自己來宣布這個,由Altera代為宣告...

這幾年我一直不看好x86的前景,總認為Intel遲早會走到這一天。x86在指令架構上先天不利於低功率產品(計算機結構考題),前天我才說,Apple不會用Intel x86去做什麼Ipad Pro這種東西,對他沒有好處。現在Intel願意屈膝,Apple+Intel有機會雄霸行動裝置(Phone, Tablet, SubNotebook)市場多年。

對於Intel來說,這也沒什麼,只是確認他公司未來的「核心價值」不在於x86而已,至於Atom要何去何從?大概還可以再撐一陣子,一方面用Atom來跟Apple談價錢,一方面利用Apple+Intel的優勢迫使非Apple的公司採用Atom來跟Apple競爭,大概是Intel的如意算盤。走到這一步,台積電的戰略地位和競爭力,是越來越重要了。

參考來源:
http://www.macrumors.com/2013/10/30/intel-to-begin-manufacturing-64-bit-arm-chips-in-2014/

2013年10月24日 星期四

知識就是力量 - 第三次工業革命

Open source的風潮,隨著資訊科技的進步和普及,逐漸影響各個領域。一開始是程式人透過email和BBS分享code,後來有了Web可以讓大家分享各種文件,網路和儲存空間大了之後有人開始分享音樂,P2P之後連分享大型影片都很容易,改變了新聞,文創,音樂,影視的市場。

Open source搭配3D printing,將改變某些實體商品的經營和開發模式。Mobile01文中這位網友,利用開放的資訊自行建構出3D printer。如果3D printer這種構複雜的機器的設計和建造都能夠普及到個人,可想見有很多其他的可能性。既然機器可以open source和DIY,個人可以做的事就挺多的,包括好事和壞事。可以做醫療儀器,也可以做武器。

「雙手萬能」這句話的前提,是有好的工具;知識+工具((Computer + 3D Printing + Open-Source + eLearning)的進步,提昇人的能力,所謂「知識就是力量」,可以具體實現,小團隊可以創造高產值,甚至創造所謂第三次工業革命。

在這篇文章裡,安德森說:「如果你要生產的是最便宜家具,毫無疑問的,你該把工廠設在中國;可是第三次工業革命,我們生產的是有價值的產品,它可能不是價格最低,卻是客戶最想要的產品。」

所以,產品研發的思維上要做改變才行,要知道人家要什麼?「大象企業霸權」能否被終結,我不知道,但有能力的小團隊能做的事越來越多,這點是可以預期的。那麼,躲在大公司裡面吃大鍋飯、濫竽充數的人何去何從?

值得研究的議題實在太多了,可惜時間不夠啊!

2013年10月20日 星期日

電腦科技人的角色?

電腦科技人處在一個變化和進步最快的領域:積極研發和吸收新理論和新技術,持續累積和改善軟硬體智財庫和開發工具,快速推陳出新的產品和商業模式,屢屢大幅改變人類生活的形態,比較自私的一點是,有很多的工作機會和有很大的機率能得到高額的收入。

看過很多文章,這些佼佼者,可以說自己是藝術家(artists)、科學家(scientists)、工程師(engineers)、甚至前瞻者(visionaries)。的確,他們這樣說有他們的道理,畢竟,電腦科技一直在各方面扮演舉足輕重的角色。這篇文章的作者解釋應用開發者為什麼是藝術家,之前我的部落格文章解釋過computer architect這個名詞,是一種像建築師般能綜合兼具藝術家和工程師的專長,而Steve Jobs被許多人認為是一個不世出的visionary。

我好奇地想,如果「達文西」生在今天這個時代,他會如何?他除了是畫家,他還是雕刻家、建築師、音樂家、數學家、工程師、發明家、解剖學家、地質學家、製圖師,植物學家和作家。在他的年代,他在每個角色上,都能夠受周遭人等景仰,如果在今天這種專業分工的時代,他能否依然如此呢?

然而無論會如何,這一切都只是表象!達文西可能一點都不在乎那些頭銜,身為一個有著「不可遏制的好奇心」和「極其活躍的創造性想像力」的人,他只不過是在各個領域運用和展現他的才能而已,他真正想追求的東西,雖然在歷史上仍然是個謎,我猜他或許是希望藉著各種方式的研究,能夠更接近「神」一點。

電腦科技的發展,有沒有讓人更接近「神」「天」或是「道」?這是個好問題。前天Raymond Lai學長來演講特別強調中小學資訊教育的重點應該是coding to learn, not learning to code的概念,我覺得也可以運用在成熟的科技人身上。簡單地說,科技人的文化素養,是有可能在科技研發的過程中,透過思考、廣博涉獵和觸類旁通去營造出來的 -- Let's R&D to learn (other important things in life).

2013年10月16日 星期三

Prof. Trever Mudge來訪

當年教過我【高等計算機結構】(1992)和擔任我博士學位口試委員的Prof. Trever Mudge今天來台大資訊系給演講,聽他演講、一起用午餐、逛逛台大校園、聊聊天南地北,很有趣,這是在大學教書的好處之一 :)


Prof. Mudge's homepage:
http://web.eecs.umich.edu/~tnm/trev_test/

死記硬背會扼殺創造力?

看到有篇標題名為【誰說死記硬背會扼殺創造力?】的文章,談嚴格的訓練,有時候是必要的。再次,我對台灣媒體的某些編輯定標題的手法表達嚴正的抗議。非得要訂出有爭議性的標題,把一篇好好的文章的內容都扭曲了。

分享我個人的看法:

重要的、核心的、好用的東西,如果背起來,當然很好。這個原理跟scratchpad memory (SPM) 的概念差不多 — 把常用的資料放在最靠近CPU的地方,做事會快很多。擺放資料的方式,必須有系統、有效率,找起資料才快。

然而,這個快速記憶體的空間不見得很大,例如我的就很小,沒辦法記太多東西,所以,如何選擇該記的東西才是重點,所以SPM在使用上不如cache方便。人腦裡有類似cache的短期記憶,作用與SPM不同。短期記憶的內容久了之後會消失不見,我猜人腦會自動將一些常用的東西搬到SPM裡面去。

因此,將東西記錄到人腦裡面的SPM的方法,必須藉由反覆操作、背誦。我猜人腦的SPM有點像Non-volatile (NV) memory的概念,寫入的時候比較麻煩,就是所謂的「死背硬記」,但記住之後就不會消失,通常也是用來存放重要的、核心的、好用的東西。

教育的內容如何分類,區分出重要的、核心的、好用的東西?我反對死讀書,是針對那些強迫學生記憶不重要、枝微末節、沒有用的東西,尤其是為解題而背書、背公式,塞了一堆非核心的東西和缺乏組織結構的知識,是扼殺創造力的原因之一。如何將資訊工程的Memory hierarchy的概念,用在教學上,應該是件很有趣的研究題材。

2013年10月15日 星期二

和老天爺面試?

這篇台大畢業學生談在美國找工作的經驗,相當翔實,勾起我當年在灣區應徵工作的回憶。(http://www.ptt.cc/bbs/Oversea_Job/M.1381793536.A.48E.html)

年輕時,並沒有刻意經營人脈,但是,態度良好,有能力做研究,得到師長朋友的推薦,進到不錯的公司,出賣腦力維生。

現在年紀一把,沒有積極經營人脈,只是盡量幫長官朋友做事,招來做不完的工作,還是出賣腦力維生...

其實,仔細想想,我們一天到晚、一年到頭都在面試呢!身旁有人,聽著你怎麼講話;工作伙伴,看著你如何做事;好友相聚,感覺你是否有道義;即便是素不相識的人,也能從網路上觀察你的言行。

台語有句諺語:「人在做,天在看」-- 我們無時不刻都在和老天爺面試?難怪諸葛亮會說;「鞠躬盡瘁,死而後已」了。


UC Berkeley怎麼做big data研究?

看看UC Berkeley怎麼做big data... 以系統研究(計算機架構、作業系統、資料庫系統)的教授為主體,加上幾位做演算法、理論、Machine Learning研究的教授對各種重要的巨量資料應用做最佳化。

巨量資料應用包括:
BLB: Bootstrapping Big Data
Cancer Tumor Genomics: Fighting the Big C with the Big D
Carat - Collaborative Detection of Energy Bugs
CrowdDB - Answering Queries with Crowdsourcing
DNA Processing Pipeline
DNA Sequence Alignment with SNAP

發展出來用以支持巨量應用的系統研究包括:
Akaros - An operating system for many-core architectures and large-scale SMP systems
DFC -- Divide-and-Conquer Matrix Factorization
MDCC: Multi-Data Center Consistency
Mesos - Dynamic Resource Sharing for Clusters
MLbase: Distributed Machine Learning Made Easy
PIQL - Scale Independent Query Processing
Real Life Datacenter Workloads
Shark: SQL and Rich Analytics at Scale
Spark - Lightning-Fast Cluster Computing
Sparrow: Low Latency Scheduling for Interactive Cluster Services

應用很值錢,人家的source code不會給你;另一方面,系統軟體很多都是open source,很大方的提供給識貨的人來用。

現在是application-system co-design的時代,也是打群架的時代。人家組一個團隊來創造擴大價值,我們有些研究團隊還停留在組隊去跟政府要錢分錢的山頭主義。即便能力不足以創新,會善用人家的技術和軟體,也能夠創造很高的價值。

Big data研究的風景很美,比霧濛濛的雲端好多了,躬逢其盛的學術中人,不妨多多走出象牙塔看看。

學生的學習動機與合作式學習

在我的經驗中,學生的學習動機是上課是否認真的要素,這是我研究「數位學習」的原因,看看是否能將枯燥繁瑣的課程,變成易教易學。

多數學生首重興趣,其次以能力(分數)超過他人為滿足,在種種因素(滿足畢業條件、跟要好的同學一起修課、仰慕名師、把學費賺回來等等)之後,才是以「補足能力以生存」的態度勉力而為。對於未曾體會過職場競爭,也未經歷生存壓力的學生,談生存能力的效果不大。尤其在台大,很多學生不擔心未來工作,上述現象相當明顯。

以下這個影片談到合作式學習(collaborative learning),我想試著用在code review的場合,不知道會不會有幫助?我自己還沒機會試驗,還在構想階段。

https://www.youtube.com/watch?v=rWEwv_qobpU

2013年10月14日 星期一

各大學的「系統研究」課程教些什麼呢?

各大學的「系統研究」課程教些什麼呢?參考以下的網頁。光是選論文就大有學問,有些地方偏好經典(聽過System R嗎?),有些喜歡用最新的論文。我們有兩個人合開這們課,希望教廣教深一點,順便互相學習,如果能找到guest lecturer來上就更讚了。上週請到徐慰中教授講Dynamic Binary Translation,下週請IBM Research的Sani Nassif來講一節Reconfigurable Computing。比起教書,我比較喜歡學習!

UC Berkeley: http://www.cs.berkeley.edu/~brewer/cs262/
Stanford U.: http://www.stanford.edu/class/cs240/
Cornell U.: http://www.cs.cornell.edu/courses/CS6410/2012fa/sched.htm
U of Washington: http://courses.cs.washington.edu/courses/cse550/12au/
U of Cambridge: http://www.cl.cam.ac.uk/teaching/1112/R01/materials.html
NYU: http://www.cs.nyu.edu/courses/fall08/G22.3250-001/
Princeton U.: https://www.cs.princeton.edu/courses/archive/fall13/cos518/syllabus.html
U of Waterloo: https://cs.uwaterloo.ca/~brecht/courses/854/readings.html
Technion U.: http://www.cs.technion.ac.il/~dan/course/scs/2011/
HongKong U.: http://msccs.cs.hku.hk/public/courses/2012/COMP8301/
(歡迎推薦和提供更多的連結)

2013年10月12日 星期六

【尊重專業】與【邪惡的平庸】

昨天看到丙成兄的「請尊重教師的專業!」(http://goo.gl/v4PfOa),談到某些不懂教育卻恣意批判教育的家長,可能對教育所產生的傷害。

我想,這位家長的舉動,也是近年來普遍「不假思索就嚴詞批判」的社會現象之一例。這個國家,似乎正流行這類「全民批判運動」。

這是自由的國家,任何人都可以發聲,但是否能就事論事呢?差很多。文章看一半,事情聽一半,就可以恣意批評,在各種討論板上比比皆是。

作為宣洩壓力和怨念的出口,當然是可以理解的社會現象。只是說,淺碟式的思考和議論,很難深入直指問題核心,也難以凝聚共識。

這樣思辨和產生決策的民主 -- 「人民作主」的方式,是人民所希望的嗎?有趣的是,許多人民的言論中,總愛把不滿之事歸因到領導者和做事的人。小孩沒學好是老師、學校和教育部的責任,沒有好工作是企業和政府的責任,往往嚴以待人、寬以律己。

我在讀文章的時候,儘量先從對方觀點出發,想辦法了解文章的邏輯;如果必須批判的話,希望做到對事不對人,點到為止。

我想,在一個富強的民主國家裡,會看到人民在提出種種要求的同時,也有能力在個人層面上做相當的貢獻。簡單地說,看到不對的事,就該好好地批判,提出建言;遇到該做的事,還是要努力去做。這種修養,孟子說:「持其志,無暴其氣」。

連結到昨天所看的電影"Hannah Arendt"。我從來不知道,一個探討政治哲學和納粹猶太這種嚴肅主題的電影,可以拍成如此精采和具有戲劇張力!我那念國中二年級的小孩,剛吃過午餐,坐在暗黑的電影院,能夠眼睛發亮,聚精會神從頭看到尾,真是難得 :)



片中探討所謂「邪惡的平庸」,發人深省。納粹的德國,猶太人的社會結構,集體釀成的大慘劇,難道是由少數的邪惡之人一手完成?抑或是許多邪惡者的共同創作?邪惡的本質為何?放棄獨立思考,順著流走,是否助紂為虐?但缺乏人性情感的思考,又如何與人為善?

從解構主義的方向來看,網路社群的濫觴和台灣目前的批判文化,有其脈絡可循。透過網路,各方人馬針對各類結構以各自觀點所提出議論,實質且大幅體現了解構主義,甚至超越和擴展了社會學家的論述,形成人類生活重要的一部分。因此,如何看待解構主義,如何在解構的思想和生活中看待社會結構和網路人際,已不再是晦澀和遙不可及的哲學思辨而已。

即便在一個西方民主國家、一流的大學殿堂、頂尖的社群,個人始終得面對兩件事:思考和情感。這兩個有時獨立,有時又相互拉扯的面相,綜合呈現出一個人的人性和塑造出人的格局。

理性與哲學似乎仍舊難以洞察人性的情感和道德面,這是西方社會長久一來所面對的問題。東方社會在現代化的過程中,有諸多值得觀察和研究的地方,尤其是在教育和思想方面,應該審慎為之。近年以西方文化為尊的思維,有諸多需要深刻檢討的部份,但願多看到一些具有啟發性的論述。

2013年10月11日 星期五

線狀教學 vs. 有機教學

這篇文章作者提到「線狀教學 vs. 有機教學」的那段,和同學今天問到的問題有關。同學問:「為什麼某些課教一堆數學式子,卻不跟你說這些式子要做什麼用?老師只說,以後就知道了!」

對於有些學生,這樣的「線狀教學 」是不夠好的。我一直想探討的個人化學習,跟這裡所講的「有機教學」,在概念上類似。

但是,「有機教學」究竟是什麼呢?這或許得跳脫「單一課程」的框架,由大領域來看,提供許多可能的學習路徑。這個在當前制式化的學校課程裡比較難,但是在MOOCs當中,應該有很多機會加入和提供所謂「有機」的元素。不過,學生本身也必須更主動學習,掌握其個人的需求。

為了這些,哪些東西需要改變呢?很多 -- 大家不妨多思考,研究哪些東西需要改變,幫忙做些改變。

(註:中譯文的標題定得很奇怪,所以我在他網站上留言說,翻譯文章是項貢獻,但為什麼要定一個和原文差異很大的標題呢?)

http://techorange.com/2013/10/11/edu-evolution/

原文:https://medium.com/lessons-learned-1/82c86796c61b

搞清楚上頭的長官的想法和才能?

蘇文鈺老師看了我的文章後發問:有多少人上班前可以搞清楚上頭的長官,以及長官的長官,他們的想法和才能? (註:這裡談的是資訊科技研發的領域)

這真是問到重點,我回答說:

同學考研究所,在選擇指導教授時,會不會多找幾位教授談談?談談之前,會不會先在蒐集資料和探聽教授的風評?談的時候,會不會嘗試理解教授的想法和趁機考察一下教授的才能呢?

然而,有一部分同學很在意表象呢?教授大不大牌?實驗室操不操?畢業規定是什麼?學長們在ptt上怎麼說?

應徵工作時,也是同樣道理。我去應徵工作時,對方帶我花整天時間跟未來長官﹑同事﹑長官的長官聊聊。好幾個工作都如此,因此我有第一手資料幫助我判斷。

當然不是所有公司和所有人都如此。

向上衝的科技公司,多半求才若渴。如果人才來應徵,應該是會做好雙向溝通。光是interview的形式,就可以觀察到公司長官的想法,甚至公司前景。

是否被視為人才來招募,是另一個問題。要看是資方市場還是才方市場?你要朝人多的地方衝破頭,自然比較辛苦。

但是科技變遷極快,有本事的人,應該還是能找到用武之地。這種地方雖然不多,但是越來越多。所以,你如果覺得自己有本事的話,不要隨便就把自己給賣了,多去了解跟人有關的部份。

2013年10月10日 星期四

由反應速度有多重要談起

這家公司繼上次測試iPhone, Windows Phone, Android Phone的螢幕反應速度之後,這次測平板,有類似的結果,iOS產品的反應速度快很多。http://appglimpse.com/blog/touchmarks-ii-touchscreen-latencies-in-flagship-tablets/

文中猜測原因,不外乎是我們談過的touchscreen design, display device drivers, performance optimization,不過這次我想談談使用者經驗、產品設計和突破困境。

螢幕反應速度有多重要?如果你是個新手,或者只是上網看看email, facebook, 電子書,在大部分時候,你應該不大會感覺到「反應遲鈍」所帶來的困擾。

有位頗務實的朋友,幾年前開minivan,一直說minivan可以載很多人,很好用;後來買了Toyota Camry,他說很安靜、操控順暢,開起來很舒服;今年初買台BMW,讓他開起來很爽。以前一起出國,租過好幾種車,沒聽過他抱怨;上週出國租車,對租來的車子嫌棄的很,一直懷念家裡的BMW。

「回不去了?」

如果你做出一項產品,能夠留住使用者,讓使用者回不去,那你就成功了。我個人認為,比較低劣的做法,是利用非技術、非品質的障礙,困住那些上鉤的使用者 -- Microsoft靠這個混了近三十年,是這個做法的典範。比較高尚的做法,是靠技術和品質的優勢,去留住使用者,一試成主顧 -- BMW是個典範。

暫且不論BMW車主或是Apple使用者是否受廠牌情結、炫富、同儕效應等的心理狀況的影響,純粹欣賞其效能和在使用中獲得爽感的,大有人在。要這些挑剔的人買單,並不容易,一旦能做到,聲名就遠播了。

對於那些越來越倚賴社群網路作為訊息來源的世代,使用者的口碑,越來越重要。行銷部門( marketing)和工程部門(engineering)的緊密結合,是科技公司成功的要素。

我聽過很多業者抱怨台灣本身的市場太小,沒辦法跟大國廠商拼。市場太小是無法更改的事實,那怎麼辦?可以用這個作為藉口,讓自己心安理得地看著公司慢慢衰弱。或者是,像我所看到一些科技公司成功的路, marketing想辦法跳出原有市場的窠臼,眺望新興的市場,找尋能夠與先進科技結合的產品路線以及能夠開發產品的人才。

台灣的困境在於源頭。科技業長久安於為特定廠商代工,滿足於me-too和cost-down式的產品開發取向,在marketing和engineering的緊密結合這方面能夠做到什麼地步呢?是誰來做這些事情呢?站在高位一昧說年輕人不努力的人,很有問題。

Steve Jobs自己和他的手下有很多能人,有了好的將領來帶兵,無往不利。台灣有不少科技公司,但是對於新興市場有真知卓見的將領並不多。

年輕人要去科技公司就業,可能的話,先搞清楚上頭的長官,以及長官的長官,他們的想法和才能。資訊科技不斷在演進,靠著學校教你的東西,要怎麼工作40年呢?寄望用力賣肝五年換的之後可以養老的大筆財富?還是細水長流,不斷學習、強化實力?

最近很多人談「半澤直樹」,很有趣。但想學「半澤直樹」,對抗不合理的環境和狡詐的長官,除了要有運氣,得先有堅強實力和意志力作為後盾。希望我們在反對不合理的環境的同時,也有足夠的實力來做得比在位者更好,而且在崛起之後依然保持初衷,不會被在位者收編而進入當初所反對的共犯集團,那我們國家才會有未來。

2013年10月9日 星期三

學生來信問修習嵌入式系統

學生來信 (2013.10.08):

老師您好 我是醫學院(醫技三)的學生
但是因為對於電機資工領域相當有興趣 所以有在資工系做專題
主題是醫學影像處理
只是說
在寫程式之餘 也對於硬體是如何運作也漸漸產生興趣
所以想說先從嵌入式系統著手 想了解一點基本架構
我買了一本入門書自修 他是用組合語言
我對於嵌入式系統的應用也只想到可以來做生醫訊號處理(因為我的未來發展是想走生醫工程)
不知道這樣的切入點是否正確?
我打算先從硬體結構下手 再去學程式設計 或是利用Keil 等等的工具可以利用C來寫嵌入式系統
(我現在的語言是C++)
不知道是否方便請教您一些有關於嵌入式系統的知識呢?
畢竟自己念書還是會遇到一些問題 或是一些瓶頸

我的回覆:

關於您的問題,我的想法如下,請參考:
- 醫學影像處理未必一定要用嵌入式系統去做,因為嵌入式系統能做的事情有限,複雜的醫學影像處理做不來,有其侷限性。
- 目前我們實驗室在研究醫學影像處理的時候,主要看的是如何用平行處理的方式提升醫學影像處理的速度,這個需要平行處理的知識和技能。
- 我們實驗室另外也有博士班學生研究開發專門的硬體電路來提高效率,這個需要有些邏輯設計的基礎。
- 如果對於嵌入式系統有興趣的話,組合語言不是重點,C語言是必須的,但也不是重點。嵌入式系統的重點在於對於系統的了解,這需要包括計算機結構、作業系統 等科目的基礎。

如果朋友們有好的建議,不妨在此留言,我可以轉給這位學生。

醫技系學生來信之二 (2013.10.09):

老師我了解了
所以說如果就算未來我是去唸了生醫電資所
因為我是非資工系背景 那我是否應該在研究所把這些基礎科目補齊 修課?
我自己研究過 應該是作業系統 計算機結構 系統程式 資料結構與演算法(我現在只有基礎c++能力)
之後也比較容易切入這些領域
如果就算念的不是純資工所 在老師您的眼裡 如果具備了這些知識
也可以算是資工背景嗎?
另外 老師我想在請問 以我的狀況 您認為研究所應該是要往一個主題去深入探討 還是在行有餘力去多修資工系大學部的課程? 雖然說之後如果念生醫電資所 應該是會主修影像處理 但是我也不想讓之後發展侷限在影像處理
(其實現在很掙扎是否要去念生醫電資所還是去考電信所 因為我是醫學院背景 所以我想在研究所獲得工程的能力 剛好我也很喜歡寫程式 所以打算往這方面發展)
當然 相信其他人也會有這些問題 很歡迎老師把這些問題PO在網路上
也麻煩老師要看我這麼雜亂的問題了
謝謝老師

我的回覆:

您的問題,我沒有很好的答案,但是讓我聯想到一些事情,所以我就把我的想法記錄下來,給您做參考。

在學校,學生們通常會思考的問題:

對甚麼有興趣?
未來想做甚麼?
該學些甚麼?

想清楚「對甚麼有興趣」,以及想清楚「未來想做甚麼」,這兩件事情通常是有相關性的,但也可能無關,興趣和工作未必要一致,這因人而異。如果早點想清楚的話,或許會少一些雜亂 -- 對於不喜歡雜亂的人來說,是件好事吧? 對於喜歡順著流走的人,大概不怎麼在意。您既然會來信,大概屬於前者

至於「該學些甚麼」這個問題,如果有明確目標,應該可以擬訂出一套學習程序的,不是嗎? 可是,在進步極快的電腦科技領域中,要設定目標,有時候是相當困難的。

我將您的問題以及我的回覆放在我的facebook網頁上,撇開一些酸溜溜的意見,不少朋友提出了不錯的建議。(訊息是公開的,所以您到我的網頁上就看得到。) 不過呢,這些從個人經驗為出發點的意見或建議,包括我的在內,酌量參考就好,因為大家都還不了解你。

看看這些五花八門建議,其實所謂的【嵌入式系統】【資工背景】【醫學工程】的領域,每一個都包含很多的內容。要學些甚麼,不只要看您的興趣,還要看您的興趣有多濃厚;或者是看您未來想做的事情的種類,是想要研究某項學術,還是利用某項技術,還是「體」「用」兼備的學問?

您既然說對嵌入式系統有興趣,就先修一修基礎的課程,如果修過後興趣更濃厚了,再進一步去多修一些進階的課程,這是比較「踏實」的作法。至於進階的課程有哪些?基礎課程裡面應該有講。

當然,有些人半路出家,也能闖出一番事業,所以您也未必要按規矩來,只要有認真在學東西,一路好好學下去,應該會不會有太大的問題。如果您已有一些計算機結構、作業系統、資料結構的基礎,關於嵌入式系統,線上資源很多,可以自學,甚至還有一些佛心來著的專家,例如我的朋友Jim Huang (jserv) 提供免費的暑期課程(http://wiki.csie.ncku.edu.tw/embedded/summer2013)。

我個人覺得,有機會學習個人有興趣的課程,是一項福氣;學的東西能夠好好用在事業上,也是一項福氣;兩項福氣都有,那是難得的,但往往得比一般人更用功努力。因為,學的多,自然學到有興趣的東西的機率多一些,在工作上派得上用場的機會也多,不是嗎?

您既然說「想在研究所獲得工程的能力 」,我建議您先了解「工程」的本質是什麼。我正好利用這機會來談談我現在很有興趣的工程教育,

目前大學教育的「工程」,來自於英文的engineering。美國的一個工程教育認證組織ABET將engineering定義為"The creative application of scientific principles to design or develop structures, machines, apparatus, or manufacturing processes, or works utilizing them singly or in combination; or to construct or operate the same with full cognizance of their design; or to forecast their behavior under specific operating conditions; all as respects an intended function, economics of operation or safety to life and property".

注意到,工程應該是「有創造性的應用」科學原理 (creative application of scientific principles),在根據某些規格和條件下(as respects an intended function, economics of operation or safety to life and property),去從事以下事項:
- 「設計」或「發展」結構、機器、工具、製造方法等 (to design or develop structures,...)
- 在「完全理解」某工程物件的設計的狀況下,去「建構」或「操作」上述工程物件 (to construct or operate the same with full cognizance of their design)
- 「預測」某些工程物件在特定運作條件之下的行為(to forecast their behavior under specific operating conditions)

所以,嚴格來說,要當個好的工程師不容易。根據這定義,如果只是照本宣科,沒有將科學原理做「有創造性的應用」,例如重複、仿造人家做過的東西,就不是上面說的工程;如果不能動手做設計和發展的話,也不算說是在做工程;只會用東西,但不完全理解所使用的東西,也不算在做工程;至於要能夠預測行為,通常要考慮很多複雜的因素,也不容易。

想獲得工程的能力,可能不是光修修課就行的,要動手做些東西。有工程的能力,到了與工程相關的業界,學習做什麼都快。在學校沒獲得工程的能力,到業界再學,也不是不可能,只是怕沒有時間好好地學 -- 趕進度的時候,很多人就知其然,卻不知其所以然,恐怕搞幾年下來,工程觀念和能力越來越薄弱,只能靠經驗,換個領域重新開始就慘了。

至於選擇研究所這件事情,我就不詳細回答了,因為這牽扯到每個學校、系所和教授的特色,最好親自去挖掘資料、尋找答案。

2013年10月8日 星期二

回答學生問題的原則

最近有些同學寫信來問我問題,我沒辦法一一答覆,在此說聲抱歉。有些同學來信時,並未說明前因後果,貌似將手邊的問題沒甚麼想就丟給我,甚至有的還把數學題目的照片寄過來問我,讓我感到有些詫異。我想,我要保留以下的權利:
(一) 我工作忙起來的時候,我可以延後回答與我工作無關的問題。例如回答修課學生的問題, 是我的工作的一部分,我應立即回答,跟回答網友和其他同學的問題,是不同的重要性。
(二) 我可以不回答那些語焉不詳的問題。例如,問未來找甚麼工作比較好? 建議修甚麼課? 這問題大得不得了,而我們又不認識,叫我怎麼回答?
(三) 我可以將問題依照我的個人興趣排列回答的優先次序。如果問題能夠引起我的興趣,或許我會馬上答覆。
(四) 我可以將問題和我的回覆,發表在我的部落格和facebook專頁上,供其他朋友參考。如果發問者不願意公開自己的身分或問題,請特別告知。

2013年10月7日 星期一

演講:Co-Designing Computer Systems and Applications

Intel靠著個人電腦起家,和Microsoft結合,以所謂Wintel的「通用電腦」(General-Purpose Computer)的形式:Intel負責製造位於電腦中心的處理機、定義硬體平台,Microsoft負責設計作業系統和掌控文書處理軟體的規格,商家和使用者則根據市場和應用,自行安裝軟體。Wintel所向披靡,主宰個人電腦市場數十載。然而,數年前iPhone和智慧型行動裝置崛起,Wintel雄風不再,為什麼呢?Apple和iPhone成功的祕密在那裡呢?

Apple率先注重和掌握的,是系統和應用緊密結合、協同設計的技術,以及使用者的需求。第一,iPhone在送到使用者手上的時候,已經提供了相當完備和順暢的功能。第二,Apple知道使用者對於日常生活所需以及行動應用的便利性是非常苛刻的,不順暢的操作,令使用者感覺不耐。因此,依然停留舊思維的Intel和Microsoft,相形見拙。

系統和應用協同設計的技術,在電腦工程領域多年的研究下,早已開發出許多重要的法則和工具,因此Apple不需要和Wintel或是Android陣營比人多,只要有一群菁英所組成的團隊,就有可能開發出卓越的產品。其實,可以用得上系統和應用協同設計的領域,小至嵌入式系統,大至巨量運算,機會多的不得了,等待大家來發掘。

2013年10月3日 星期四

總經理為何問我CPU的規格?

幾天前,我在一位總經理面前做簡報,他突然問我,你這台筆電的CPU的規格如何?我說:四核心2.3GHz的Intel Core i7處理機,架構是前一代的Ivy Bridge,記憶體加到16GB,為的是用虛擬機跑Windows,跑Windows的理由是為了Microsoft Internet Explore和Office...

他打斷我的話,笑著說周遭很多搞研發的人不知道這些,言下之意,這是個測試。我心想如果他沒有阻止我,我大概還可以講很久,說我目前心目中理想的手機、平板、個人電腦和現在市面上比較好的選擇,以及未來發展的趨勢。果然他下一個問題就是,四核心的手機實不實用,聯發科八核心的手機晶片又如何?

這種問題,其實是最難、也是最容易回答的問題!最難,因為他沒有標準答案,很難準備;最容易,因為就靠著常識、經驗、邏輯去回答就行了,不必死背一堆東西。

想到我當年到SUN應徵工作時,部門的主管問我類似的問題,伺服器上的應用軟體,大概可以用到多少顆處理機來跑?這種問題,適用於那種不想很突兀地考問對方的場合,透過閒談,了解對方的經驗、反應、溝通、陳述能力,更重要的是知道對方是否有熱情。對我來說,對方會問到我所關切的問題,表示對方跟我的看法類似,合作有望。

你如果是研發部門的主管,你會不會希望員工和合作研究的對象對於電腦科技有濃厚的興趣?你很會考試,但是去應徵工作時處處透露出電腦常識不足、對細節不在乎,對方會做何感想?

有熱情,並非是把工作做好的必要條件,但是有熱情的人,往往能比沒熱情的人更主動多做一些研究,很多在科技界大放異彩的人,都是如此。所以如果兩人程度差不多,我應該會選擇對工作內容有熱情的人來做研發。

BTW, 看過「宇宙兄弟」動漫的人,應該知道我在講什麼。

2013年10月2日 星期三

XP升級W7還是W8? 兼談資工人的常識

計概(或是interview)可以考這個當做常識測驗和簡單推理:
1. 如果你的舊電腦上的Windows XP作業系統用得好好的,某天被告知必須要升級的話,你認為是什麼原因呢?
2. 被迫升級,假如Windows Vista, Windows 7, Windows 8的價格相同的話,你會選擇升級到那個版本?為什麼?
3. 以前兩題的答案作為基礎,你能否解釋以下文章中所引用的數據資料?

http://www.engadget.com/2013/10/01/net-applications-sept-2013/#continued


我好奇的是,這種問題,資訊系學生有多少人能回答出來?能回答出來,並不表示厲害,只代表他對於電腦產品的實務有關切到,或是有興趣。

幾天前,我在一家公司的總經理面前做簡報,他突然問我,你這台筆電的CPU的規格如何?我說:四核心2.3GHz的Intel Core i7處理機,前一代的Ivy Bridge架構,記憶體加到16GB,為的是用虛擬機跑Windows,跑Windows的理由是為了Microsoft Internet Explore和Office... 如果他沒有阻止我,我大概還可以講很久,說我目前心目中理想的手機、平板、個人電腦和現在市面上比較好的選擇。

你如果是研發部門的主管,你會不會希望員工和合作研究的對象對於電腦科技有濃厚的興趣?你很會考試,去應徵工作時在這種地方透露出電腦常識不足,對方會做何感想?有熱情,並非是把工作做好的必要條件,但是有熱情的人,往往能比沒熱情的人更主動多做一些研究,很多在科技界大放異彩的人,都是如此。所以如果兩人程度差不多,我會選擇對工作有熱情的人來做研發。

看過「宇宙兄弟」動漫的人,應該知道我在講什麼。

在Montreal思索:台灣人為什麼要那麼辛苦工作?

在加拿大Montreal的Downtown area參加國際會議,看到高昂的物價,工作輕鬆、五點下班的店員,趁著好天氣在公園曬太陽的各色人等,我問道:台灣人為什麼要那麼辛苦工作?

加拿大的領土這麼大,人口只比台灣多一千一百萬人。人家坐擁大批土地資源,有宗主國的文化和軍事庇佑,未受到戰爭的影響,似乎就像是祖上積德,有什麼理由要人民辛苦工作?

台灣的地理和歷史條件似乎和加拿大上述的狀況恰恰相反,如果要某位台灣人要像國外看齊過富足的日子,除非出身富裕,否則得靠自己努力奮鬥。這些大家都知道,但問題是,努力奮鬥些什麼呢?

很多大老闆出身貧寒,靠著苦幹實幹出頭,但底下的員工賺的還是辛苦錢;書念得好的人,可以成就功名,但高階的工作機會就那一丁點,普通人過的還是辛苦的日子。

我最近遇到幾位年紀大我一些、在業界的學長們,他們對於台灣的前景憂心忡忡,想要為台灣多做些事情。(我有點不好意思,因為我曾在多篇文章中罵三四年級的人沒做好榜樣。)我說,台灣聰明人很多,但是都只顧自己,靠一般的政客富商是靠不住的,光是要我們在學界訓練高階人才是不夠的,你們和我們多找些志同道合的人聯手,想辦法把一些高階的工作機會帶進來,把能夠承接這些工作的人才訓練出來,我們靠著開發台灣最有價值的資源「大腦」,一起去把國際市場的大餅帶回台灣,不是很好嗎?

這個看似簡單,卻不容易的工作,就是台灣這麼多年來沒有做好的事。學界開發了很多大腦,但是並沒有緊密地和業界聯合起來去吸引更多的國外資源,這些已開發的大腦,只好想辦法成就他們個人的功名,或是被自我設限的老闆放在某個崗位上做些他們能做的貢獻。

我似乎看到一些盲點。那些認為「讓學術歸學術,產業歸產業」的人士,到底有沒有看清楚開發人民腦力資源對於台灣的永續經營的重要性?學術再卓越,學校的世界排名再高,這些腦力資源能夠對國家的前景有多少貢獻?與其研究去鞏固或維持系所排名,或者苦思公司目前能賺多少錢,是否能多花時間想想培養出能夠為國為民的棟梁之才的方法?

我知道可能有人會笑:這什麼時代了,還談什麼為國為民?我想,不談為國為民的話,台大校訓中的「愛國、愛人」是講假的嗎?現在不只要談這個,我還希望有很多能夠有所作為的人出來幫忙以身作則,這樣才能引導讓年輕人奮發圖強。

如果這樣還沒辦法,那我只能說,我努力過了。

台灣產業的心態會改的,現在很多人知道不改的話,會走不下去的,低風險靠政府補貼的生意沒有了,早改的人未來才有成功機會。成功和失敗本來就是接踵而來的,而早點知道失敗的到來,也能早點迎接下一段成功的到來。歷史經驗是如此,懂的人可以盡可能不受擺佈,無需過於感慨。

2013年10月1日 星期二

趁早學電腦科學與工程?

電腦科學與工程是一件可以趁早學的知識。很多的課程,只需要邏輯觀念和基本的數學,因此:(1)不必等到大學才學。(2)提早學習對於訓練中式教育中所缺乏邏輯思考幫助很大。國內很多人以為學電腦就是學會用Word, Excel, PowerPoint或是做網頁,那個不是學科學與工程,而是學習作為電腦的使用者。就像學開挖土機,並不是學土木和機械。但是,國內一般坊間或中小學的電腦課程,大都以教這類「使用手冊」的知識,對於訓練科學和工程幫助不大。

我個人認為,電腦科學和工程教育的重要性,不會比物理、化學、生物、地球科學低。台灣的中小學如何引進資訊教育,是一個方興未艾的課題。

軟體開發,有時像文創產業,不是人多就行的。不然每個台灣人從小學國文,能成為作家的,怎麼少之又少?因為真正厲害的作家,除了勤於讀書寫作之外,還要有天份。但話說回來,很多地方需要人來寫公文、整理資料、寫分析報告,所以也需要各種軟體開發人員。

有天份的人,即便晚一點開始學軟體開發,還是能學得不錯;但是,有天份的人有沒有機會知道他們的天份?能不能被發掘出來?很可惜,以目前的情況來說,我想答案是「不容易」。如何將「不容易」變成「有機會」,是關心教育和國家競爭力的人可以思考和努力的工作。

參考:

自主學習的故事和世界大同的美夢
http://hungsh-ntucsie.blogspot.ca/2013/09/blog-post_25.html

數位學習時代的資訊業界與大學
http://hungsh-ntucsie.blogspot.ca/2013/09/blog-post_8654.html

還在逼小孩學音樂學外語? 外國家長正瘋讓孩童學寫電腦程式!http://wired.tw/2013/09/30/kids-coding/index.html

(關於最後那篇的標題,我已經不想講了,除非是內容差太多,我才講。現況是,台灣的媒體編輯總是要定出引人注目的標題,作者有時也無能為力。)