網站首頁 工作範例 辦公範例 個人範例 黨團範例 簡歷範例 學生範例 其他範例 專題範例

微軟面試經歷分享

欄目: 面試技巧 / 釋出於: / 人氣:2.53W

導語:微軟股份有限公司是美國一家跨國電腦科技公司。以研發、製造、授權和提供廣泛的電腦軟體服務業務為主,總部位於美國華盛頓州的雷德蒙德,公司的暢銷產品為Microsoft Windows操作系統和Microsoft Office軟體。北京時間20xx年5月12日,微軟公司在福布斯“全球企業20xx強”榜單上位居第三。

微軟面試經歷分享

我的微軟面試經歷

終於收到微軟的offer了,這兩天可謂是過得忐忑不安,其實之前都沒想到過自己可以進微軟,想必競爭很激烈。不過最後收到offer letter時,心裡又出奇得平靜,這又能代表什麼呢,只不過是一塊敲門磚而已,以後要走的路還很長……

因為之前面試官叮囑不能在面試期間向外洩露題目,因此沒有詳細地記錄面試中的一些細節,既然面試基本已結束,我想還是補上為好,時日久了恐怕會淡忘了。

微軟的這幾次面試讓我收穫挺多的,一共三輪技術面,連HR面都免了,可見微軟對技術上的重視。每次都是一名面試官單對單面一小時,即便進入終面也是如此,面試官的分配是隨機的,從資歷稍淺的到資深的都有,起初我還擔心了一下,以為終面會是幾個面試官群P。其實首先在心態上應該擺好,將其當做是一個學習的過程,在和麵試官交流探討的過程中自己也會有很大的提高,另一方面也是檢驗自己的能力的好機會。接下來我將好好記錄一下自己的面試經歷。

第一位面試官是一位資深的工程師,看得出他很有面試經驗。首先會從你最得意的一個專案入手,看看你是怎麼實現的,用的什麼資料結構和演算法,問得很細,所以一定要對這個專案瞭若指掌,別人不聽你忽悠的,倘若被戳穿會遭人鄙視的,而且語言表達能力很重要,要邏輯很清晰的,簡明扼要地闡述,否則會讓人感覺你很不靠譜。我主要討論了兩年前做過的一個電路分析系統,這算是自己的得意之作了吧,涉及到電路建模,訊號流解析,代數運算引擎等等內容,算是比較複雜了。面試官很較真,每個技術細節都要問清楚,直到他完全明白為止。專案討論完後會開始做題,通常和剛討論的內容有些近似,可能取材於該面試官做過的類似專案,他會讓你談談你的解決問題的思路,可能會讓你寫code, 這主要考察你的engineering的能力。這裡他問了一個檔案解析方面的問題,給定一個以很散亂的資料格式分佈的檔案,單位資料塊大小不定,每行資料塊數不定,行數不定,內容不定,需要快速進行隨機定位抽取,需要設計資料結構和演算法以及函式介面。在我提出了若干種解決方案之後,他開始提高難度,假如資料量很大時,記憶體裝不下了,你怎麼解決?當我提出比較滿意的方案後,他再問,假如資料量更大了,硬碟都裝不下了,你該怎麼解決等。總之會不斷地加大資料量,直至讓你撐爆為止。給我的感覺是,三個面試官都會有一個共同點,他們在考你演算法的時候都喜歡涉及海量資料的處理,我想可能有兩個原因,一個就是在實際應用中,海量資料的處理是非常重要的,另一方面,演算法只有放到海量資料中,才能真正體現其威力。不斷提高資料的量級,看你能否不斷提出更好的解決方案,挺能考驗人的思維能力的,而這種思維能力絕不是你光看幾天書就能養成的,還是需要平時持之以恆地自我提升。感覺一些常規的資料結構如棧,堆,樹什麼的基本沒考察過。

