2019 Fall CS M.S. 經驗分享(上篇:經驗傳承)

Adrian Hsu
14 min readJun 4, 2019

--

#SceneAtUCLA photo by @elenaaeu

這是本系列的第一篇,第二篇請點此:

我是 Adrian,也是這屆 B03 電機系學會的會長,很高興你願意點進來看。今年九月我即將要離開育養我長大的這片土地 — 台灣,去美國加州 UCLA 唸 CS Master。這篇文章的主要是想留給系上的學弟妹,記錄我的留學申請心路歷程,也為大學四年半的生涯做個總結。我會盡量以個人觀點與經驗出發,並避免冗餘的、陳腔濫調的 PTT studyaboard 版內容。如果你只是對於申請有興趣又碰巧路過,也很歡迎你進來讀一讀我的心路歷程。

系列第一篇談的是「經歷」第二篇是「心態」, 如果學弟妹你對於我的個人經驗不感興趣、想按叉叉了,我仍希望你可以撥空看看第二篇(https://medium.com/@adrianhsu/aabe034053c9),那是我寫這系列文章最主要想傳達給你的事情。

拜託啦,看一下我寫的第二篇XD

為了怕自己的心得太過偏頗 or 過為侷限,如果你有別的看法、或是跟我的論點有歧異的話都很歡迎跟我說哦,以求平衡報導一下。在文章留言或是私訊我都可以,我有把聯絡方式放在本系列的文末。

如果跟我的走法不同:你對於做特定領域的研究有興趣 or 有在考慮念 PhD or 不打算找 SDE 工作(Software Development Engineer,所謂的碼農)的話,可以轉進以下兩篇很棒的申請心得。

  1. 許凱傑 [Ph.D. Life in America] EE Ph.D. Application,系列共 3 篇

2. MoMo 莫絲羽 [申請美國機器人相關碩士經驗分享] MOMO的機器人留學夢,系列共 10 篇、超級完整

1. 背景介紹

B.S. in EE, NTU Sep. 2014 — Jan 2019
* Overall GPA : 3.77/4.3
* Last 60 GPA : 4.07/4.3
* CS-Related GPA : 4.08/4.3 (3.92/4.0)
* Rank: 101/256 (39%)
Test Score
* GRE 321(V 153/Q 168/AW 3.0)
* TOEFL 99(R 26/L 26/S 23/W 24)
Research Experience
* Mini Track Winners, 3rd Place, Moments in Time Challenge in IEEE CVPR’18, 非第一作者
Work Experience
* Alibaba Cloud Computing Platform Group, Intern
Publication
* None
Leadership
* 系學會會長、電機營總召、app 創業的 Co-founder

我畢業於 112 電機系,畢業前在杭州阿里雲(Alibaba Cloud)做後端開發的實習、並拿到正職 Offer;大三大四做過 AI/CV 的研究、也修了幾門 Project 課,不算出色、但有幾個中小規模的作品;大一大二則是應付電機系必修、並選修資工系的課;課外方面,我和 @Harvey Yang (今年剛錄取台灣 Google 的厲害同學)與幾位外系的趴呢做過一個 app 創業、有獲得幾個獎項。這個 startup 專案在我們努力一年多後、考量到各方面都不夠成熟就收掉了。雖然宣告失敗,但它給了我很大的成長。再往前推一些,2014 年大一下時我透過台大的社團宣傳認識到 亞太青年創業社 ASES,得知有個史丹佛大學舉辦的學生創業活動 ASES Summit ,它集結亞洲對於創業有熱忱的學生、體驗一週的矽谷新創生活。在活動最後一天他們會邀請矽谷的 VC 當評審 、而我們要 pitch 這幾天的腦力激盪成果給他聽。總之,這個特別的經驗間接啟發了我想去美國看看。

我將在 2019 年暑假後前往加州唸 UCLA CS Master,而我感興趣的產業是 Cloud Computing(雲端計算)學術一點的領域別稱之則是 Networking & Distributed Computing。我的短期目標是希望能透過留學的這兩年,順利找到 FAAMG 雲端部門的 SDE 培養 real-work 的技術能力,並適應美商的企業文化(i.e., 語言與生活差異)長期目標則是累積一些心得後加入新創或者揪夥伴創業。

其實上述就是我 SoP 的內容 xD 就像是當年學測的備審一樣,寫得很冠冕堂皇 lol 看一看就好 別太認真!

我是在大三上確立要出國唸書的,當時決定要唸碩不念博、同時決定要轉唸資工。想出國的原因很多、這裡就不多提了。選擇念碩不念博是因為在做過研究與大公司實習之後、發現自己偏好後者:我喜歡實務,我想當個能自主設計架構的工程師、親手打造產品。比起將一個問題鑽得很深、不斷 fine-tuning 、我更喜歡融會貫通很多面向(甚至跨足到商管的範疇)我也認為自己的人格特質較擅長整合與統籌、能夠有組織的安排任務;相對的,我對於定義新問題並優化解決方法的能力較差,長時間對付同樣的主題讓我感到乏味。最後一點則是我希望能和人交流,比起面對著電腦做自己任內的事,我更喜歡在跨領域的團隊(可能是設計師、PM、Sales、BD 共同組成的)貢獻。基於以上的幾個原因,我決定出國唸碩士。

選擇唸資工有幾個考量:最主要是個人的熱情所在,第二則是美國的就業市場缺口主要是 CS 而不是 EE、且大多是碼農類型的工作(更正:EE 的職缺有越來越多的趨勢,只是純硬體的多、軟硬整合的少);第三則是補足大學沒修的資工課(例如:計算機結構)因為打算找 CS 的工作、不想再去煩惱找工作時被 challenge 轉行的疑慮,雖然難度較高、我的申請絕大多數還是投 CS 而不是躲去 ECE。我常常覺得自己運氣很好、能選擇自己喜歡的事物作為工作,這應該是絕大多數的上班族夢寐以求的吧。(補充一點:因為 Cloud Computing 也有很多牽涉到 ECE 的知識(e.g., Infra-as-a-Service)因此我打算出國後仍會修幾門 ECE 的課。)

至於為什麼不選擇畢業後直接進阿里,最主要是我想進美國的龍頭企業開開眼界,而我相信念碩的過程中找實習、這樣的走法會是最佳的。當然阿里巴巴仍是我心中的頂尖企業:市值超過 Facebook 並且不斷成長,天時、地利、人和使得這個集團在某些層次甚至跑得比美國企業快,他的企業文化(e.g., 武俠精神,996 文化,狼性)也著實給了我受到很大的衝擊。雖然沒有轉正職、但實習學到的經驗也是無可比擬的。第二是體認到自己技術程度的不足,以及希望提升英文能力至能夠在國際應答如流的程度。最後一個原因算是一圓自己的矽谷夢吧,我想去看看全世界科技的搖籃。赴美讀書雖然是雙手捧著錢換學位,但長遠相信是個不錯的決定(希望能盡快把學費賺回來~)

2. 錄取結果

+ Admissions
- UCLA CS MS ad w/o 2/2
- UCSD CS MS ad w/o 2/22
- UMich CS MS ad w/o 3/26
- CMU ECE MS in SV ad w/o 4/6
- USC CE MS ad w/o 5/7
- NYU Tandon CS MS ad w/ ($9,000 per year) 5/8
+ Rejections
- Harvard EE MS rej 2/23
- Stanford EE MS rej 2/27
- UIUC ECE MEng rej 3/12
- CMU INI MS rej 3/15
- UIUC MCS rej 3/16
- Berkeley EECS MEng rej 3/22
- Cornell (Ithaca) CS MEng rej 4/6
- NYU CS MS rej 4/9
- USC CS MS rej 5/2
- Columbia CS MS rej 5/18
+ Waitlist
- Cornell Tech CS MEng waitlist 2/13
+ Decision
- UCLA CS MS, 4/15

3. CS-Related Courses

單獨拉出來寫這段只是想闡述一件事:既然要轉 CS,就要多修一點 CS 的課,不要兩手空空的,大學唸 EE 和 CSIE 還是有差。填寫線上問答題時,很多學校都會要你把修過的 CS 課一堂堂填入,確保該有的基礎你都有。

* 電機系必選修
Data Structures and Programming, Probability and Statistics, Discrete Mathematics, Signals and Systems, Biomedical Engineering Lab, Embedded System Lab, The Design and Analysis of Algorithms, Advanced Digital Signal Processing;
* 網路相關
Introduction to Computer Networks, Introduction to Wireless and Mobile Networking, Web Programming, Network Administration and System Administration Laboratory;
* 機器學習相關
Data Science, Machine Learning Foundations, Machine Learning and Having It Deep and Structured;
* 其他系所
Data Structures and Algorithms, Software Engineering Design, Fundamental Object Oriented Programming, Game Theory, Numerical Linear Algebra, Network Industry and Platform Industry;

這裡稍微提一下:雖然我的電機主科成績偏爛,但我在 CS-related 相關的課表現不錯,幾乎都有 A 以上的水準。這也是我選擇投 CS 而不是躲去 ECE 的原因之一:大部分人成績不夠好通常會躲去 ECE、可是我反而是 CS 成績特好而 EE Major GPA 比較差,所以牙一咬就決定拼拼看 CS 了。

4. 時程安排

我的 GRE 是在大三下的學期中(2017.5.21)考的,而 TOEFL 則是在大四的寒假(2018.2.4)如果想了解我的 GRE 準備歷程可以點這:GRE 心得文與小檢討@Medium ,當時 GRE 會選擇在五月考的原因是想說,如果沒過的話暑假可以再考一次;再加上那學期我的課比較輕鬆,索性連續翹課一個月、在圖書館過著斷網斷手機的日子。TOEFL 考得不夠好,但當時想著「學校篩選都是分項看的,而聽說讀寫的分佈還算不錯」就放著了,後來確實也沒因為考不到 100 而被篩掉(或者我被篩了也不會知道 lol)至少我的例子證明 UCLA 的篩選不太在乎 TOEFL 口說,不用到 24 分。

我的申請表格,參考自同學 @Joseph Yang

以下將簡介我的申請文件準備時程,需注意的是我大五上(Sep. 2018 — Jan. 2019)只修了一門專題演講,沒有專題也沒有實習,所以我有非常非常充裕的時間可以準備文件。如果你的時間不足,請儘早開始。

我從 10 月中旬開始準備文件,12 月 1 日是第一間學校的截止日。順序是 CV 先完成初版(10 月 10 日左右),請同學修到 80% 完成度之後,開始寫 SoP 的初版(11 月初);我的 SoP 來回修訂十多版,整個 11 月只要清醒著都是在煩惱 SoP 該怎麼寫,比起其他同學算是花費極多的心力。推薦信的部分,我在暑假就已經知會幾位老師尋求同意,並確認能提供幾封;接著,在 10 月初我有先和每位老師單獨會面,討論想請他寫的幾個支持論點、並把我的 CV, SoP 大致講給他聽。會面後,我就按照討論結果把推薦信草稿寫出來、簡單修訂英文後把就寄給老師了(11 月 5 日左右)。我為老師們留 3 週的時間寫推薦信,每隔一週我會寄一封提醒信件給老師。至於 Personal History Statement(PHS)只有少少幾間學校需要,我是留到 11 月 10 日左右開始寫,來回修訂了四版,約莫到 11 月 15 日就完成、放著等送出。

另一個重點是線上填資料,我是從 11 月初開始填的。我填答的時程很密集,每間學校要的基本資料(或其他簡述式的問題)在 11 月 10 日左右就填妥,接著在 11 月 20 日左右完成所有線上問答題(例如 Stanford 有問說,請舉一例生活中你是如何克服困難的?)最後十天就把 SoP 等文件上傳,然後 deadline 前三天/前一天再次仔細檢查,就可以送出了。有個建議是,可以在 11 月初就把所有學校的所有線上問答題都讀過一遍、統整在一個 docs 然後交互比對,相似的問題可以一起處理,到時候填答只要剪剪貼貼就好。

但真正麻煩的是查學校的 program 資訊和教授專長、修課條件…等等,我把它分成兩階段。第一階段是鎖定要申請「哪幾間的哪一個 program」這件事的 deadline 是 11 月 1 日(因為老師要我把學校清單提前一個月給他);第二階段則是深入研讀 program 的修課條件、哪個教授的領域你感興趣等等,並把這些查到的資料融會貫通、寫進 SoP 還有線上問答題裡面(幾乎每個學校都會問這題:請列舉兩位教授,然後簡述感興趣的原因)我自己把 deadline 設在 11 月 20 日,要把每間學校我選的 track(e.g., Networking and Distributed Computing)挑好,然後每間找 2 個特色以及想修的課/想跟的教授還有原因,整理成一個表格,這樣倒數幾天客製化 SoP 時就可以照著寫、不用再次每間研讀。

學校的 deadline 都是在 12 月至明年的 2 月之間,我在 12/15 就把每個學校都一口氣解決,然後就去放假了。畢業後 1/23 入伍,二月初收到 UCLA 的 offer。

延畢小技巧:「專題演講」這門必修課一定要留到大五上。只修一學分、全心研究/實習和準備申請文件,讚讚讚。

5. 選校考量

查 Program 我大約花了一個月,從十月初就開始四處探聽,並做表格整理。基本上保底、夢幻、衝刺區設定好,跟同學討論一下就差不多了,要考慮的可能是「要不要分一些 CS 去 ECE 買個保險」畢竟 CS 難度高、我們又都是 EE 背景的不是本科出身,尤其 GPA < 3.70 (4.3 scale) 或 GT 成績不夠的投 CS 的要非常小心,可能成績太差就被刷掉了。

我的選校規則是偏好「區位」和「就業導向」:東西岸學校優先、在美國中部的放後面考慮(但我還是有投 UIUC 和 UMich 啦)然後不用論文的優先。有些同學很在乎 CS 的 Ranking,但我個人覺得那是比較 minor 的事情:當你要找工作的時候,別人並不會因為是 Stanford 或者你是 UC Irvine 而給你多好/多差的評價,這些學校的 CS 都已經足夠好了,找實習要看的還是其他競爭者的強弱、以及自己讀演算法練就出來的底子

當然,如果你是想找研究型的學校,投的學校就不用管區位了,認真找教授才是重點。我講的所有點都是基於目標設在「就業型 program」而出發的。

結果公布後就要開始選學校了,在這時你要好好思考「內耗」的問題。每個公司給學校的職缺名額有限,如果你在人太多、同儕又太強的學校,可能你很強但是卻進不去 FAAMG。像是 CMU 這類享譽全球的 CS 名校,有太多亞洲人在裡面、就可能使自己顯得不夠突出。

本系列的第一篇結束,第二篇請點此:

--

--

Adrian Hsu

Software engineer at X/Twitter@SF working on Recommendation System. Also an entrepreneur, enjoys financial analysis and cognitive/social psychology.