星期天收到MS ATC部門的面試信,今天如期到美羅大廈準備MS面試。一早和同學到美羅大廈,剛進去發現這裡乘電梯居然要排長隊的-_-b 到了樓上發現HR JJ也是老外,給我們進行面試安排,於是大家就各奔東西了。
首先是一位稱在MS工作了9年的老外JJ,先讓我介紹現在的專業和研究方向,接著問我在軟體工程中的三個角色:架構師、設計師、代碼編寫者,希望承擔哪一方向的角色云云。然後開始問了兩個很簡單的問題:寫一個判斷素數的函數,寫一個判斷字串匹配(類似strstr)的函數。函數本身都很簡單,最多就是一些特例的處理,比如應該考慮正負數、0、1等;字串要注意遍曆及結束判斷等。然後老外JJ很關心地問在紙上寫程式是不是很不一樣,我說我高中時就一直在紙上寫程式,然後再到電腦上調試:)笑。但是令我很奇怪的是,她一直盯著我問程式需要什麼異常處理,我實在想不出一個判斷素數的函數需要任何的異常處理;接著又問我另一個函數要什麼異常處理,我還是同樣的答案……於是讓我寫一些test case來測試自己的函數,汗,隨便寫了一些邊界條件,以及能覆蓋程式所有代碼的用例。結果似乎她還不滿意,後來又居然問我調用strstr(9,93)會怎樣?我說這個是交給作業系統判斷記憶體訪問違例的情況。然後她就開始口若懸河地說起做像Windows這麼大的一個系統要考慮到所有的情況和測試的學問。我就差點沒說我很崇拜《Write Secure Code》這本書了……最後說換我問問題了,結果我還沒說什麼問題,她又問了為什麼要到微軟,搞得我沒弄明白是我在問她還是她在問我。
接著等下一輪面試官,似乎等了15分鐘以上,又是一個老外。果然今天為了這個面試,ATC訂了很多會議室,會議室環境都挺不錯的。先也是一些常規問題,有些忘了,好像問到一些經曆和擅長的語言等等,還問了希望.Net有什麼新的功能,瞎答了一陣,呵呵。問了一個從整型數組裡移除相同元素的程式,先寫了個O(n2)演算法,然後再談談最佳化成O(n),接著又是讓我寫test case,從第一位面試官那整理了些經驗,說了一些,呵呵。問罷是兩個智力題:1、二個立方體各個面寫上數字,然後用於表示一個月中的日期(即01-31);2、兩個人從0開始輪流取數,可以取比前一位大1~3的數,然後取到30的就算贏。結果第2題沒等到他說問題就回答了,出來後細想,應該是答錯了……
老外很熱情地把我領到等待下一個面試官那裡,結果又傻等了近15分鐘,終於有人出來了。很意外地通知我可以先回去了-_-b 鬱悶和忐忑不安中……