要不要繼續念書?博士篇
12026
March 20, 2012 by HelloUS.com
隨著畢業季的到來,學生們忙著研究畢業後下一步;老師們忙著給意見;學長姐忙著講故事;每個人好像都有自己的想法,可是沒有人真正的有答案。

以下幾篇是最近幾篇很紅的網路分享,借前人的智慧,站在巨人的肩膀上,大家可以思考看看囉!!

題目:我為什麼要念博士?

作者:vgod,麻省理工學院博士班學生


最近好像很流行討論要不要念碩士, 像是xdite的我不會念碩士和彭明輝的不甘不願地念碩士。在美國則是看到Matt Welsh寫了Do you need a PhD?討論該不該念博士。

我在MIT博士班已經念三年半了,預期今年六月要畢業,剛好可以在30歲前畫下一個值得紀念的里程碑。在畢業之前就順便利用這篇文章總結一下我的感想,也可以讓未來更多迷惘的人看清未來的各種選擇。

簡單的說,如果讓我重來一次,我還是會念碩士班還有博士班。我知道很多人在選擇要不要念研究所時,是看對未來的就業有沒有幫助,甚至是沒有選擇的空間而被家長強迫升學。我從國中起就很清楚知道自己想做什麼,但我並不是會做長遠規劃的人,而是走一步算一步,因為我覺得世界變得太快,提前規劃五年十年後的職業道路並沒有太大意義。所以我雖然很早就知道自己喜歡寫程式和研究新東西,但我一直到大四才決定要念碩士班,到了碩士班才決定要念博士班。

念書一向不是我的興趣,高中沒認真上過幾堂課,然後靠著程式比賽混進台大。在台大時我也都不去上課,整個四年我唯一全勤的課是大三的compiler,因為這是唯一一堂讓我覺得去課堂裡聽課比自己念還要有效率的課。但雖然沒去上課,我可是很認真寫作業的,尤其是程式作業我都會做把所有可以做的bonus全做完,有空的話還會自己多加一些有趣的功能。也因此到了大四時,我的成績還能勉強進入推甄台大研究所的門檻,等於可以免試直升碩士班。但除了學校生活外,我從大一時就在學校外的網路公司兼差寫程式和做顧問,同時也在系上的工作站實驗室幫忙管理一堆伺服器和Linux主機,到大四還同時在另一個startup公司打工兼差,所以生活其實還蠻多采多姿的。在當時(2005年)這種情況下,其實不太難決定要不要念碩班,因為 1) 我還不想當兵 2) 我當時這些打工的收入其實比一般大學畢業生起薪還高不少,而且我花在這些工作的時間很少,每個禮拜還有很多時間可以自由運用 3) 我找到了一個好老師,給我很大的空間可以在碩士班做任何我想做的題目。
於是我就這樣繼續待在台大念了兩年的碩士班。

在碩士班時,我最大的收穫是打開了眼界,透過世界頂尖的論文知道了這領域中最先進的研究和問題是什麼,也慢慢了解MIT、Stanford、Harvard那些世界頂尖的大學都在做什麼研究。我雖然喜歡寫程式,但也不喜歡老是一直寫簡單的留言板或是blog這種書本上的萬年範例程式,只有一直做新東西才能激起我的熱血。慢慢的我也發現念博士班可能是最適合我的路,可是同時我也有幾個掙扎的地方 1) 要念博士班就要去國外念最好的學校才有意思,那就得先花一年當兵,而不能找個公司做四年國防役而不當兵 2) 博士班平均要念六年,同樣的時間如果我在台灣工作,損失的機會成本是台幣一千萬以上加上六年的年資 3) 出國唸書要離開熟悉的地方,熟悉的朋友、家人,要用很破的英文在獨自國外生活 4) 博士畢業實際上會減少就業機會的選擇,尤其是在台灣,真正需要博士的企業非常少。

我在台大認識很多人都有出國唸書甚至在國外工作的夢想,所以對他們來說這些障礙都不是問題。但對我來說,出國唸書最大的誘因只是有機會在世界頂端的學校做自己喜歡的研究,和全世界最厲害的人一起工作,至於是不是要在國外工作則是想都沒想過。

想清楚這點後,我立定一個目標,我只申請我最想去的兩家學校,如果上了而且有獎學金我就去念,不然就算了。

最後的結果是我幸運的申請上了MIT CSAIL,指導教授也能給我獎學金,所以我現在才會在這寫這篇文章。

