1. 程式人生 > >我的微軟亞洲研究院實習生面試經歷

我的微軟亞洲研究院實習生面試經歷

來到MSRA實習快2個月了,有很多收穫,但總是懶得寫,今天有點時間就先寫一下我的面試過程,分享一點個人的經驗,希望能對低年級的同學有點幫助。 首先是投簡歷。想去MS或者IBM、GOOGLE實習,英文簡歷是必須的,不用太過華麗,簡單明瞭最好。我的英文簡歷就1頁,中文簡歷2頁,裡面沒有照片,非常簡單,重點突出我的程式設計能力和專案經驗上。這裡要注意一點,除非覺得某一方面別人肯定問不倒你,不然儘量不要寫精通XXX(特別是別寫精通 C++)。然後直接在MSRA的網站上投的:http://www.msra.cn/recruitment/InternRecruitment.aspx 投MSRA還需要在他的網站上下一個申請表,填完一併發過去。MSRA回信很快,我投了2天還是3天就給我電話了(微軟工程院好像過了1、2周才給我回郵件預約面試的)。 然後就是電話面試。投完簡歷的第2天還是第3天MSRA的研究員(就是我現在的mentor)就給我打電話了,想給我做一個電話面試。當時我還在發燒,躺在床上休息,本來很沒精神的,看見手機是010開頭的號碼,馬上有精神了。問的問題都很基礎,只要基本功紮實一些的同學基本上都能答上來(面試的題目寫在最後)。第一輪面試大概1個小時,然後他說以後還會有其他人再給我做幾次面試,結果不到半小時電話又打來了,另一個人開始給我進行第二輪電話面試。然後又過了大概1個多小時,又接到了第三輪電話面試。隔了一天,接到了第四輪面試(最後一輪面試)。全部都是技術面,除了基礎問題就是問一些關於我專案的問題。感覺他們問的問題都比較即興,當我回答完一個以後,回答的過程中可能又說到了一些技術點,然後他們就會問這個技術點的問題。 最後就是給實習offer。在最後一面(第四面)完了以後,又過了1天,突然又接到我現在mentor的電話,說想讓我過來實習,但是查系統時發現我在1 個月前投了微軟工程院的實習生職位,問如果兩邊都要我,我想去哪邊。我當然很乾脆的回答是去MSRA了(其實對於我或者大多數人來說,MS的哪要就去哪,還沒牛到選MS的地步)。然後他說一會兒會有HR給我電話和我確認。過了半小時,先是接到了MS ATC的HR電話,問我想去哪邊(她的口氣希望我去MS ATC),讓我考慮考慮,但是我還是跟她說我想去MSRA。後來又接到了MSRA的HR電話,跟她確定我想去MSRA實習的意思。最後又過了一天,MSRA的HR才給我電話,口頭給我實習offer的。在這其中,我之前投的INTEL研發實習也給我進行了一次電話面試,後來在收到MSRA實習 offer以後,我就拒絕了他們的第二次面試。 總結一下,從時間上,MSRA這邊最快,包括投簡歷到口頭給我offer總共也就一週。INTEL其次。最慢的是MS ATC,從投簡歷到電話面試大概經過了1個月。但是MS ATC最正式,在電話面試之前一週,HR給我打電話預約時間,並給我發了一封面試時間表的郵件。 下面是我還能記得的一些面試題,都很基礎,主要考察了基本功,涉及面很隨意,我覺得他們是想到什麼問什麼,從你回答過程中瞭解你的思維過程(後來我和 mentor聊時他也這麼說,很多題並沒有正確答案,他們只是想看看我的思維過程),所以大家在思考的時候最好嘴也不要停,把你的思考過程說出來。並提醒一下低年級的同學,基本功很重要,平時學的時候就要學牢。 最後鼓勵一下大家,其實來MSRA實習沒有想象中的這麼難,我覺得周圍的實習生裡面有很多牛人,但是很一般的人也有,關鍵是大家要有自信。我周圍有很多其他學校大四的在這邊做畢設,所以快到大四的同學可以提前做做準備,爭取來這邊做畢設,不管是以後繼續讀研還是工作,都會有很大的收穫。研一上完課的並且以後想直接工作的同學也可以早點試試,有這邊的實習經歷對以後找工作也有一定加分。 想出來實習的同學要早做打算,經常關注一些招聘網站和這些大公司網站,一有訊息趕快投簡歷。 面試題:(我同時投了微軟工程院、微軟亞洲研究院、INTEL研發,下面是他們問的面試題) 1. 說一下C++中的多型,最好舉一些例子。 2. C++中虛擬函式和普通函式有什麼不同(也要求舉例子)。 3. 程序間通訊你知道哪幾種方法? 4. 舉例說一下死鎖的條件? 5. 講一下windows訊息傳遞機制? 6. 講一下工廠方法的好處?(不是如何實現,是好處) 7. 說一下COM元件介面的三個最基本方法(函式)? 8. 程序間同步的方法有哪些? 基礎題大概是這些。 P.S.: 在面試微軟工程院的時候,他們讓我裝live meeting,然後一邊和我電話,讓我直接把程式打到live meeting上面,所以問了幾道具體的程式設計題,都比較簡單: 1. 他先向我介紹了一下標準C的strtok()函式,然後讓我實現(直接在live meeting裡把程式碼打出來)。然後繼續問我,如果這個程式在多執行緒情況下會出現什麼問題?我回答以後又問,那麼應該怎麼解決這些問題。 2. 要求寫一個程式,輸入一個數n,如:n=1,程式輸出: 1,2,3, ...,9 如果n=2,程式輸出: 1,2,3...9 1,2,3,...98,99 如果n=3,輸出: 1,2,...9 1,2,...99 1,2,...999 (不能寫虛擬碼) -- 歡迎去我的部落格看看:
http://hi.baidu.com/wuxicn
軟體理論教研室網站: http://www.jlu-softlab.cn/