微軟實習生的報名是在3月份,也是挺早的,這是我今年主要實習面試第三家公司,前兩家(阿里、騰訊)可以見之前博客,第一次筆試時間在4月3號,說來奇怪,微軟面試通知我去筆試的時間是在4月3號晚上6點左右,而筆試時間是在7點半,第一次沒有通過,本以為微軟就這樣擦肩而過,后來又收到要4月24號進行第二次筆試的安排,因為我已經有了一個offer,所以也沒怎么准備,最后得了200分,給了面試機會,關於筆試,基本都是acm題目,聽實驗室同學說第一次做個150就給面試機會,所以大家可以把前兩道好好准備,面試是沒有問題的。
一面:由於我是9點組的,一組5個人,我8點半就來到微軟蘇州研究院,先簽到坐等助理喊。9點了,其他四個同學都被自個面試官叫到面試室面試,而我被告知我的面試官還沒到,讓我再等等,足足等到9點半(這效率,微軟或許很自由)還沒有來,hr給換了個面試官給我面試。首先自我介紹,接下來直接寫程序(紙上),1.股票交易,實現一次買賣收益最大;2.股票交易題,多次交易收益最大;3.n個人,只知道他們之間的相互認識關系,選候選村長,要求候選村長是:a.村長候選人不認識任何其他人;b.其他人都認識村長。因為時間的關系,只寫了前兩個程序,第三個沒有寫,說了下思路。
二面:二面的面試官直接就讓我講了一分鍾自我介紹,然后就直接寫程序(白板)。1.二叉查找樹的結構定義以及給定元素的刪除;2.二叉查找樹轉成有序的雙向鏈表。3.講了一個項目。這一面回答的還不錯,都寫出來了,其中寫第二個題目的時候,問不用遞歸和棧可以不可以實現中序遍歷樹,當時沒有答出來,其他都沒什么大問題。后來知道原來是考二叉樹的線索化問題。
三面:感覺應該是一個大boss,后面比較嚴肅,還被他鄙視了,估計跪就跪在他這一面了。剛開始給我聊了一下,接下來就只在白板上寫了一個程序,把給定字符串中的單詞逆序,比如:”I am the first one”變成”one first the am I”。這個題目很簡單,面試官也問我見過這道題沒有,我說見過的,他說ok,讓我寫代碼給他看,於是我就傻乎乎的在白板上寫了起來。不一會就寫完了。他說,寫完了?我說恩。你返回值和參數怎么定的?怎么不問我的?我有說過返回什么東西嗎?另外你有考慮過前后有空格的情況嗎?我嗚嗚。。。於是按他說的又修改了起來,不一會就修改好了,他說你又考慮中間有很多空格的情況嗎?我。。。他說怎么跟擠牙膏似的,說一個改一個呢?我。。。於是又改了起來,給他看了,他看了一會說有問題,我又看了一下,果然是數組越界的問題,然后又改好了,,當時我是不願意再看代碼了,就給他看了,又發現錯誤了,一句話放錯了位置,尼瑪我真汗顏了。。。最后改完了。。。三面的boss經歷目測是要跪了,一個簡簡單單的題目反應自己的水平還是菜鳥。
總結:
1.總體上,微軟蘇州研究所面試的題目還是很基礎的,主要考你寫代碼的風格和速度,功底要好,不過好好准備下,面試微軟應該沒有問題的。
2.微軟不像阿里騰訊那樣,面試的時候考的很全,除了數據結構和算法,還有網絡、操作系統、數據庫等等,自我感覺你是acmer,稍微准備一下面試時沒有問題的。
3.在你面試的時候一定要和面試官主動探討題目的內容,問好了再寫,不要因為很簡單就自以為是,可能如果失敗就是我沒有和面試官探討的原因,而且題目問的不細致。這次一定好好接受這次教訓,為以后做好准備。