對(duì)于微軟亞洲研究院九年的建院歷史而言,工作十年以上的員工并不多,鄒欣便是這為數(shù)不多中的一員。他在美國(guó)獲得計(jì)算機(jī)碩士學(xué)位后便與微軟結(jié)緣,先后在微軟總部參與開發(fā)了Outlook, Visual Studio 2005等軟件項(xiàng)目,2005年回國(guó)加入微軟亞洲研究院創(chuàng)新工程中心,擔(dān)任開發(fā)經(jīng)理。時(shí)隔十余年之久,鄒欣回憶起了他當(dāng)年的微軟面試故事。
大約是1996年春天,我在韋恩州立大學(xué)(Wayne State University)正忙著寫碩士論文。一天,收到了一封電子郵件,來自Richard Brodie,我依稀還記得上面寫著:
"I'm the creator of Word. I found your resume… are you interested in a contract position at Microsoft?"
他叫我寫了一個(gè)程序 (好像是二叉樹排序),我寫好之后email給他。幾天之后,他又安排了微軟的一個(gè)電話面試,主要詢問了一些關(guān)于項(xiàng)目、程序設(shè)計(jì)語言方面的知識(shí)。不久,他說還得去面試,就把去微軟公司總部Seattle的來回機(jī)票寄給我了。在這之前,我已經(jīng)得到了幾家軟件公司的Offer。因?yàn)橐郧坝羞^在一個(gè)大型公司工作的經(jīng)歷,我對(duì)大公司的興趣倒不是特別大,但是又一想,免費(fèi)的機(jī)票、還有Microsoft 的名聲,抱著去看看的心理就上路了。
那天清早,從Detroit 經(jīng)Pittsburg 到了Seattle,由于時(shí)差的關(guān)系,到達(dá)時(shí)還是早上。Richard 接了我,從機(jī)場(chǎng)到微軟的路上,他和我聊了我在國(guó)內(nèi)做過的項(xiàng)目。聽說我們?cè)谀繕?biāo)碼上漢化了SCO Unix,他吃了一驚,拍拍我的肩膀說,那你做這個(gè)工作是沒問題的了。
我進(jìn)了微軟17樓的門廳,覺得氣派不小,一個(gè)叫Gary 的人把我領(lǐng)到他的辦公室,屋里堆滿了各種各樣的玩具,一個(gè)大盒子上好像還有日語寫的“棋盤”二字。寒暄之后,就直奔主題。
他問道:“在一個(gè)含有DBCS的字符串中,如何從當(dāng)前的位置向字符串頭退一個(gè)完整的字符?”
你們看到這個(gè)地方可千萬別笑,當(dāng)時(shí)的不少文字編輯器不能處理這些問題,編輯的光標(biāo)時(shí)不時(shí)會(huì)跑到一個(gè)漢字的中間去。我在黑板上邊寫算法,他在旁邊提問。這個(gè)問題的關(guān)鍵是了解DBCS (Double Byte Character Set) 中 leading byte 和 trailing byte 的區(qū)別,然后向字符串開始處搜索,寫完大概的算法后,又討論了優(yōu)化的問題。寫完之后,他好像挺滿意。
(現(xiàn)在想不起來午飯是如何解決的了,一般情況下吃午飯時(shí)也要安排面試,問一些和技術(shù)有關(guān)的問題)
第二個(gè)見面的叫Daniel,看樣子像中國(guó)人,他叫我做了幾個(gè)指針的程序,大概是把單鏈表倒過來之類的。然后要我分析各種算法的優(yōu)劣。這一關(guān)很順利就過了。
第三個(gè)見面的叫Matt,他跟我談了他們正在做一個(gè)叫outlook 的email 和個(gè)人信息管理程序,遠(yuǎn)東版(中日韓語言)進(jìn)度很慢,需要做不少處理雙字節(jié)的工作,以及各種和中日韓環(huán)境有關(guān)的問題。我問他:“你們?yōu)樯恫挥?Unicode, 我覺得Unicode 一出,就再也不用DBCS了。”他有點(diǎn)尷尬地說,我們的程序是建立在一個(gè)叫MAPI 的平臺(tái)上的,它還不支持 Unicode。正說著,門外一陣騷動(dòng),有人推門進(jìn)來說:“哥們,快去……”。征得我的同意之后,Matt 帶著我來到一個(gè)大廳,一幫人圍著看一個(gè)人在被剃光頭,有人還在起哄。被剃者面帶微笑,巋然不動(dòng)。他叫Mike,是Outlook 的開發(fā)經(jīng)理(development manager)。據(jù)說他和大家打賭,如果在某月某日之前整個(gè)團(tuán)隊(duì)的bug 數(shù)量減少到一定數(shù)目,他就以光頭回報(bào)。
看完剃頭事件,我從冰箱拿了一聽 Mountain Dew,和 Matt 回到他的辦公室,繼續(xù)面試。Matt 叫我實(shí)現(xiàn)標(biāo)準(zhǔn)函數(shù) itoa() 功能,就是把數(shù)字轉(zhuǎn)換成為字符串輸出。或許是累了,或許是Mountain Dew里的咖啡因起了作用,我覺得用簡(jiǎn)單的循環(huán)方法太平常了,就思考著是否可以用數(shù)學(xué)庫函數(shù)來做。他說,這是我第一次看到這樣的解法,你為啥不用簡(jiǎn)單的方法?你知道數(shù)學(xué)庫函數(shù)有多慢么?其實(shí),我當(dāng)時(shí)的幼稚想法是想通過這種解法向面試官證明自己懂得并不少。
下午,Richard 送我到機(jī)場(chǎng)附近的旅館,路上他問,要不要在西雅圖一帶兜兜風(fēng)?我說,我覺得我肯定會(huì)來這里上班的,以后有的是機(jī)會(huì),這次就不用了:)。吃晚飯時(shí),我還買了一份報(bào)紙,拿了幾份房地產(chǎn)的廣告,和中西部的價(jià)格比較了一下:)。
回到底特律一兩天后,Richard 來email 說,前兩個(gè)面試都挺好,好象第三個(gè)面試官有些看法……又過了幾天,他說,你可以來上班了。于是,我就推掉了其它公司的offer,來到了微軟公司所在的雷德蒙,成為了Richard Brodie 公司的職員,在微軟里開始為遠(yuǎn)東版的Outlook進(jìn)行開發(fā)。 我那時(shí)的email 地址前有一個(gè)“v-”,表示vendor。
當(dāng)時(shí)我面試的公司中,我記得只有微軟是要求我當(dāng)場(chǎng)寫程序,其他公司有一個(gè)是問了一些簡(jiǎn)單的問題后,就說,好吧,我們馬上發(fā)傳真Offer,你下個(gè)星期就過來吧。我說,這么快?于是要求和公司再了解一下,于是他們找了一個(gè)中國(guó)員工來和我談,后來得知他們是給別的公司做外包,業(yè)務(wù)特別多,急著要人。
我現(xiàn)在還記得曾經(jīng)有個(gè)公司問我“你如何定義成功?”,這個(gè)問題真是難以回答,我真想親自問一下提問人的標(biāo)準(zhǔn)答案是什么。還有一個(gè)公司還叫我做了兩個(gè)小時(shí)的心理測(cè)試問卷,其中問到:“古今中外,你崇拜的人是誰,為什么?”我心想如果寫中國(guó)的古代高士,那太難解釋清楚了,于是我轉(zhuǎn)而描述了某位美國(guó)開國(guó)元?jiǎng)?,而且盡量小心不要把他的事跡和其他開國(guó)元?jiǎng)椎氖论E混淆起來。大概他們分析出來我的心理還算主流,不久之后我也得到了這家公司的邀請(qǐng)。
當(dāng)時(shí)一個(gè)芝加哥的公司聽說我不想接受他們的offer,問我為啥?我說西雅圖氣候宜人,而芝加哥太冷了,他們就說,這樣,你的薪水上還可以再加上幾千元,這樣芝加哥的冬天就比西雅圖還好過了,如何?我想了想,還是直奔西雅圖而去。現(xiàn)在回想這些面試過程中的趣事,還真是挺有意思的。
在微軟上班一年后,我成為了微軟正式職工,沒有經(jīng)過面試。當(dāng)時(shí)outlook 的總經(jīng)理叫Brian,他經(jīng)常采取一些非常規(guī)的辦法勸說在那里實(shí)習(xí)的學(xué)生直接成為正式職工,好像Daniel 就是退學(xué)后直接轉(zhuǎn)正的。我問我的老板,不是說成為正式職工要5 個(gè)人面試么?他說,別浪費(fèi)時(shí)間了,你的工作就是最好的面試。我想與即將經(jīng)歷面試的畢業(yè)生朋友們一起共勉。