2016夏天實習微軟和亞馬遜面試分享
一路走來跌跌撞撞 希望分享給那些以後有興趣在美國科技業求職發展的同學
P.S. 有些詞我不知道怎麼翻 但我會盡量翻得通順點 請大家多多包涵哈哈
簡單背景介紹:
我現在大三,大學剛進來時是Business Economics(企業經濟系)後來轉到了Electrical Engineering(電機)再轉到了Computer Science(資工)(美國轉系比較自由,所以我不會延畢)。大一暑假在一家台灣新創實習,大二暑假在迪士尼的大數據組。在大學之前什麼程式語言都不會,到大一第二個學期寫了我第一個cout << "hello world"; 從此就開始我的geek life
然後實習生通常是兩輪技術型電話或skype面試,只有少數幾家像是臉書或微軟才會到最後一輪請你到公司面試。
名詞介紹:
Behavioral Questions(soft questions): 非技術性問題,比較多是想了解你的人格特質或思辨能力
Technical Questions: 技術性問題,通常會叫你寫程式
Brain Teaser: 腦筋急轉彎,現在比較少出現,但我朋友還是有被問到,比方說,你有十二個外表一模一樣的球球和一個秤,其中有個球球不一樣重(你不知道是較輕還是較重),你只能用三次秤來得出哪顆球是不一樣的,然後是比較輕還是比較重?
1. 微軟(面試過程->我從十月開始到一月結束):
他到學校招募收簡歷,暑假實習生找的主要是PM(program manager專案經理) 和 SDE (Software Developer Engineer軟體工程師)。UCLA總共被分配到PM和SDE加起來十五個名額,但有五個名額已經留給去年在微軟實習過的實習生,所以今年招十個。
我投了履歷一兩星期後收到郵件,他們希望我一星期後到學校的career center(職業中心)跟他們的工程師面試。
初試:
總共三十分鐘,是一個印度工程師。一開始他花了五分鐘過了我簡歷,問看看我最近做過最大的project(專案)是什麼,我跟他講了我上個暑假實習做的東西。接下來是在紙上寫一個關於3D Array處理的程式問題(我原本要用java 但他叫我用C++所以只好試著回想我還記得的語法哈哈),題目還算簡單,只是很冗長,用寫的就花掉我二十分鐘。接下來他還有另外一場面試所以我們很快就結束了,沒有給我時間問他問題。
初試完沒多久就是感恩節,可能他們也很忙,所以我到了一個月之後才收到回覆,那個時候都做好被無聲卡的準備了XD
信上說要由於人太多所以大概要推到一二月才能給我面試。但由於我已經有另外一個公司的offer所以我請他們讓我提前面試(在美國如果你有pending offer的話,他們通常會讓你提前面試)。
西雅圖總部On-site:
On-site總共有四輪白板面試,是同一團隊面試你。至於怎麼分配我倒不清楚,但我被分配到一個成立一年的小組Microsoft Cloud, Infrastructure and Operation(MCIO)主要就是做雲端的基礎設施的東西。面試的問題幸好並不是相關知識,而是比較通用的運算法和資料結構。
每一輪有四十五分鐘,第三場是午餐面試一個半小時(但後來他看我還有時間還是讓我寫題目...)。
1) 第一輪我是跟一個中國女主任(manager)面試,我真的很驚訝,他是我做過將近二十場面試,唯一的女性。他的題目不難,是確認一個二元樹(binary tree)是不是另外一個二元樹的子樹(subtree)。但是他非常在意程式的精簡度,即時我很快就寫出來,但我後來二十分鐘都花在把程式刪減十行。接下來的時間就比較輕鬆,他問我暑假幹了什麼,我問他這個團隊是什麼,接下來他就把我帶到第二個主管的辦公室。
2) 第二輪是跟一個印度人面試。這輪我就回答得很順,大概二十分鐘就把兩個問題做完。後來他看還有時間,又給我加試,問我寫一個程式他會輸出不同字串的組合, e.g. "abc" 有六組可能 “acb", "bac"之類的 這題我花了不少時間,但幸好還是寫出來。接下來就換我們互問問題,比方為什麼我想學資工等等。這輪應該是我做得最好的一關。
3)第三輪是跟另外一個印度人吃午餐。過程非常輕鬆愉快,我問他問題,他問我問題。但大部分都是我問他問題,比方在微軟工作環境怎樣,工作內容是什麼等等。我發現,人真的真的真的很喜歡談論他的過去,所以我就一直問他過去的經歷,然後他講得很開心XDD後來結束時回到他的辦公室後還有十五分鐘,於是他又問我一道白版題。
4)到第四輪候我其實有點累了,真的是飯飽神虛哈哈哈。這輪是一個華裔美國人,他問的題目讓我有點卡住:
假設你有一個graph, 裡面有不同字母,你還有個字典,你可以從那個字母往各個方向連,找出所有在字典裡的字
這題我一開始策略錯誤,用了BFS應該要用DFS,但後來時間有限我還是把偽代碼Pseudocode寫給他。這一輪我表現得沒有前幾輪好。
錄取通知:
由於我面試完後一週是聖誕節,幾乎全體員工都放假,我又等了兩三星期才得到回覆。人資先email我說我拿到實習,然後打給我快速說恭喜後就把福利清單唸給我聽lol
微軟的實習計畫說真的做得很完善。從我走出家門到機場,再從機場回家,整趟旅程他們都會包下費用。他們食宿三天也包。一天總共有$75美金的飯錢,剛好前兩天我都只有晚餐才需要自理,所以我都把錢花在牛排上(三分熟最好吃XD) 住的飯店是Marriot (萬豪酒店),兩大床,但一個人住。然後會再給你三張計程車票,你面試完後想去西雅圖玩就可以用那個,玩的費用也可以報銷。這個制度不是因為我在美國申請才有,若你若是在台灣,他也會把你飛到西雅圖總部,機票酒店吃飯全包。所以真的很推薦有興趣的同學去申請,當一個免費旅行也很好哈哈
2. 亞馬遜(面試過程->十月開始到一月結束):
一樣是他來學校招募,但是還是叫我們網上投履歷。聽說基本大三只要投了都有收到面試。
初試:
把同學叫到一個大飯店裡面考試,考試分三個部分共七十五分鐘。第一部分是邏輯題,題目有數學英文邏輯分析,還算挺簡單的。第二部分是寫代碼,要過測試。這一部份跟以往經驗不太一樣,通常考程式不會叫你馬上編譯或運行,因為就算是高手還是不免很多bugs,所以這次還滿不習慣要在三十分鐘內寫出一個bug free而且很多library不能用的迷宮題。第三部份就是寫第二部分有沒有什麼edge cases和你的思考邏輯是什麼。
我還滿訝異他們用這種集體測試的面試,而不是考官跟你一對一面試,讓我多多少少感覺亞馬遜求效率有點求過了。但即使是上機考還是過了一個多月才回復我進了最後一輪。
終試:
這次是一個四十五分鐘的電話面試。我一開始被問了一個不好回答非技術性問題:“講述一件你完成了一件本來不是你的責任的任務,然後你如何做到?“我覺得難的是因為我被問的第一瞬間,說實在很難講出一個不是我責任的任務,因為真的沒遇到多少。這題我就講得很籠統,但打亂了我的節奏。
所幸接下來問的三題技術型問題都算簡單,像是設計一個聊天伺服器(chat server)。後來提前了大概十分鐘結束。
錄取通知:
亞馬遜面試結束剛好是新年,於是又過了兩個禮拜才收到錄取通知。這次沒有人資打電話來,而是全部待遇細節都寫在郵件裡面。分到的組也是要到四五月份才知道。
結論:
通常在履歷上的比重應該是: 工作實習經歷 > 在校成績 == 學校名聲 > 社團經歷 == 額外自己學的項目(除非是參加過什麼很大的比賽,不然自己學的項目很快就會被略過去) 但說實在履歷頂多都只是讓你通過人資那關拿到面試,真正決定你的還是面試中的表現。
這次的面試經驗比去年順很多,我覺得很多事真的是“戲棚下站久了就是你的”。一直以來覺得自己“血統”不純,身邊很多同學都是從小就開始寫網頁或程式,覺得自己落後很多。 當年在看那些學長姐進了五大(微軟,谷歌,臉書,蘋果,亞馬遜)覺得超級難超級厲害。但實際上當年實力真的不夠。面試真的沒有什麼竅門(雖然我當年一直想找到),一直面,從中學習在成長,大公司還挺容易進的。
資源分享:
很好的訓練運算法的網站:
書:cracking the coding interview
求職社交網站: LinkedIn
P.S. 如果你想知道實習的相關資訊很簡單,只要在google上搜 "XXX OOO internship" XXX是公司 OOO是職位(當然名字順序不重要啦google很聰明) 比方"Disney Software Engineering Internship" 就會顯示相關資訊喔
比方這是微軟的連結:;jf=9&el=2&jt=2
祝大家找工作和實習順利,希望能幫到!
後來我把微軟和亞馬遜都拒了,去了一家在矽谷寫hadoop的小公司hortonworks,覺得自己的個性還是比較喜歡快速的成長和風險:D
