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