第二位面試官是一位資歷稍淺的工程師,一上來就需要你做英文的自我介紹,你說什麼不重要,重要的是看你的英文口語表達能力,別太蹩腳就行了。接下來還是會看你的簡歷,如果對你做過的東西都不是太瞭解的話,可能會讓你直接做題,題目不會太難,你需要先講講自己的解決思路,然後寫code,仍然是考察你的code能力,假如有迴圈,要注意上下界,假如有遞迴,要注意退出情況。這裡他要求寫一個函式,去除陣列中重複的元素。在你寫好之後,他會著重看你的邊界是否存在問題。之後會將這個問題進行發散,很可能會往海量資料上引,讓你提解決方案,然後對每種解決方案讓你評估其複雜度,比如有100T個數,讓你去除其中所有重複的數等等。給我的感覺是,一定要有你自己的想法,展現自己的思維能力,就是拿到一個問題之後你通常會如何思考和尋求解決方案,這是非常關鍵的,是否能達到最終的最優解決方案這倒不一定很重要。所以,思維要活躍和發散一點。接下來會繼續給你做另一個題目,主要是考察你的raw intelligence,比如可以將其轉化為數學問題,進行數學推導,然後就可以通過程式設計解決問題了。這裡他問給定任意一個正整數,是否可以表達成若干個連續的正整數之和,如果可以請程式設計求解。這個問題記得在《程式設計之美》上看過。在和麵試官討論找平方根的過程中,我指出了一個細節,可以讓程式至少省了一半的時間,這個細節連面試官都貌似沒想到,所以從他眼中散發的光芒中我看得出他很滿意。

假如通過了前面兩輪面試,就會進入第三輪,其實和前兩輪差不多,只是不同的面試官其面試風格不一樣吧。不過給我感覺,他們都很nice,畢竟大家都是從學生過來的,不會故意為難你的。不會的地方坦誠自己不會,OK,沒問題,畢竟每個人都有自己側重的地方,不可能面面俱到的。重要的是展現你的能力,你的思維能力,學習能力,表達能力等。

終面通知來得挺突然的,晚上天黑了才來通知,蛋疼的是騰訊的面試通知也來了,都安排在第二天中午,基本上沒法準備,不過有了前兩次的教訓,我專門對海量資料的處理方面好好地研究了一下,不敢說很透徹,但至少又獲得了許多解決問題的新思路,這在之後的終面中證明是很有效的。

終面,首先還是問你專案的問題,可能會問他比較熟悉的專案,然後會提一個類似的問題,讓你分析可能導致該問題的原因,讓你談談自己的解決思路。這裡他問假如取款機突然響應很慢,你覺得為什麼會這樣?請你提出解決方案。接下來會讓你做題,會有一個應用場景,讓你大致寫一下虛擬碼。一定要確認自己明白無誤地理解題目的意思,面試就好在這,可以當面和麵試官互動。這裡他問了一個網頁的抓取和分類的問題,有點像網路爬蟲,需要遞迴地掃描所有URL並進行分類,並且還要防止有環路。之後仍然會將該問題往海量資料上引,套路還是一樣,記憶體不夠了,硬碟不夠了,僅限於單機等等。如果暫時沒有思路也不要緊,可以讓他給你些提示。思維可以發散一點,不一定總要死盯著某種演算法,有時候會難以突破瓶頸的,不如換一種思路試試,說不定會有所突破呢,我就是如此,突然靈光一閃,就想到了解決方案,看得出面試官挺滿意的。其實沒什麼高深的,關鍵還是在於自己平時的積累。接下來呢就談了一下我的專業,我不是學計算機的,所以就談一談我的專業主要是幹嘛的,其實還是考察表達能力吧,然後問一下你做過的自己專業的一些專案,都挺輕鬆的,最後就是看你還有沒有問題了。

比較蛋疼的是,不論是騰訊還是微軟的面試官,都不止一次地問我既然你喜歡計算機,為什麼本科選擇電子,碩士也選擇電子?年輕時小盆友不懂事也罷,為什麼都研究僧了還繼續不懂事呢?尤其是騰訊面試,一輪三面,包括HR,這個問題都問了一遍。看來,所有的人都覺得我腦子有問題吧。

最後總結一下,感覺微軟挺重演算法的,不知是否跟我搞伺服器有關,面試官都很喜歡問海量資料處理方面的問題,還有個人的思維能力也是相當重要的,畢竟這個東西是個長期培養的過程,不是短期培訓就能搞起來的,我挺喜歡與工程師交流的,不論是技術還是人生,總覺得很暢快,我就喜歡這種感覺。

談談接下來的打算吧,過去一年主要精力都放在engineer上了,演算法還是不夠紮實,這次以去實習為契機,好好狠抓演算法,現在看來,演算法才是王道啊。