回過頭來看,現在很慶幸我有決定要嘗試一下申請MIT,即使當時看起來成功的機會渺茫。而這幾年念博士班帶給我的收獲,也遠大於當初的想像,在美國可以得到的各種機會更是在台灣一輩子也碰不到的。

雖然一開始看起來在經濟上會損失很大的機會成本,但實際上美國各種科學和工程科系的博士班都有獎學金(RA、TA、或fellowship),以MIT這種私立學校來說,一個教授每收一個人就要幫他付一年總共七萬美金的學費和生活費,當初我即使在竹科爆肝做不是很喜歡的工作,一年的收入也不會比七萬美金多多少。當然,以帳面上的收入來說,博士班念完是存不了多少錢的,因為七萬美金一半是要拿去繳學費,剩下的生活費也大半要繳房租和吃飯過生活。在台灣工作六年可能可以買個房子,但在美國念完博士班只會得到一個博士學位和少少的存款。

那話說回來,這個博士學位到底值不值得?如果在四年前還在台灣時的我來看,我會說我不確定,但在MIT待四年後,我會說「200%值得」。
首先最大的「福利」是在完全自由的環境下(包括經濟上的自由,選題目和選合作夥伴的自由),和全世界最聰明的一群人一起研究各種既有趣也有挑戰性的問題。這種機會非常難得,如果大學或碩士畢業就去工作,一定會在題目和合作夥伴上受限;如果自己創業,就會在經濟和合作夥伴上受限;於是念博士班成為唯一可以同時得到三方面自由的最佳選項。至於對於能力的增進方面,最大的收穫是英文變好了,可以輕鬆跟來自世界各地的人溝通,讀寫英文論文也是跟吃飯一樣簡單。另外就是「做研究」的能力,雖然我覺得我本來就是一個靠自己學習和研究新知的人,但博士班的訓練是把這件事變得系統化,讓我可以幫更多人學會這樣的能力。做研究的能力還有一個更重要的面向,是判斷什麼題目才是有研究價值的,而什麼是沒有的。如果沒有這項能力,不管未來做什麼事都很容易瞎忙,例如說花很多時間做一些簡單瑣碎的小事、研究一個一百年前早就有人完全想透的問題、或是卡在一個早已被證明不可能有解的問題上。

至於念博士這幾年的年資和可能減少的工作機會,現在看來實在一點都不重要。因為一旦畢業後,打開的門是「全世界」頂尖企業和研究機構的機會。資訊科學的博士在美國出路非常廣,我都還沒畢業就一天到晚收到各式各樣獵人頭的信,除了矽谷那些大大小小的軟體和網路公司外,華爾街的hedge fund都是直接開出矽谷兩到三倍的價碼在搶人。如果對這些沒興趣的人,也很容易到大學或是大公司的研究機構中繼續做研究,或是直接加入學校附近上百家的startup中當個CTO或tech lead。

這些機會如果我當初待在台灣,就一輩子也見不到甚至聽不到。(我在台灣時甚至沒聽過hedge fund這個詞,也沒聽過有哪個念資訊的會去這種公司。但實際上美國最厲害的幾個hedge fund全都是用數學、物理、資訊的博士用非常科學的方法在賺錢的。有興趣的人可以看看前MIT教授James Simons開的文藝復興科技(Renaissance Technologies)。)

世界很廣大,相較之下台灣真的是一個小小島。如同Sega的《我為什麼離開 Google》說的一樣,台灣沒有軟體產業,甚至在其他產業中也很少有軟體專業能發揮所長的舞台。我希望台灣能夠更好,但同時我也覺得每個人的眼光應該放遠放大,看向世界和未來十年二十年,而不是聚焦在台灣、中國和未來的兩三年而已。
Disclaimer: 這篇文章不是要鼓勵每個人都念博士,我知道很多人對於學術研究沒有興趣和熱情(其實我也不太有,我只是喜歡打造新東西而已)。但是,眼界、研究和實作能力的培養則是每個人都能自己做的,這些才是真正影響一輩子的事情。

資料出處

___________________________________________________________________________________

題目:Do you need a PhD?

作者:Matt Welsh,Google軟體工程師,以製作手機相關軟體為主,進入google前是哈佛大學的電腦科學教授


翻譯

自從我離開學術領域之後,常有研究新生問我倒底念電腦科學領域的博士學位有沒有價值("worth it")??

從公司角度來看,找google工作並不需要博士學位(雖然博士學位有一定程度的加分);此外,許多公司的創辦人創立公司時,連大學學位都沒有,更不用說博士了(臉書Facebook、微軟Microsoft等公司)!

