[心得] 大三實習面試(google, 微軟, 騰訊, 阿里

作者: hanyi0923 (hanyi)   2019-04-10 21:26:32
## 經歷
在履歷上提到的有
- 台灣高中資訊奧林匹亞(TOI) 選訓營 1階
- ACM-ICPC亞洲區域賽銀牌
- NUS(新加坡)研究實習,做可視化,跟著掛名發了一篇IEEE InfoVIS正在等結果
- 4個課程作業(因為沒什麼project只好寫課內)
1. OS(只有kernel,我大概2000行寫了一個FAT32)
2. MIPS Pipelined CPU(用verilog寫的,可以中斷、異常)
(1, 2是合在一起放在FPGA板上跑,所以也包含了VGA驅動, PS/2鍵盤)
3. OpenGL賽車遊戲(沒有框架、直接用C++跟OpenGL原生函數+GLSL shader寫的)
4. 協作markdown編輯器(類似Google doc,通信用socket,左右邊分割視窗可以看markdo
wn跟結果)
有關高中、大學,學習經歷之後看反應情況可能會再發一篇到高中版。
## 時間表
| Google | 上海 | 18/12/4 | 自己官網投履歷 |
| Google | 上海 | 18/12/4 | 過CV Review |
| Google | 上海 | 19/1/26 | 感謝信 |
| Google | 上海 | 19/1/28 | 通知轉台北 |
| Microsoft | 台北 | 19/2/1 | 請學長內推Bing |
| Alibaba | 杭州 | 19/2/21 | 請學長內推 |
| Google | 台北 | 19/2/27 | 1面 |
| Google | 台北 | 19/3/11 | 過1面,通知2面 |
| Tencent | 深圳 | 19/3/7 | 網申 |
| Microsoft | 台北 | 19/3/8 | 1面 |
| Tencent | 深圳 | 19/3/9 | 筆試 |
| Alibaba | 杭州 | 19/3/13 | 通知面試 |
| Tencent | 深圳 | 19/3/14 | 1面 |
| Google | 台北 | 19/3/15 | 2面 |
| Alibaba | 杭州 | 19/3/16 | 1面 |
| Microsoft | 台北 | 19/3/28 | 2面 |
| Google | 台北 | 19/3/28 | 過HC |
| Microsoft | 台北 | 19/4/7 | offer |
## 騰訊
#### 去年投過一次2018暑期實習
面試問了白板題
1. 快速排序、找一個序列的第k大O(N),用類似快速排序的方法但不管另外一邊
2. 動態維護輸入的前10個小的數字(用max-heap)
C++: static, virtual, ~Class(), abstract class,
哪些變數放在heap, stack
大部分都是語言的基本功
但是因為實習要3個月那個時候我暑假只有2個月就不能去了
### 2019暑期實習
### 筆試
感覺非常難,120分鐘寫5題
前2題是數學題,第三題DP
到我寫完第三題大概60分鐘了,
然而我新加坡的博後催我去做實驗,就放棄了,後面兩題沒看。
### 事前溝通
過幾天有個面試官打電話跟我約時間,他說是深圳做遊戲部門的,
然後說看到我CV上有OpenGL經驗,問我想不想去,但我說沒有特別想去的地方,
他說看我沒有很想去,就不收了,叫我等其他人從pool裡面拿出我的CV
### 面試1
平台: 電話
過了一週之後有別的人打電話給我,約晚上面試
面試問得很細,但沒有要做題,主要從我的經驗來問,我說什麼它就問得更深入一些
比如OpenGL,它就問我光照的細節,主要是Phong model(specular + diffuse),shader的
輸入是glVertex,
VBO存的是頂點的座標,其他點shader會自己迭代,光照需要物體座標(glVertex)、相機座
標、光源座標。
OS也是問了很久,我花很多時間解釋FAT32的結構,但溝通好像不是很好,我盡可能講了一
下寫一個路徑的過程
MBR -> 第一個分割區 -> '/' -> for (i = 0; i < 512; i += 32) fileEntry[i ... i +
31]
-> 找FAT裡面的實際位置 -> 路徑比如是'/abc/def/ghi' -> 找FAT裡面的實際位置 -> 寫
入實際位置。
Markdown編輯器,問了怎麼實現,就是用Java的socket,每次監聽兩個事件,一個是文字框
改變,
一個是socket發來消息,文字框改變就要發socket到server,server再發給其他client。
而client接到socket就要改變文字框(但再不轉發到server)。
問了一下TCP/IP, UDP,但我說沒有很懂,只會用Java的那一套。
問C++, static的各種用途
vector的內部實現,每一次擴大兩倍,但是均攤插入還是O(1)。
map內部實現是紅黑樹
unordered_map內部實現是hash table,問了hash table為什麼要,
怎麼用、怎麼設計hash function,還問了一下碰撞怎麼處理。
總共時間大約一個小時。
### 面試2
https://www.ptt.cc/bbs/Soft_Job/M.1553331381.A.0AC.html
## 台灣微軟
### 1面
平台: Microsoft Team
10.a.m to 11.a.m.
題外話是因為我自己時間安排的不好,
面試的時候只能找個全家坐著用電腦連手機4G面試,
訊號非常糟,還讓面試官一直聽全家的開門聲,真是抱歉。
細節不能說,但大概就是觀念題+白板題,我覺得不難,
觀念題大概都是那種聽完題目30秒內回答完的程度。
(課本或上課ptt大字那種觀念)
白板題好像都是Leetcode medium題。
### 資格問題
1,2面中問,HR問了我是不是台灣人,能不能來實習,
所以稍微耽誤了一點時間,不過最後沒什麼問題。
### 2, 3面
平台: Microsoft Team
約了9 a.m. 到10 a.m., 10 a.m. 到 11 a.m.
兩個面試,都是西雅圖的印度人面試我
第一個一上來就直接問白板題,
做完了一題(雖然好像不是最佳解,我寫了O(N^2),其實可能可以O(N) )之後,
他手算幾個輸入到我的函數裡面的結果,確認都是正確,
就再開了一題讓我做,然後就第二題我說完想法時間就到了,
溝通還算順利,雖然我的英文不太好。
第二個非常親切,還問了我一下我這裡天氣如何,問我平常有沒有運動,
然後也是直接做白板題,做完一題接了第二題(第一題的延伸),
做完之後他說知道我是對的,但要我解釋,我有點卡,耽誤了一下但還是正確地講完了。
第二題寫完之後還有一點時間,讓我看了第三題,我一樣說了想法,做了一下,然而沒做完

最後他問我有什麼問題,我說沒有;他反問我為什麼想來微軟,
我說我從小把電腦打開就看到Windows, Office,想來是很自然的;
然後問我有沒有用Bing,我說因為在中國Google不能用,我就會用Bing,因為我不想用百度

題目都是leetcode medium難度的感覺,是不是原題也不確定,我刷的不多。
## Google
最早是投了上海Google,大概投了一週後就收到面試通知。
期間等了快2個月,最後突然取消面試跟發了感謝信感覺很崩潰(那為什麼當初還要說可以面
試),
不過隔兩天在台灣接了一個021(上海)開頭的電話,他說是Google HR,
問我是不是台灣人,想不想轉去台北Google面試。
### 1面
平台: Hangouts
面試官是台灣人,用中文。
實現一個有某種功能的Data Structure,可能有leetcode hard程度,沒看過的題目,不說
太多細節。
我做題就慢慢的做,感覺不是很難,期間保持跟面試官溝通,
其實有些地方沒想到面試官會提示,然後我也反覆的問還有沒有額外的限制條件來套提示。
聽後來幾個面上海而且是中文面試的人說題目好像是一樣的,看來題目會重複使用。
### 2面
平台: Hangouts
過了幾週HR問我2面時間,但我只有晚上有空,它就安排別的時區跟我面試。
面試官在愛爾蘭、用英文
英文方面我感覺不難?我學測英文才12級,
(或者我可能大學英文有進步XD)
面試語速其實不快,聽不懂就請他再說一次。
題目不說太多細節、leetcode medium
但我思路想偏,用tree map寫壞了,
前面討論加寫花了大概20分
面試官說我的複雜度不是最佳,有些數字重複出現的問題也會壞,
然後後面慢慢的改,他提示tree map改成hash複雜度就對了,
數字重複想了一些解法可以處理大部分問題,但還是有例外,
最後他說時間到了問我有沒有問題,我隨意問了一下那邊的Google有沒有晚餐,
他說沒有,他的同事經常5點回家,他自己有時候會6點才回家。
面完之後感覺大爆炸了,
看了leetcode發現有原題
才趕緊在1週內快速看了大約150題medium,
少數覺得不好寫的寫了一下。
(當時下週還有微軟2面)
### HC
過了幾週通知我HC過了,看來我之前可能太害怕了,不過不知道Team Match結果會怎麼樣。
## 阿里
### 1面
平台: 電話
問我的projects
我說我做過OS,三個人一組,記憶體管理、進程調度、檔案系統,一個人做一塊。
問了我實現FAT32的細節,改FAT,新增檔案、改資料夾的描述,32bytes 的file entry
又問了Memory mangement
Slab, kmalloc, malloc, tlb
kernel/user mode的差別
白板題leetcode medium有,我有做出來,
然後面試官也提示一些可以優化的細節。
(複雜度對,但沒有考慮優化遍歷array的速度)
結果1面沒過幾天就通知不錄取,不過說了可以再投阿里別的部門。
## 總結
### 刷題
本來的想法是覺得Leetcode很簡單,很多題都是看到腦中就有code出來,
感覺跟以前高中IOI、大學ICPC完全沒得比,所以完全沒刷過題,
我在Google2面結束之後覺得有點爆炸(應該說做題不夠順)才開始刷題,
所以我覺得題還是要稍微刷,Leetcode的方向比較是考你正確性、穩定性,
還有面試的時候不能題一上來就寫,一定要多溝通,盡量要讓他知道你想寫什麼才開始寫。
### 技術
(被各位說了不要提自己技術弱,
其實原義只是想表達我技術方面相對準備不夠全面,
而且還有之前騰訊洗臉技術的經驗,
不管面試過程合不合理
確實還有很多可以改進的地方)
拉高自己特殊競爭力
肯定要挑戰刷題沒辦法學會的東西,
最基本就是OS, Network, DSA的課本概念
再來就是多往底層鑽,雖然自己還是有很多不足,
之後有空可能自己練習寫database底層,
彌補之前被騰訊洗臉經驗。
### 學術經驗
發現不管哪一家公司都沒有在意我的學術經驗,
但不清楚CV有沒有把我去過NUS納入考慮,
所以可能做研究對找工程類工作沒什麼幫助?
(如果其他人有相反經驗可以指正)
### 面試結果
關於怎麼找要投哪些地方,其實我沒有刻意找,就只是看到別人分享就投。
面試後拒絕: 騰訊, 阿里
台北微軟: offer
Google: 等team match
自己放棄筆試、面試: 騰訊後來給的第二次機會, 上海Morgan Stanley, 蘇州微軟
沒有面試機會: VMware, 網易
(可能是我的投遞方式不太對,我寫了一封沒有內文的只有CV的信給招聘廣告下面留的email
)
感覺中國跟美國面試風格有很明顯差異,
中國公司重技術,美國公司重思考跟溝通,
不過不評價好壞,只是陳述自己經驗。
其實去年12月是沒有規劃暑假找公司實習,
本來想找美國大學實驗室再做一個研究實習,
看能不能申請前拼一個比較強的研究成果,
但自己英文實在太爛,看著同學一個個都TOFEL 110up, GRE 330up考出來,
覺得出國讀書沒什麼希望了才轉戰找工作,
如果一開始就規劃找工作的話可能會做更充分準備。
目前的話雖然Google有機會上,但考量到微軟1年可以做比較多事情,
然後因為我Google沒有內推是自己投
(其實應該找認識的學長,但那時覺得不想麻煩別人,有點蠢)
明年應屆畢業以我現在這個經歷加實習過微軟一年,應該至少有辦法面試,
面試內容如果也還是白板題,我覺得只要不到ICPC那種超級難的題目就都還可以應付。
另外是微軟我加入的team已經是跟美國合作的team,之後轉正去美國沒有找新的team的問題
,轉正微軟也比Google簡單,
所以最後應該就是去台北微軟了。
作者: BambooGrove (竹里館)   2019-04-12 09:15:00
跪著看完
作者: plsmaop (plsmaop)   2019-04-10 21:34:00
推推
作者: evan11401 (我很黑但是我很溫柔)   2019-04-10 21:34:00
感謝分享
作者: x246libra (楓)   2019-04-10 21:38:00
說自己技術比較弱 真是太謙虛了 轉職搶飯碗 佩服不已
作者: renna038766 (草甜圈)   2019-04-10 21:43:00
推分享 好強
作者: oneheat (等待)   2019-04-10 21:44:00
資訊的?幹嘛不找個G的內推?
作者: john0312 (Chen John L)   2019-04-10 21:55:00
都拿到面試了,有無內推沒什麼差。Internal Reference比較實在。
作者: cip604 (cip604)   2019-04-10 21:59:00
推推 台灣G的電面題感覺都比美相對難一點
作者: s3131212 (Allen Chou)   2019-04-10 22:05:00
感覺超強 推
作者: cha122977 (CHA)   2019-04-10 22:17:00
G的電面不一定對到台灣人 約下班時間很容易碰到別區的
作者: winken2004 (新竹肥宅)   2019-04-10 22:43:00
很強的感覺
作者: aria0520 (紫)   2019-04-10 22:48:00
作者: woodoo (hometeaher)   2019-04-10 22:51:00
謝謝分享
作者: wilson85771 (HOW)   2019-04-10 22:52:00
作者: genius945 (添財)   2019-04-10 22:55:00
強者推
作者: ken90242 (大人)   2019-04-10 22:57:00
作者: vi000246 (Vi)   2019-04-10 22:58:00
作者: wei115 (ㄎㄎ)   2019-04-10 23:15:00
作者: LinuxKernel (Linus Torvalds)   2019-04-10 23:22:00
好猛
作者: danielhsu88 (DanielHsu)   2019-04-10 23:27:00
作者: invidia (莎莉竟然會飛)   2019-04-10 23:33:00
好猛
作者: ice80712 (我很有事)   2019-04-10 23:38:00
騰訊跟阿里也太硬
作者: jay123peter (蕭瑟風雅)   2019-04-10 23:39:00
推推,真強
作者: sylvia9511 (葉涼)   2019-04-10 23:39:00
超厲害 推推
作者: yamakazi (大安吳彥祖)   2019-04-10 23:43:00
硬 強
作者: xxoooxx34567 (xxoooxx345678)   2019-04-10 23:46:00
跪著看
作者: xxi511 (少北)   2019-04-10 23:47:00
這樣叫技術弱....對不起我廢物都不如orz
作者: dapple (dapple)   2019-04-11 00:08:00
強喔 你想留台灣還是去美國?
作者: joe820730 (Let it go)   2019-04-11 00:38:00
這樣叫做技術力不足我只能跪著了...
作者: WorkForFree (---)   2019-04-11 00:46:00
從小就喜歡寫程式 真好
作者: sorryla (Mr.東)   2019-04-11 01:23:00
如果目標是來美國的話,以你的情況的確選軟軟risk最低Bing的話應該是在Bellevue辦公室,這邊比Redmond熱鬧多了我之前都住downtown,方便度比Redmond好很多
作者: gotrend (fisherman)   2019-04-11 01:40:00
朋友托福96 上uc系列的cs 你經歷不輸他 不要放棄呀!
作者: abc53 (abc)   2019-04-11 01:45:00
作者: Aeishiteru42 (lovelovejuju)   2019-04-11 01:51:00
超猛的啊…
作者: bamchisu (suchi)   2019-04-11 02:01:00
作者: chuegou (chuegou)   2019-04-11 02:04:00
>>我覺得技術是我比較弱的方面看到這句不知道該笑還該哭...
作者: stfang925 (司馬鈴薯)   2019-04-11 02:05:00
這篇技術弱 上篇非本科
作者: c0758 (R>W1>E2>Q滿)   2019-04-11 02:15:00
高手分享推
作者: Gaogaigar   2019-04-11 02:16:00
拿過ICPC銀牌才會覺得非科班刷了就轉過來軟體工程吧下意識覺得每個人刷leetcode都滿簡單的其實你想走那方向都會打趴一堆人了
作者: a58524andy (a58524andy)   2019-04-11 02:40:00
跪 同為大三我還在地上爬
作者: meRscliche (如此而已)   2019-04-11 02:56:00
作者: a2470abc (D.F.)   2019-04-11 03:04:00
我投了google 但是整個無回應...我太廢惹QQ
作者: keyut2433 (keyut2433)   2019-04-11 04:34:00
有轉正機會一定要抓.
作者: DarkIllusion (′・ω・‵)   2019-04-11 07:18:00
結尾心得很有價值,推
作者: aa0917954358 (Doem)   2019-04-11 07:35:00
推強者!
作者: nova06091   2019-04-11 08:39:00
神人
作者: overhead (overhead)   2019-04-11 08:45:00
強中之強
作者: goodice (一水隔天涯)   2019-04-11 09:00:00
高手推
作者: ngsmsw (csJC)   2019-04-11 09:26:00
作者: godbye45 (苗栗金城武)   2019-04-11 09:31:00
深神人
作者: onthesea (i am telegrammed)   2019-04-11 09:48:00
強到這樣每家都搶著要的不用擔心
作者: jimmy067 (吉米)   2019-04-11 09:51:00
仔細推
作者: Eric0605 (我還有點餓)   2019-04-11 10:34:00
強者推
作者: lvanwu15 (lvanwu)   2019-04-11 10:35:00
作者: w199381 (噁心肥宅)   2019-04-11 10:38:00
超強!但是去了那些公司鶴立雞群的機會就少了 要更強!
作者: plsmaop (plsmaop)   2019-04-11 10:48:00
台北微軟為了綁幾個卷哥,實習薪水給超高
作者: fate111085 (學店魯肥宅)   2019-04-11 11:05:00
技術弱…那我豈不是幼兒園程度
作者: zackl852l (bb)   2019-04-11 11:40:00
神人
作者: coord (那又怎樣)   2019-04-11 12:18:00
作者: caeserhaha (凱薩沙拉)   2019-04-11 12:29:00
推 強者 請問你實作都FAT32有open source嗎? 想看XD
作者: ok8752665 (dd8752665)   2019-04-11 12:33:00
作者: Revetice (Revetice)   2019-04-11 12:35:00
作者: freepenguin (浮企鵝)   2019-04-11 12:36:00
推分享~
作者: kiki86151 (魯飯)   2019-04-11 12:45:00
作者: y2468101216 (芸)   2019-04-11 12:59:00
作者: tonekaini (吾輩)   2019-04-11 13:00:00
我不知道轉正去美國微軟有沒有提供簽證 除非你要出國念MS用OPT去取得工作許可 這點可能要問問Google轉美國也是先看你有沒有辦法自身就有工作資格
作者: sorryla (Mr.東)   2019-04-11 13:11:00
台灣辦公室做滿一年就可以申請L1了,無論是微軟或谷歌我前同事就是從台軟轉到美軟,還有認識另一個蘇軟轉來的
作者: sooge (老衲)   2019-04-11 13:30:00
你經歷那麼豐富才有面試機會 不然早被丟到垃圾信件
作者: karta0910489 (coyote)   2019-04-11 14:04:00
好猛....同為大三真的慚愧...
作者: tonekaini (吾輩)   2019-04-11 14:20:00
喔喔 我以為你轉正要直接去米國
作者: bab7171   2019-04-11 14:38:00
大三會那麼多,真的超神
作者: lNishan (紫小霓)   2019-04-11 15:40:00
L-1 目前審核聽說變嚴了 但如果是類似的技術還能通轉正在 Google 其實也不難 跟分到的 project 會有點關係台灣 Google 這邊也是幾乎每個 team 都會跟美國合作美國微軟我大學畢業也面過 跟 G 差別應該是如果要去美國會需要跟美國微軟的工程師再多兩場面試之前面微軟正職是 1 phone + 4 onsite + 2 場額外跟美國微軟工程師面試 有拿到 offer 他們提供的選項也是 L-1
作者: siriusu (かがみは俺の嫁。)   2019-04-11 15:51:00
推 <(_ _)>
作者: wadeedaw (wei)   2019-04-11 16:06:00
太神
作者: y956403 (尋歡)   2019-04-11 16:53:00
樓樓樓上超強
作者: tonekaini (吾輩)   2019-04-11 17:57:00
樓樓樓樓上安安 去年實習有見過面XD
作者: Arctica (欲聆聽,必先靜默)   2019-04-11 18:12:00
哇 真的強
作者: raysun011081 (sanfrain011081)   2019-04-11 19:37:00
太屌啦 已跪
作者: qazxws (QAZ)   2019-04-11 21:43:00
感謝分享
作者: descent (「雄辯是銀,沉默是金」)   2019-04-11 23:18:00
英雄出少年
作者: naskate (QQ)   2019-04-11 23:57:00
好猛
作者: zebraseven (Die walkuere)   2019-04-12 01:23:00
Push
作者: aa06697 (todo se andarà)   2019-04-12 01:24:00
1週看150題medium...猛
作者: sorryla (Mr.東)   2019-04-12 06:00:00
L1從川普上了之後變嚴沒錯,去年軟軟律師有建議把資格從一年改成一年多幾個月,加強通過的條件不過這條路還是能走的,頂多要求你在分部待久一點
作者: quickey (色肥宅)   2019-04-12 07:06:00
對不起,看完我覺得我可以去買雞排了
作者: Transform728 (cy)   2019-04-12 22:47:00
作者: WWWucy (WWWWucy)   2019-04-15 02:45:00
聽過名聲 推
作者: bingripplw (首吟天下)   2019-04-26 23:07:00

Links booklink

Contact Us: admin [ a t ] ucptt.com