這年頭轉CS的方法很多,不過每個人背景不同,適用的方法自然也不一樣。如果你和我一
樣沒有理工背景、沒有身分、沒有好的三維、沒github,甚至幾乎沒修過CS課,那或許可
以參考我這兩年的成敗經驗。
Admission
UW-Madsion CS PCP (2019 fall)
UW-Madison MSCS-PMP (2020 fall)
Rejection (2019 fall)
Dartmouth MSCS
UMass Amherst MSCS
University of Chicago MPCS
UCI MCS
UCI MSWE
Rice MCS
Rice MCSE
UW-Madison MSCS (PMP)
Education
University of Copenhagen: Exchange student
M.A.in Econ, NTU. GPA: 3.59/4.3 2014-2017
B.A.in Econ, NTU. GPA: 80.9/100 2009-2013
Related courses
UW-Madison:
2019 Fall: Operating System(CS537)、Database Management(CS564)
2020 Spring: Algorithms(CS577)、Optimiaztion(CS524)、Programming(III) (CS400)
UCPH: Advanced topics in Machine Learning
NTU: Data structure and algorithms、Scientific computing
勉強相關: Econometric Theory(III)、Advanced Statistical Inference
Test Scores
TOEFL: Total 94 (R28 L27 S18 W21)
GRE: Total 326 (V158 Q168) AWA 2.5
Work Experience
國內電信業資料科學家 (2ish years)
RA @ NTU CSIE (5ish months)
預官輔導長
Publication
1*Academia Economic Papers (碩論改寫)
Recommendation
NTU Econ 論文指導教授
NTU CSIE 修課教授
UW-Madison CS修課教授
Others
CFA level 1, SOA EXAM P
背景
大學以來一直缺乏人生目標,所以就是不斷在摸索自身興趣。幾年下來修過一些社會學、哲
學、心理、財務、會計、經濟的核心課程,但大體都只停留在聽故事的程度,聽完之後沒有
任何要在這些領域努力下去的想法。因為不知道何去何從,最後就繼續就讀系上研究所持續
尋找未來可能性。
在碩一準備履歷投實習時,有人給了我一些電資學生的履歷參考。那時候看到許多人上頭一
堆看起來很厲害的作品跟期刊還滿震驚的,反觀同樣年紀的自己卻沒半點能說出口的技能,
想到就這樣繼續渾渾噩噩找實習和修些沒什麼共鳴的課大概只會讓自己更不踏實,於是研究
所除了一門必修個經外,其餘全數是以我比較感興趣/覺得有用的統計課消化掉,碩論也是
以學習統計工具為主軸,挑些有興趣的模型來修改、應用。
後來為了寫出有效率的程式跑些統計模擬,我到資工系修了資結演算法。這是我在NTU多年
來修得最開心的一門課吧,以往修課我都是聽個大概,不太了解或是不太有興趣的題材就是
當作沒這回事,不過神奇的是寫程式時即使碰到很難解的問題,總會有種想把它解決的動力
。另外我也發現多數人寫程式的能力不會差太多,通常只要花些時間就會有具體回饋。可惜
意識到這件事時已經是我在校的最後一學期。本來計畫趁去歐洲交換修一些CS課,不過難得
出國一趟還是遊山玩水要緊,這件事後來就不了了之了= =
畢業後很不幸還是不知何去何從(......)很感謝林守德老師的收留。很慚愧的是我在那還沒
開始有所貢獻就離開了。在實驗室的那段期間,我見識到電資學院的研究規模,也在老師的
建議下補上許多深度學習的知識。雖然那時候DL已經很紅,但還不至於像今日氾濫,後來也
靠著這段期間補充的能量誤打誤撞找到能讓我運用統計跟寫些程式的工作。進公司一年後雖
然工作漸漸上軌道, 不過每次看到自己鳥鳥的碼,碰到些系統和資料庫方面的問題也不知道
如何解起,常常會想著是否一輩子就是這樣了,所以就試著申請美國CS,看之後人生會變得
怎樣。
申請策略
2019: 去年申請時因為還在上班的關係,下班後其實沒什麼心力針對校系廣泛研究,也不知
道可以問誰,最後就是憑感覺從轉領域心得文中常出現的項目挑選一些。當時期待自己背景
相對特別能矇上一兩間,可惜實驗失敗。看來很多我自以為冷門的項目可能也是需要有些修
課經驗才有競爭力吧。本來評估即使繼續工作個三五年大概也是差不多結果,正準備放棄出
國這條路時,剛好看到在Madison負責審查的前輩發文提及PCP,然後就順手申請,並領了
F1簽證過來。
2020: 由於不想再花額外兩年讀書,也不想再丟錢申請跟麻煩老師弄太多推薦信,選擇就讀
PCP後我就設定今年只申請Madison,被拒就回台灣找工作。因此上學期就是專心拚在校成績
,除了完全沒準備刷題或實習,也沒再重考GRE、TOEFL。根據前人的分享,我猜測這邊只會
強制把TOEFL不到92的篩掉; 而SOP跟CV的話我則只確認已把做過的一切交代清楚,然後刪掉
些廢話沒再去找潤稿了。我相信關鍵終究在上學期成績,以及能否取得這邊老師的推薦信。
當然有企圖心的人趁這段時間找實習或申請更好的學校或許能取得更多成就,不過我能在這
邊讀CS就滿開心了,其實不像其他人有那種非得留在美國的強烈念頭,照著自己習慣的節奏
努力比較重要,之後會怎樣就隨緣吧。
Madison CS PCP/PMP
這邊稍微介紹一下項目跟這兩學期來的一些修課心得。
PCP 是非學位的certificate,結業需求是從網站清單中的大學部核心課程挑選四門選修
及格。若連資料結構基礎都沒有的話好像還要強制先修另外兩門基礎課程。我這兩學期遇
到的老師都很認真。而大學部學生整體水準還算平易近人,不用擔心進來實力被海放拿不到
好成績,個人認為是滿適合轉領域的學習環境。如果和我一樣計畫隔年申請,上學期修OS和
DB是不錯的選擇。主要原因是兩門課的作業占分高,也沒有團體報告,所以不用煩惱考試太
失常或是被組員雷到。只要用心寫程式作業多半就會有好成績。另外就是難度適中, 拿到推
薦信的說服力可能也比較夠。
PMP的話則是至少修15學分大學部高年級+15學分研究所課程。據說多數人是一年半結業。
PCP轉過去沒記錯能抵14學分,之後一年順利修過五門研究所課程的話就是兩年結業。有別
於一些學校為求職項目打造的課程,這邊看起來則是和其他傳統MS、PhD一起修學術導向為
主的進階課,而這些人的能力和大學生大概是不同次元的,所以該怎麼度過這一年還得花
些功夫研究。
課程方面,這邊的OS很值得一修。300人的課居然就有約20位的TA+peer mentor。一周七天
,每天都有半天的實驗室office hour是我過去難以想像的規模,可怕的是後面幾次比較難
的作業時在系館待到晚上10點半還排不到助教.., 另外Andrea和她先生Remzi寫的OSTEP*
連我這完全沒系統基礎的外行人都可以讀得很愉快,沒記錯的話這是我這輩子第一本讀完
的原文書,很推薦想學OS的人閱讀。而這門課最大挑戰是合計七、八次的C和xv6程式作業
,個人認為比較麻煩的幾次分別是從頭刻shell、concurrency版的map-reduce還有xv6上實
現mlfq。我之前幾乎沒寫過C,甚至連pointer都幾乎沒用過,後來花很多時間追完先修課
程的影片才慢慢跟上需求。
有人可能會想說之後要刷題應該就是要修演算法,不過我認為除非是對自身數學分析能力
很有信心,不然盡量先跳過。這門課沒有程式作業,基本上都是數學證明,我想至少比以
前修過的數學系高統還重視證明吧。不過演算法好像就是這樣,看到UIUC網站上的材料後
發現這邊上的應該還算偏容易的。有興趣讀演算法的可以嘗試UIUC的Jeff's Note*,裡面
內容還算精簡,不會有一些讓人看了就想放棄的東西。不過可能是我沒修過離散的關係,
很多部分讀起來有點卡。
DB的話要學的扎實據說是要讀好cowbook,但我覺得這本書很難讀,不確定是寫的太囉嗦還
是我懂得太少,同時我對於老師隨興無組織的上法也沒什麼共鳴,最後其實沒學得很好。
所以這邊想順便徵詢一些推薦的學習資源。
本來這學期是想修計算機結構補足這方面基礎,不過老師一再恐嚇我沒修過邏輯系統之類
的會很辛苦, 同時我也想說或許是最後一學期當學生了,也用不著跟跟自己過不去,最後
選了些輕鬆有趣的課來學Java跟練習建模。
OSTEP:
http://pages.cs.wisc.edu/~remzi/OSTEP/
Jeff's notes:
https://jeffe.cs.illinois.edu/teaching/algorithms/
心得
其實從我各項申請條件可以看出我也不是多厲害的人。不過這世界就是這樣吧,很多時候決
定一個人能有多少成就的不見得是實力,更多時候是出生在什麼地方、獲得多少機會。美國
碼農薪水比台灣高數倍不見得是他們厲害數倍,而是因為他們在美國; CS人會寫程式可能只
是他們剛好受過完整的電腦教育,其他科系的人照同樣套路學習或許也是差不多結果。
相信除此之外還有很多能轉CS的方式,大家有興趣還是盡量試試。即使有時候前方看似行不
通的死路,但還是要走過才知道,或許走著走著道路就會自己出現了。