念博士肯定不是每個人都應該做的事情,而我也不覺得這個決定適合大多數的人。不過,就我個人而言,我很慶幸我有機會念博士,而不是畢業後馬上就業。
最大的吸引力就是我在念博士的時光中,學到許多許多的東西是單純當一個工程師學不到的。在博士班時,我們被訓練要如何做研究、如何讀論文、如何跑實驗、如何寫報告和如何給演講。更重要的是,我了解到如何去找問題、找方法,最後解決問題(how to figure out what problem needs to be solved)。在寫論文的過程中,學生學得精細研究技巧,進一步,還有機會公開自己的研究和其他的同儕討論。

我認為博士生涯有點像十六、十七世紀的學習旅行(the Grand Tour,現在稱為gap year)。剛成年的人旅行到法國、義大利和德國學習藝術、建築、語言、文學等各項技能,作為未來進入社會的奠基。博士生的生活也是類似:念電腦科學博士的學生有機會大量的接觸這類的專業知識,進而成為這個領域的翹楚。如果要進入頂尖的學校學習,條件更是嚴苛,需求大量的報告、教學經驗、考試成績、研究方向等任何對於研究有益的基礎,因此,學生在學習過程中獲得大量且有深度的技巧。

就軟體工程師而言,博士學位有很大的加分作用,尤其是那些未來想要成為這領域的領導者。有些技能的確是要從經驗中(on the job)獲取;但是創造自己的電腦編譯程式、設計新的操作系統或是證明複雜的運算方法卻可以了解更深層的電腦科學。
就我自己而言,博士生涯讓我有機會學習了解以下的知識:

如何閱讀和評論研究報告:一個研究生和教授隨時隨地都要看上千篇的研究論文,從中整理研究結果、評論研究方法並彙整與自己的研究做比較。每次看完論文後,都更進一步的接觸到大量不同的題目、研究方和系統設計等資訊。這些資料不只可以讓自己獲得專業知識,還可以更熟悉科學領域的用語。

如何撰寫報告和上台演講:工程師一定要具備流利的科技語言(technical communications),而我認為這種專業溝通方式是博士生和其他人最大的不同,有經過訓練的人往往可以給出更清楚、更有組織性的評論;寫出更有架構的研究和呈現明瞭的實驗結果。一定的訓練後,受過訓練的人當然在資訊傳遞上更加有效率。

如何運作實驗和解讀結果:實驗是工程師重要的技能。一個以系統操作出生的博士生需要千萬次的實驗,並且用各種方式呈現結果,包含:條列式、研究論文方式和圖文比較。之後,你的研究方法還會受到各方專業人士的評論(包含教授、共同作者或是論文檢閱者),很快地,你就可以找到正確的方法做實驗,並且成功地找出結果。

如果找尋題目和解決方法:這個是我認為博士生可以獲益最多的地方。作博士研究期間,你會有很多機會探討題目,激發潛能。約有百分之八十的研究時間都是在找要做的題目,並且要夠有吸引力、有趣味性、有影響力。因此,找到最正確和最適合的題目就是一個真正的難題,而也是一個決定自己能力培養的關鍵決定。

總和以上原因,我還是認為博士生活是很值得投資的,尤其是你如果對於鑽研高難度問題有興趣的人,這條金科玉律是在學術、職場和研究等領域都是通用的。不過,決定前要想清楚,這是不是你要的,畢竟,我的指導老師說過:「念博士的投資是超過一棟房子的價值。」

原文

Since I decamped from the academic world to industry, I am often asked (usually by first or second year graduate students) whether it's "worth it" to get a PhD in Computer Science if you're not planning a research career. After all, you certainly don't need a PhD to get a job at a place like Google (though it helps). Hell, many successful companies (Microsoft and Facebook among them) have been founded by people who never got their undergraduate degrees, let alone a PhD. So why go through the 5-to-10 year, grueling and painful process of getting a PhD when you can just get a job straight out of college (degree or not) and get on with your life, making the big bucks and working on stuff that matters?

