延續昨晚關於「系統」的那篇(https://www.facebook.com/shihhaohung/posts/897340240308465?fref=nf)。我剛剛對一位新生解釋系統是什麼,然後說:
你一定會問「我不大懂系統,能夠做系統的研究嗎?」,這是FAQ (新生笑了一笑),我自問自答好了。
你們大部分考上研究所的新生,系統的底子都不夠,很多連碰都不敢碰,所以來找我的,很多是沒底子但是有興趣,不然就是熱門的教授都收滿學生了,不得已才來找我 :)
沒有底子怎麼辦?首先,是充實對於系統的知識。你分不清楚Arduino, Raspberry Pi, TK1嗎?不知道OpenMP, MPI, CUDA, OpenCL, MapReduce有什麼不同?不知道能分析100MB和能分析100TB的系統差別在哪裡?沒關係,我們可以給你很多資料去看,看了之後就知道了,至少你不會再被說是見識淺薄和瞎子摸象。但這個得要靠你自己花時間讀資料,日後還要不斷學習,才會跟得上新系統的發展趨勢。
其次,是分析系統效能的方法論、工具的使用、經驗的累積,這個就是我們實驗室的強項和可以大幅幫你的部分。這個部分,除非你天賦異秉,否則沒有一個好環境和無人帶領,要自學是很難的。台灣的工程師,只有少數靠著聰明和毅力,才能在這方面達到「出師」的水準;大部分沒有待過業界的教授,有一堆知識,能夠教你知識,能夠教你道理,但沒有辦法教你這部份。
但即便我們願意教你,也得要你願意花時間去實作才行。如果你願意花時間學的話,就來吧。沒基礎的,第一年先打基礎,想辦法提出好的研究題目和計畫。「提出好的研究題目和計畫」是一個很重要的訓練,也是驗證你基礎夠不夠的里程碑,所以不要叫我給你題目和告訴你怎麼做。接下來才是訓練你們的解決複雜問題的能力,那就是真正能夠提昇你工作能力的時候,但我只有基本門檻,你越努力,成長的速度越快,修行在個人。
至於論文嘛,坦白說,碩士班只有兩年,我只能要求你把基礎打好,提出好題目,實作和驗證解決方案,除非你想多念一年半載,否則我不會嚴格要求你們的論文水準,所以我不跟你們談論文投稿的事,雖然之前你們學長姊大部分的碩士論文,我們花時間改寫之後都可以發表,但發表學術論文是教育部和學校給老師的壓力,我覺得沒有理由加諸在你們碩士班學生身上,我們又不是做理論的,實作出有份量的東西擺在眼前,口試委員不是死腦筋,不一定要用投稿來證明些什麼。
我們實驗室畢業的學生,有大學部念財經系、植物系、數學系的學生,你能考上研究所就代表你夠聰明,不用太擔心你的能力,要確定的是你的興趣和決心。不過,我沒有保證你兩年一定會畢業。
洪老師您好,
回覆刪除非常感謝您的分享!!
想請教您關於充實系統知識的部分可以從哪些資料著手閱讀跟實作?
(小魯電機系畢,嚮往能了解EECS產業變動的趨勢,還看得懂英文><)