切換
舊版
前往
大廳
主題

2019實習面試

小王 | 2019-04-24 03:05:28 | 巴幣 2590 | 人氣 7216

拖了好久今年終於找到實習ㄌ
發個心得讓大家參考一下

履歷
重點整理
台大資工大四,前兩年GPA很爛
待過兩個深度學習的實驗室
一篇top conference paper的第一作者
去年在台達電做過語音處理的實習

我是用latex寫英文履歷,至少能表示自己會寫latex+英文沒有太爛
資工系的履歷不太需要寫自傳之類的廢話,只要把經歷簡單列出來就好
經歷不夠多的話把學校修課寫過的project列上去也行,我去年的履歷除了修課的project以外也沒放什麼

今年丟了3家都有收到面試邀請
分別是KKBOX、AI Labs、Microsoft



KKBOX Machine Learning Team
辦公室很漂亮很像咖啡廳,讓我對這家公司的第一印象很好
面試時ML team有4個人輪流問+1個HR
HR人很好又專業,一起面試時看的出來很了解公司在做什麼

第一關
一開始先問ML相關的問題,先問了我的paper的一些細節
接著又問了VAE、Auto-encoder、GAN的差別還有一些特性(我的paper是做VAE相關的)
可能他們自己也沒很了解這塊,基本上都沒有問得太深,我覺得我該答的都有回答到

第二關
畫一個可以接受手機號碼的finite state machine
有三種合法的手機號碼格式:
xxxx-xxx-xxx
xxxx-xxxxxx
xxxxxxxxxx
畫完後問可不可以減少state,不過我一開始畫應該(?)已經是最少的了所以就說沒辦法,就這樣過了

第三關
白板題,意外的有點難(?
給一個array,判斷存不存在連續的subarray總和為0
我本來以為這題可以做O(n)的DP,想了一陣子想不出來
最後講了一個用hash table硬做O(n)的算法,面試官又問了有沒有不用hash table的作法,後來只想到O(n log n)
本來以為講爛了,結果後來上網了一下才發現這題根本不能DP,只有hash table可以做到O(n)

技術問題都問完後HR問了一些人格特質、為什麼想來KKBOX之類的問題
我說因為我是KKBOX的用戶時他們好像蠻開心的(?

結果
不到一個禮拜就offer get,他們要我一個禮拜內決定,因為後面還有後補的人
其實我覺得KKBOX還不錯,KKBOX做ML的資源應該很多,辦公室又漂亮
可是我當時Microsoft還沒面完,加上KKBOX在南港太遠了,所以就reject掉拼Microsoft了



Microsoft Bing Geocoding Team
Microsoft我是找同學內推的
這個team是做bing map的,直屬美國,聽說是MS RD中最爽的部門,因為主管都在美國(?
外商公司面試流程基本上都差不多,會有三關,前兩關是電話面試,最後一關onsite

第一關
第一關只是打電話確認你是不是正常人、會不會講話,通常不會太刁難(←強者我同學講的
雖然強者我同學是這麼說,不過這關他還是問了不少問題
一開始先問了兩題
1.說明quick sort平均、最好、最壞的複雜度
2.thread跟process的差別

接下來傳了個連結要你寫code

第一題
給一個數字字串,回傳這個數字+1的字串
注意一下負數的問題就好,沒什麼困難

第二題
給一個link list,用O(1)的空間判斷它有沒有環
這題解法蠻有趣的,可以稍微想一下我就不破梗了
剛好之前刷Leetcode時有寫過,直接秒殺,不然我覺得我當場一定想不出來XD

這關過了後他會一次發後面兩關的邀請

第二關
一樣是電話面試,因為聽說會是美國工程師來面,還我很緊張的準備了很久的英文跟自我介紹
結果美國工程師竟然是個國人,電話一接起來講兩句就問我Can you speak Chinese? = =
這關就直接考寫code了

第一題
給一個array,找到第K大的數字
我知道這題有個平均O(n)的算法但我當時忘了怎麼做
只好先講個用sort的O(n log n)爛做法,講完後果然又問了比O(n log n)更好的算法
後來好不容易想到用heap可以做到O(k log n),結果面試官好像沒聽很懂我的算法,以為我的算法還是O(n log n)
當下有點緊張腦袋整個打結,以為真的是我講錯了,事後想了一下才發現我原本的想法是對的,這題直接爆炸QQ

第二題
給一個binary tree判斷它是不是合法的BST
這題其實很簡單,可是當時前一題卡太久腦袋整個轉不過來,卡了很久才寫出來QQ

第三關
到台灣微軟辦公室onsite面試
面試官是個台灣工程師,結果一坐下來就要我英文自我介紹,還好前一關時本來有準備XD

問了兩題很簡單的白板題
1.給一個字串,用O(1)空間reverse每個單字的順序 (eg: "hello world" -> "world hello")
2.給兩個矩形,判斷有沒有overlap

很快就寫完白板題後閒聊了一些我的經歷、為什麼想來微軟之類的
這關面試感覺閒聊成分還比較多

結果:
感謝函
聽幫我內推的同學說果然是被第二關的國人工程師刷掉了QQ
覺得有點可惜,明明題目會做結果沒講好



AI Labs
AI Labs我是在微軟面完後才投的,因為當時已經reject KKBOX,國人工程師那關面完我就覺得高機率會被刷了,只好繼續丟履歷
AI Labs的辦公室看起來很潮, 門口有AI人臉+語音辨識,結果害我卡在門口進不去(x
我去面試時還有看到PTT本人坐在裡面

第一關
面試官是個工程師,問了一題白板題
給n個不同的數字,列出所有總合為k的組合
講了一個有exponential的DP,本來以為有polynomial time的算法,後來查了一下應該是沒有,當下還以為講爛了白緊張了一下

第二關
面試官是中研院借調來AI Labs的教授,而且之前系上專題展還有來聽過我的poster
研究領域還跟我的paper一樣都是做音樂生成,一進來就拿著我的paper狂問,整個被專業人士問爆,講一講一直被打臉,當下超級挫折XD
不過後來想想,這表示他應該對我的研究還有興趣才會被這樣問,而且台灣有在做這個領域的人其實很少

結果
不到一個禮拜offer get
最後應該就是去AI Labs了
雖然是小公司,不過工作內容感覺還不錯,而且薪水比MS跟KKBOX高將近一倍




總結一下
我覺得面試最重要的還是寫code能力,履歷再漂亮白板題寫不出來一樣等著領感謝函
這次面3家被問到的題目後來發現全部都是Leetcode抄來的
如果是應急要面試的話強烈建議刷Leetcode,但要練基本功的話比較推薦刷codeforce,Leetcode的題目太單調了,比較像在背答案
我自己是因為高中時有碰過一點程式競賽,Leetcode medium大部分沒刷過也還寫的出來

除了寫code能力外,有paper也意外的很好用,幾乎每個面試官都有問我的paper
如果未來有想走特定的領域,盡量找機會多做相關的project或發paper
像我投的都是ML相關的職缺,履歷看到待過兩個實驗室+一篇paper,就知道我在這個領域有經驗,比較容易有面試機會


大guy就這樣

創作回應

憂鬱肥宅
跪了
2019-04-24 12:35:12
廢物敗類窩囊廢漢堡
霸霸
2019-05-17 01:33:15
哥布林鎖鍊旋轉者
感謝大佬分享
2020-04-22 00:43:55
無聊的人
2020-12-24 19:42:46
パっパっパスタ
超霸
2020-12-25 12:37:22

更多創作