Doing a PhD is certainly not for everybody, and I do not recommend it for most people. However, I am really glad I got my PhD rather than just getting a job after finishing my Bachelor's. The number one reason is that I learned a hell of a lot doing the PhD, and most of the things I learned I would never get exposed to in a typical software engineering job. The process of doing a PhD trains you to do research: to read research papers, to run experiments, to write papers, to give talks. It also teaches you how to figure out what problem needs to be solved. You gain a very sophisticated technical background doing the PhD, and having your work subject to the intense scrutiny of the academic peer-review process -- not to mention your thesis committee.
I think of the PhD a little like the Grand Tour, a tradition in the 16th and 17th centuries where youths would travel around Europe, getting a rich exposure to high society in France, Italy, and Germany, learning about art, architecture, language, literature, fencing, riding -- all of the essential liberal arts that a gentleman was expected to have experience with to be an influential member of society. Doing a PhD is similar: You get an intense exposure to every subfield of Computer Science, and have to become the leading world's expert in the area of your dissertation work. The top PhD programs set an incredibly high bar: a lot of coursework, teaching experience, qualifying exams, a thesis defense, and of course making a groundbreaking research contribution in your area. Having to go through this process gives you a tremendous amount of technical breadth and depth.

I do think that doing a PhD is useful for software engineers, especially those that are inclined to be technical leaders. There are many things you can only learn "on the job," but doing a PhD, and having to build your own compiler, or design a new operating system, or prove a complex distributed algorithm from scratch is going to give you a much deeper understanding of complex Computer Science topics than following coding examples on StackOverflow.

Some important stuff I learned doing a PhD:
How to read and critique research papers. As a grad student (and a prof) you have to read thousands of research papers, extract their main ideas, critique the methods and presentation, and synthesize their contributions with your own research. As a result you are exposed to a wide range of CS topics, approaches for solving problems, sophisticated algorithms, and system designs. This is not just about gaining the knowledge in those papers (which is pretty important), but also about becoming conversant in the scientific literature.

How to write papers and give talks. Being fluent in technical communications is a really important skill for engineers. I've noticed a big gap between the software engineers I've worked with who have PhDs and those who don't in this regard. PhD-trained folks tend to give clear, well-organized talks and know how to write up their work and visualize the result of experiments. As a result they can be much more influential.

How to run experiments and interpret the results: I can't overstate how important this is. A systems-oriented PhD requires that you run a zillion measurements and present the results in a way that is both bullet-proof to peer-review criticism (in order to publish) and visually compelling. Every aspect of your methodology will be critiqued (by your advisor, your co-authors, your paper reviewers) and you will quickly learn how to run the right experiments, and do it right.

How to figure out what problem to work on: This is probably the most important aspect of PhD training. Doing a PhD will force you to cast away from shore and explore the boundary of human knowledge. (Matt Might's cartoon on this is a great visualization of this.) I think that at least 80% of making a scientific contribution is figuring out what problem to tackle: a problem that is at once interesting, open, and going to have impact if you solve it. There are lots of open problems that the research community is not interested in (c.f., writing an operating system kernel in Haskell). There are many interesting problems that have been solved over and over and over (c.f., filesystem block layout optimization; wireless multihop routing). There's a real trick to picking good problems, and developing a taste for it is a key skill if you want to become a technical leader.
So I think it's worth having a PhD, especially if you want to work on the hardest and most interesting problems. This is true whether you want a career in academia, a research lab, or a more traditional engineering role. But as my PhD advisor was fond of saying, "doing a PhD costs you a house." (In terms of the lost salary during the PhD years - these days it's probably more like several houses.)

資料出處

_______________________________________________________________


題目:給進退兩難的博士生

作者:彭明輝,清大教授


一位讀者來信問,面對國內博士過多的問題,「你會鼓勵你優秀的學生唸國內或國外的博士班嗎?就算國外名校畢業的博士也可能找不到理想的教職工作怎麼辦?」

我一向鼓勵自己的兒女出國,但是有一個條件:必須是為了打開自己胸襟與眼界而讀書,而不是為了找到更好的工作――唸完博士本來就不一定會找到較好的工作。我甚至經常跟年輕人說:唸完博士以後很可能會更難找到工作,屆時一定要記得:出國是為了開發自己的能力,如果是因此而使得找工作更困難,一定要記得初衷,願意比沒有博士學位的人更努力去屈就找得到的工作,甚至花更多的時間去找到一份不喜歡但過得去的工作。理由等一下馬上就說。

除非妳有出國的好理由(以前的部落格文章裡提過三種),其實我從不鼓勵學生出國(不管妳多聰明),我尤其不鼓勵學生為了找到更好的工作而出國。台灣的產業界絕大多數不需要有博士學位的人――他們要的是聰明的人,但聰明跟有沒有念博士一點關係都沒有。

