張江男的曲折出國路
(中)
很快,第一面來了。已經(jīng)考慮到英國人的口音比較難懂,特意準(zhǔn)備好了耳機(jī),英語和技術(shù)都準(zhǔn)備得不充分,所以 31 號(hào)那天晚上吃完飯就一直在看面試的資料。而且時(shí)差也算錯(cuò)了,原本以為晚上10點(diǎn)的面試,9點(diǎn)電話突然就響了,一看是44打頭的,心跳突然加速,措手不及。趕忙準(zhǔn)備好耳機(jī),接通電話,面試就這樣稀里糊涂的開始了。我一手緊緊按著耳塞,一手拿著手機(jī),大腦飛速的運(yùn)轉(zhuǎn),努力的去辨別對(duì)方說的每一個(gè)單詞,可惜,大概聽懂了50%,估計(jì)對(duì)方能聽懂 30% 我說的。后來對(duì)方?jīng)]辦法,叫了一個(gè)中國人來做翻譯。面試持續(xù)了大概半個(gè)小時(shí),問了一些我在S3做了些什么以及S3是做什么的,我當(dāng)時(shí)在想你做這一行的,連S3都不知道? 面試最后大概說了一下是否可以去英國那邊面對(duì)面的面試。掛斷電話那瞬間,緊繃的我一下子癱倒在椅子上。后來才知道,面試時(shí)我太過緊張,以至回答問題的時(shí)候還夾雜著一點(diǎn)點(diǎn)中文,哦,天了,我面試時(shí)完全沒有察覺。
6月2日早上 7 點(diǎn),突然接到Apple打來的面試電話...
剛要起床,手機(jī)鈴聲便響起。一看號(hào)碼,很陌生,既不是英國那邊打過來的,也不是國內(nèi)的號(hào)碼。接通后,從對(duì)方的英語口音就一下子能辨別出是美國打過來的,待電話那頭自我介紹完之后,方知對(duì)方是蘋果總部 HR,那英語,通過電話都能聽得清清楚楚,我就納悶為什么英國人說話那么難聽懂呢?蘋果的 HR 主動(dòng)提出第二天早上就進(jìn)行技術(shù)面試,我嘗試著推后面試時(shí)間,好讓我有針對(duì)性的準(zhǔn)備準(zhǔn)備,但沒有成功。掛斷電話后,那股興奮勁簡(jiǎn)直無法用語言表達(dá),要知道,能讓蘋果看上你就已經(jīng)說明你具有全球頂尖人才的潛質(zhì)了。
那天注定就不能安心的工作,蘋果,我夢(mèng)寐以求的公司。本來打算請(qǐng)假在家準(zhǔn)備面試,但最終還是去公司了。從 S3 的辦公室布局來看,就會(huì)覺得 S3 對(duì)個(gè)人隱私保護(hù)的很好,每個(gè)人有 4 平米的空間,其中 3.5 面都是 1.6 米高的隔板,所以,在自己的格子里面開小差別人也不會(huì)發(fā)現(xiàn)。那天白天,我偷偷在公司把所有做過的東西幾乎復(fù)習(xí)了一遍,晚上又了解了一些蘋果公司的信息以及深入復(fù)習(xí)一些可能會(huì)被問到的問題。然后帶著興奮與不安的心睡去。
6月3號(hào)早上6:45點(diǎn),提前了15分鐘起床。7 點(diǎn)接到面試電話,感覺這次口語和聽力都進(jìn)步不少,對(duì)方說的基本上都聽懂了,我說的對(duì)方也沒有疑問。面試大概持續(xù)了30分鐘,其中有兩個(gè)問題導(dǎo)致了我這次的失敗。一,關(guān)于循環(huán)展開的實(shí)現(xiàn)問題沒有很清晰的回答出來,這也是因?yàn)橐郧白鲞@個(gè)優(yōu)化的時(shí)候只在一些前提條件和參數(shù)上面進(jìn)行了優(yōu)化,而自己沒有實(shí)現(xiàn)過這個(gè)算法。二,關(guān)于 OpenGL 頂點(diǎn)著色器的默認(rèn)輸入?yún)?shù)的含義,當(dāng)時(shí)我腦海里全是高版本的OpenGL,而低版本的OpenGL才會(huì)用到默認(rèn)的輸入?yún)?shù),當(dāng)時(shí)我想表達(dá)一些對(duì)此問題疑問,但又沒有很好的表達(dá)出來。蘋果的人做事真的很果斷,當(dāng)我在這兩個(gè)問題上面暴露出問題后,對(duì)方就沒有給我太多機(jī)會(huì),連安排好的第二個(gè)面試官的電話面試也被取消了。
蘋果的面試就這樣在不幸中結(jié)束,看來這次與蘋果無緣了,與美國無緣了。
心里像打倒了五味瓶,但生活還得繼續(xù)。
有過這次失敗的教訓(xùn)之后,接下來的幾天便著重深入研究了各種算法,并且在網(wǎng)上做了大量的 C/C++ 在線測(cè)試題,以應(yīng)對(duì) 6 月 6 號(hào)的 Imagination 的在線測(cè)試。參加 Imagination 在線測(cè)試之前,我已經(jīng)從 glassdoor 了解到了一些關(guān)于這次測(cè)試的基本信息,比如說平均每道題只有 3 分鐘時(shí)間,做過的題不能返回復(fù)查,沒有時(shí)間寫程序測(cè)試編程題的輸出等等。6 號(hào)晚上下班回家吃完飯,調(diào)整好狀態(tài),便開始做題,邦利為了不打擾我,選擇了去同濟(jì)跳舞,我想那只是去跳舞的借口罷了??偣?30 道題,從 8 點(diǎn)一直持續(xù)到 9 點(diǎn)半。我想設(shè)計(jì)題目的人一定是拿著一本C語言標(biāo)準(zhǔn),專門找那些不常用的知識(shí)出題,比如說,printf (“%lc%ld%li%lo%ln%ls%hx%hhx”, .....) 的輸出是什么,lvalue 和 rvalue 的概念等等; 和我之前在網(wǎng)上找的 C/C++ 編程題類型有不小的差距。由于我沒有想到這些題會(huì)有一定的難度,所以從我一剛開始看到這些題的時(shí)候就有點(diǎn)心跳加速。剛開始不會(huì)的題還會(huì) google 一下,但一般都很難找到答案,后來就干脆完全靠自己的記憶和對(duì)知識(shí)的綜合運(yùn)用了。這次測(cè)試還有一個(gè)顯著的特點(diǎn)就是所有題目都是以圖片的形式呈現(xiàn)出來的,并且字體非常奇怪,我一看便知道這樣做的目的是避免測(cè)試者用 OCR 取詞。其實(shí)我便用了 OCR 取詞過幾個(gè)編程題,但是效果非常差,粘貼取詞的內(nèi)容到文本編輯器之后還得手動(dòng)修改取詞錯(cuò)誤,然后還要編譯,調(diào)試,測(cè)試輸出,評(píng)估輸出是否合理;要知道 3 分鐘的時(shí)間做這么多事情是一件非常困難的事情,所以這樣做了幾個(gè)題之后就干脆丟開了 OCR,完全靠自己的大腦。不過后來回想起其實(shí)有一些通過寫程序測(cè)試過的題卻做錯(cuò)的,原因是這些題的結(jié)果本來就是不確定的,但是我卻選擇了程序在我電腦上運(yùn)行出的結(jié)果,出題的人真是費(fèi)了不少心思呀。題目做完提交后,估計(jì)了一下自己的正確率,80% 左右,接著又寫郵件告訴獵頭我這邊的進(jìn)展情況,Imagination 的第二面就這樣結(jié)束了。
在線測(cè)試做的不夠好,自然開始擔(dān)心會(huì)不會(huì)被刷掉。所以頻繁的和獵頭互發(fā) email,兩三天后,Imagination 便給出了第三面的安排。
6月12日,Imagination 第三面,電話那頭是HR,持續(xù)了大概 45 分鐘,全部聊的非技術(shù)問題。HR 的口音非常容易聽懂,并且由于準(zhǔn)備得充分,終于在這次面試中表現(xiàn)不錯(cuò),并且理所當(dāng)然的拿到了第四面的機(jī)會(huì)。和 HR 面試的內(nèi)容無非就是自我介紹,以前做過什么,為什么離開當(dāng)前公司,為什么想來英國,為什么想來 Imagination, 對(duì)我們公司有什么了解,和以前同事關(guān)系如何等等。當(dāng)然這一面也有測(cè)試英語能力的目的。
第二天晚上,接著便是 Broadcom 的電話面試,第一面的面試官當(dāng)然是部門老大了。有了前幾次的面試經(jīng)驗(yàn)過后,我對(duì)英語的信心也逐漸建立起來,和老大聊了以前我做過的東西以及里面用到的一些算法,便大致確定還會(huì)進(jìn)行更進(jìn)一步的面試。
ARM的電話面試安排在 15 號(hào)晚上,這次對(duì)方是兩個(gè)面試官,從電話那頭互相談話的聲音推測(cè),便知道對(duì)方是在會(huì)議室打的電話,而且還開的免提。這兩個(gè)面試官輪流問我一些和我簡(jiǎn)歷相關(guān)的問題,這次面試也很順利,快結(jié)束的時(shí)候?qū)Ψ奖惚硎竞芟胱屛胰蚝退麄兠鎸?duì)面的面試,而此時(shí)的我,已經(jīng)信心滿滿。
這些公司在邀請(qǐng)你面對(duì)面面試之前,都會(huì)想法測(cè)試一下你的實(shí)際編程能力,這是和國內(nèi)公司面試區(qū)別最大的地方。
原本在第一面的時(shí)候,ARM 和 Broadcom 就已經(jīng)邀請(qǐng)我進(jìn)行下一步的面對(duì)面的面試,但是后來兩家公司都提出讓我做一個(gè)編程挑戰(zhàn)題,當(dāng)時(shí)我想的是難道他們老外在懷疑我們的實(shí)干能力。Broadcom 的給的題目是在幾個(gè)小時(shí)以內(nèi)利用開源的編譯器架構(gòu)搭建一個(gè)簡(jiǎn)單的編譯器, 并且用git版本管理器記錄所有開發(fā)過程。ARM 給的題大概是寫程序解決多重生產(chǎn)者消費(fèi)者之間的并發(fā)問題,兩個(gè)小時(shí)完成。我花了8個(gè)多小時(shí)才基本上做完 Broadcom 給的題目,美好的周六就這樣去了。而ARM的編程題則耗掉了我第二周周末上午半天的時(shí)間,因?yàn)樘峤涣藘蓚€(gè)版本,每個(gè)版本兩個(gè)小時(shí)。
自從6月22日做完Broadcom給的編程題,到7月16日,就一直沒有得到Broadcom的反饋,期間我還給獵頭發(fā)郵件詢問面試的進(jìn)展,但沒有得到回復(fù),所以我當(dāng)時(shí)想到的結(jié)果便是自己已經(jīng)被Broadcom從候選者中除名了。
7月份的日程試安排得滿滿的。
7月1日做完 ARM 劍橋給的編程題,7 月 2 日又開始面 ARM 瑞典的一個(gè)崗位。第一次聽瑞典人講英語,我想你講的那是英語還是瑞典語,幾乎每句話我都要pardon好幾次。這次通話感覺是稀里糊涂完成的,但對(duì)方居然還要求進(jìn)行下一步的面試,我算是知道我所在這個(gè)崗位是多么缺人了。