面試硅谷創(chuàng)業(yè)公司:請(qǐng)把面試官當(dāng)成你的同事
現(xiàn)在有不少的硅谷公司直接招聘國(guó)內(nèi)的軟件工程師到美國(guó)工作,這些公司主要是大的互聯(lián)網(wǎng)企業(yè)和中型創(chuàng)業(yè)公司(太小的創(chuàng)業(yè)公司沒有資源申請(qǐng)H-1B簽證)。有很多的朋友對(duì)此有興趣并且問(wèn)我需要準(zhǔn)備和注意的地方。 我覺得大部分的技術(shù)能力都是靠一定時(shí)間的學(xué)習(xí)和積累的,基本上不能準(zhǔn)備;但假設(shè)你的技術(shù)和經(jīng)驗(yàn)都很好,面試當(dāng)場(chǎng)的表現(xiàn)的確可以在短時(shí)間內(nèi)準(zhǔn)備和提高。
我每次在面試現(xiàn)場(chǎng)都盡量跟每個(gè)應(yīng)聘的朋友分享一些面試的技巧,讓他們放松并且充分準(zhǔn)備?,F(xiàn)在把這些想法總結(jié)一下,我想這些經(jīng)驗(yàn)主要對(duì)創(chuàng)業(yè)文化比較強(qiáng)的公司有幫助 (如果招聘的公司是傳統(tǒng)文化的大公司,有些建議可能適得其反)。
最最關(guān)鍵的一點(diǎn): 不要把面試當(dāng)成學(xué)校的考試。這樣的場(chǎng)景很常見:面試者走進(jìn)面試的房間;坐下;被問(wèn)到任何一個(gè)問(wèn)題,就用一兩句話盡量精確的回答;拿到一個(gè)實(shí)際的問(wèn)題就盡快寫出程序,交給面試官“評(píng)審”…… 整個(gè)過(guò)程跟考試一樣,極少的互動(dòng)。面試結(jié)果非常隨機(jī):如果你對(duì)問(wèn)題的理解正好是面試官想問(wèn)的,并且如果你的回答正好是他想要的,并且如果他正好能看懂你的程序,那你就被錄取了;以上幾個(gè)“如果”的任何一個(gè)出現(xiàn)任何的偏差,你的面試就失敗了。
上面的過(guò)程是有不少可以改進(jìn)的地方的:
1、保持自信:走進(jìn)面試房間之前,檢查一下自己的手心是不是濕的(緊張的時(shí)候手心容易出汗),如果是,擦干了再走進(jìn)去,握手的時(shí)候就不會(huì)讓面試官覺得你非常緊張。 深吸一口氣,默默的告訴自己沒問(wèn)題(這樣的自我暗示還是挺有用的)。走進(jìn)房間,主動(dòng)給面試官打個(gè)招呼,給一個(gè)有力的握手,留下一個(gè)自信的第一印象;
2、保證交流表達(dá)的順暢:不少的朋友覺得自己的英文說(shuō)得不準(zhǔn)確,怕說(shuō)錯(cuò),所以很小聲;同時(shí)緊張起來(lái)往往越說(shuō)越快。對(duì)方聽起來(lái)聲音很小、口音不一樣、加上語(yǔ)速太快,就很難聽明白。所以,說(shuō)話的時(shí)候聲音一定要足夠大,讓對(duì)方能聽得很清楚(包括的你念錯(cuò)的詞也要能聽清楚)。同時(shí),你可以主動(dòng)放慢自己的語(yǔ)速,并且要求對(duì)方適當(dāng)放慢他們的語(yǔ)速,不要害羞擔(dān)心別人覺得你的英語(yǔ)不夠好。在國(guó)際范圍招聘工程師的公司,東歐和亞洲的非英語(yǔ)工程師都很多,里面的員工是能夠理解并且愿意減慢語(yǔ)速的。如果語(yǔ)言交流還有障礙,可以用白板(或者黑板)寫下關(guān)鍵的問(wèn)題和術(shù)語(yǔ);
3、確認(rèn)雙方對(duì)問(wèn)題的理解一致:硅谷的公司面試往往是使用工作里面碰到的實(shí)際問(wèn)題,做一定的簡(jiǎn)化,改成可以在30分鐘之內(nèi)解決的問(wèn)題。問(wèn)題往往不是教科書上看過(guò)的;或者,更危險(xiǎn)的情況是問(wèn)題看起來(lái)跟教科書上看過(guò)的類似,但實(shí)際上有本質(zhì)不同。如果你沒有跟面試的同事確認(rèn)你們倆對(duì)問(wèn)題的理解是一樣的,那很容易發(fā)生的情況是你按照自己的理解花30分鐘寫出程序,然后面試官說(shuō)“這不是我要的答案啊”。 比較穩(wěn)妥的方法是你主動(dòng)針對(duì)問(wèn)題提出一些討論,比如用幾個(gè)簡(jiǎn)單而有代表性例子把問(wèn)題的輸入和期待輸出都描述清楚,雙方都同意這一組輸入輸出,然后再動(dòng)手解決;這也自動(dòng)的給你一組測(cè)試?yán)恿耍?/p>
4、確認(rèn)對(duì)方理解你的解決方案:我見過(guò)不少的例子是面試者用很復(fù)雜的算法(往往需要一片論文來(lái)證明正確性)來(lái)得到一定的算法復(fù)雜度優(yōu)化。大部分的工程師并沒有那么專注于學(xué)術(shù),面試官很可能看不明白。而面試者本人也很難在10分鐘內(nèi)把一片論文的正確性證明說(shuō)清楚。這樣的結(jié)果是別人不可能很快的同意你的解決方案(在實(shí)際工作里面,就是你的程序很難通過(guò)Code Review),而在45分鐘的面試?yán)锩?,面試官就不能贊成錄取你。我給面試者的建議是:如果一個(gè)算法不能在5分鐘之內(nèi)用英文解釋清楚,就不要在45分鐘的面試?yán)锩嬗眠@個(gè)算法。
5、最后,最重要的“tip”是把面試官當(dāng)成你的同事,而不是監(jiān)考老師。整個(gè)面試的過(guò)程,技術(shù)題目解答(程序)的優(yōu)劣大概只占一半的權(quán)重,同樣重要的是你能否從頭到尾解決一個(gè)實(shí)際問(wèn)題。這是一個(gè)過(guò)程:理解問(wèn)題的本質(zhì)、約束條件、時(shí)間和空間的取舍、你們deadline(30~45分鐘)和工作量的取舍(復(fù)雜的好算法還是簡(jiǎn)單的“能用的”算法)、 最后你的程序?qū)懞昧诉€要能讓你的同事看懂并且同意你的解決方案。
我看到過(guò)的最優(yōu)秀的面試者往往把自己沉浸于跟面試官共同工作的狀態(tài),主動(dòng)分析問(wèn)題,甚至對(duì)問(wèn)題提出異議,一起討論,就解決方案達(dá)成一致,然后挽起袖子寫出一個(gè)漂亮的程序,再主動(dòng)根據(jù)討論的例子對(duì)程序進(jìn)行測(cè)試,最后提出自己對(duì)自己的解決方案的批評(píng)和下一步可改進(jìn)的地方。 這樣走下來(lái),即便寫出來(lái)的程序不是最優(yōu)的,你在整個(gè)過(guò)程里面表現(xiàn)出來(lái)的經(jīng)驗(yàn)和技術(shù)能力都會(huì)讓人刮目相看。