2019/6/3
不同於許多人都只申請美國學校,我這次申請中全部有超過 1/3 的加拿大學校。分別為:University of Alberta, McGill University 及 University of Toronto. 會申請原因除了加拿大學費較為便宜之外,而且相關移民政策也非常友善。另外,我的 mentor 及一個學長在加拿大就讀 CS 碩士,他們對於加拿大的 CS 碩士都給了非常正面的評價。耳濡目染下,我也申請了這三間在加拿大排名很好的學校。
加拿大申請流程大致上和美國相同,這邊就不再贅述。唯有他們非常重視論文發表。尤其我在今年申請 Alberta 時,進到線上系統第三關時 (基本上就是填填相關資訊),當時已經都付申請費了,赫然發現系統說他們今年 CS 碩士沒有 SOP 項目。他不在乎你為什麼想讀。他只問兩件事:1. 你在 CS 相關期刊上有哪些發表 2. 你想跟哪幾個教授。由於我沒有 CS 期刊上的發表,在第一項我是只能直接留空白。自然的,大概也沒有教授想要我,最後當然就收到拒絕信了。
另一點是加拿大的放榜時間普遍偏晚。我是四月初才接到多倫多大學的面試,McGill University 和 University of Alberta 也都是五月底才接到結果。根據我有上 University of Alberta 的學長資訊,他也是非常晚才拿到 admission。所以有申請加拿大的同學請耐心等待結果。以下分享多倫多大學的面試心得。
多倫多大學是我所有申請裡面最好的學校,自然也是我的 dream school 了。網路上有說他們會面試,所以等到四月本以早就不做任何期待時突然接到面試通知還是蠻激動的。下面就直接貼上當時面試完做的流水帳了。
[多倫多大學 Computer Science 碩士面試] 面試時間:4/9, p.m. 11:00
面試開始是簡單地打招呼,然後問我這邊幾點,然後他發現時差12個小時,就開始分享他從香港坐飛機回加拿大發現時差很大的故事。雖然沒有講很久,但這邊我也只能笑笑點頭。
面試官 Matt 也問我簡單的自我介紹,我才講到 My name is Ray, 他就說其實他蠻有興趣唸我的中文名 “睿謙 (Jui-Chien)”,我有簡單跟他說 Ray 唸起來就是 睿(Jui),不過 for simplicity, 最後他還是叫我 Ray 為主。
首先他表示手上有我所有申請的資料,包括我的成績單。他想要確認我修的 Linear Algebra, Database Management, Advanced Statistics 這些比較硬的課為什麼一個 BBA (Bachelor or Business Administration 的學生需要修,尤其他蠻介意開課課號是工管 (BA) ,然後這些教授會不會放水等等。我只好盡力解釋我讀的是科技管理組,這很多課其實是必修的,老師有從電機系過來的有的本身是資管或Operation Research專業,所以其實沒有放水 (謎之音:但可能比較甜)。這部分我覺得我答的還可以,至少他最後用 “Technical BA” 來稱呼我的系。
然後開始就一串技術問題連發了。有修過 Object-Oriented 是吧,那我們來談一下 design patterns 吧,你知道哪些 design patterns 呢, For example, factory method pattern 是啥,又為什麼要用這種 design pattern 呢。這題我答的不好,factory method pattern 之前雖然有看過技術文章,但要 elaborate 完全是崩潰。Matt 人很好說你可以 google, 最後我們一起打開 wiki 結束這回合。
Database 他好奇我學了啥。我講到 Entity-Relationship Model 和 SQL 等等他就給過了,有點可惜他沒有深入問。Database 我比較熟啊啊啊。
然後他也不考資料結構了,可能資料結構都考不倒前面的大陸學生所以就不用那個弄我了 (雖然有個大陸學生被考過 紅黑樹的 operations 我覺得比較機車),那就直接來個演算法吧 (好險沒有問 P, NP 那些超級學理的東東)。被問到 Shortest path algorithm。是 Dijkstra algorithm! 我知道! (雖然我 Dijkstra發音好像發不標準…..)。我解釋完演算法後,正覺得不錯還想得起來時…
Matt: 所以你覺得這個演算法的精髓,精神是什麼。
我:……. umm, 我認為應該是 greedy 吧,我們貪婪的計算每個點跟起點間的最短距離 !
看來有講到關鍵字,Matt 滿意的點點頭。
Matt: 所以這個演算法被用到解決哪些 Real world problems呢?
我:…..(幹我還真的一時不知道啊) 於是我只好開啟唬爛模式,說了商業上可以被用在物流配送包裹,網路上應該 Server 傳 messages 給各個 clients 可以用吧!
Matt 開始問了一些 Memory Allocation 的東西,但不是之前看到那些名詞解釋就可以過關的東西。雖然我有提到 dynamic memory allocation 就是在 runtime 時配記憶體,在 C 裡面可以用 malloc(), calloc(), realloc(), free() 去做等等。但他問了一個問題我至今不知道他在問啥,隱約感覺他是在問很底層機制的東東,那題算是爆了。
然後 Matt 說想問我 OS 相關的東西。很可惜他沒有問我準備很久的 multi-threading, 而是問了 user mode 和 kernel mode 的差別,還有啥是 System Call。我有解釋出來,但覺得自己講得不夠精簡,有點拖泥帶水。
OS 考完 Matt 突然想知道我高等統計在學啥。於是我說我們學了 (Conditional) Probability, 各種 Distributions, Estimation, (Classic / Bayesian), 然後 Testing hypothesis, 最後導了些 Linear models. 這部分是我的本分,畢竟做過助教。在講 loss function 時看到 Matt 狂點頭。
最後 Matt 就發現我沒修過網路的課了。也很直接的問我有沒有寫過比較 low level 的東西像是 socket。 我誠實的回答沒有寫過 socket, 結束這回合。
Matt 也看了下我的履歷,發現我有一些幫客戶看 Infrastructure 的經驗,他有點擔心我的工作 484 都是做 technical support。我有感受到他懷疑我 484 codes 寫得不夠多,畢竟前面的 design patterns 答的不好,所以我有解釋工作大部分時間還是在做 customization / 寫 codes 的。相不相信就要看他了QAQ
爆到這邊,也許 Matt 也覺得時間不早,竟然已經聊了 40 分鐘了,就留些時間讓我提問吧。我拿出準備已久的提問問題:”這個學程的學生怎麼找到適合的實習公司? 你們怎麼 match 學生和企業?”
Matt 激動地表示這是個好問題。然後開始說了很多。精簡後的版本大概就是 他們有超過30家公司和這個學程合作,然後不收超過 60 個學生。每個學生都有不少公司可以選擇,每間公司都相信我們選進來的學生。所以,他們對於整個申請流程非常的慎重 (真的,全部 CS 碩士裡面,就這間要面試)。
我感覺自己不太穩,只好做最後的彌補(掙扎) 跟他說最後我想再次自我推薦一下,硬是講了為啥想讀這個 program, 自己在學校有在重視數學能力培養,以及有業界工作經驗等等。
Matt 微笑地聽完,是時候該道別惹。Thank you, have a nice day 後掛了 Skype, 接下來就是佛系等結果了。
結果:兩個禮拜後收到拒絕信。