我從不鼓勵學生在國內念博士,任何人找我念博士一定會被我質問一大堆問題,並且跟他們說清楚念博士跟賺錢無關,在國內念博士很難找到教書工作,最後他們還有能力說得出來為什麼仍舊要跟我念博士,我才會收。接下來,我在引導他們做博士研究時,一定默許他們自己另外花時間培養就業技能,甚至協助他們培養就業技能,而學生若想要中途輟學離開,我一定同意,毫無困難。所以在清華教了28年,在我指導下畢業的博士一共只有四位。

國內學校沒有多少教職的缺,早已如此,而人文學科更是如此。名校博士找不到教書的缺,1990年代以來就已如此,虎尾技術學院早就有一位MIT的博士。

現在狀況更糟。名校回國的博士一大堆,極少數人一回國就申請到國立大學的教職,能夠在回國兩、三年後從私立的科技大學轉到國立大學的,已經算是非常的幸運、傑出。有更多的歸國博士好不容易地申請到不知何時會倒的私立科技大學,每年要設法像拉保險一樣地拉學生入學(算積分、點數),卻一直沒有辦法申請到更保險(不容易倒)的大學。這樣子一直蹉跎歲月,真怕他們有一天會變成中高齡失業。

而申請到國立大學的名校博士們,往往為了六年升等而跟別人一樣不擇手段地炒作論文,還要迎合系裡的大老,參與他們的產學合作計畫,實際上是幫他們發展業界需要的技術(而大老只負責要錢、不做事)而無法發表論文,以及負責系裡各種行政工作,當大老與系主任的小弟。

學術界風氣這麼糟,其實我已經不再鼓勵優秀的年輕人非得教書不可。能教書也好,我現在更鼓勵優秀的年輕人出去創業,增加就業人口,避免台灣被少數財團綁架、勒索。如果沒機會教書,自己也沒有能力(或興趣、性格)創業,要低得下頭,忍得下屈辱,跟高中、大學畢業的年輕人一起幹起,甚至比他們忍受更多老闆的質疑與屈辱,去找到第一份工作。

大部分老闆不喜歡博士,因為他們很難帶:沒讓他們比別人早升等,他們會一肚子怨言,成為公司裡的亂源;讓他們比較快升等,公司年資久的員工會怨老闆,一樣是製造公司管理上的困難。帶著博士頭銜想要進公司,妳必須要讓老闆相信:妳願意跟大學畢業生一樣從基層幹起,也願意跟大學畢業生一樣慢慢升等,妳重視公司與同事的情誼,絕對超過升遷這種事。

因為博士找工作不易,如果你已經在國內念博士,重新想清楚要不要趕快休學去職場找自己的機會;如果妳已經在國外快拿到博士了,盡量設法先在國外做一兩年工作(盡量不要是教書),只要妳的業務跟台灣有關(台灣所需要的專長),可能會遠比直接回台灣找工作還容易。

台灣的老闆「遠見」很短,多半只有一、兩年的打算,而看不見更遠的市場。因此,他們要的是年輕耐磨,姿態低、要求少而忠誠度高,或者馬上能用的人(所以「104人力銀行」都寫「工作經驗三年以上」)。因此,他們很少想要博士畢業生,更不會想要去培養。但是,如果妳有機會在國外工作過,熟習的業務正好是老闆下一階段想發展的,馬上會用妳。

如果有人比我說的還順利,那真的是意外,要感謝老天爺,要珍惜自己的好運,要善待身邊的人。

假如妳是名校畢業的優秀博士,卻必須要從基層幹起,在業界做無聊的工作,我勸妳不要氣餒!我也曾經認命地選擇工學院(準備出去當工程師)而不敢念人文科學,我爸媽那一輩的親戚有許多遠比我聰明有才華的人,也都是因為時代而不得不屈就不好玩的工作。家母小學時是桃竹苗三縣的畢業考筆試第一名畢業(贏過所有日本人),家貧而差點沒辦法念初中,而初中畢業後卻當夜間電報員當了幾十年,然後當最基層的總務當到退休。想一想他們,妳一定會覺得自己很幸運:至少有機會出國念博士,至少曾經可以有選擇。

工作只不過是職場的一種角色扮演,得以時有得以的選擇,不得以時有不得以的選擇,不用在意。要在意的是為人!一個有能力的人,他的「價值」、尊嚴與意義要靠自己看見自己的內在價值,而不需要倚賴別人的看得起,etc。

文章出處
MAYBE YOU NEED / 小補助讓HelloUS繼續成長
MOST READ / 其它同時正在被閱讀的文章: