首頁(yè) · 海外生活 · 人在美國(guó) 海外生活
【畢業(yè)季】一個(gè)CS 碩士FB、谷歌、LinkedIn和摩根斯坦利的面試總結(jié)
發(fā)布時(shí)間:2015-03-02 來(lái)源:美國(guó)留學(xué)
 先報(bào)下本人背景,國(guó)內(nèi)中山大學(xué)軟件工程本科 GPA3.2,美國(guó)NYU CS master GPA3.85,大四一年實(shí)驗(yàn)室經(jīng)歷,暑假Amazon SDE Intern。無(wú)ACM和數(shù)學(xué)競(jìng)賽經(jīng)歷。之前發(fā)過(guò)Amazon intern面經(jīng),很遺憾的是沒(méi)拿到return offer。重新申請(qǐng)要等6個(gè)月的凍結(jié)期(這個(gè)相當(dāng)惡心),但是我不可能等那么久了。準(zhǔn)備情況大概是careercup 5th edition 80%的題刷過(guò)一遍,leetcode刷過(guò)95%的題(新題一出就刷,保持狀態(tài)),加上glassdoor的面筋??偣裁媪?0多家公司,挑選了幾家映象比較深刻的寫在這里,一共7個(gè)onsite,兩個(gè)offer,分別是Linkedin和Goldman Sachs。最后從了Linkedin。
On-campus:申請(qǐng)Intern的時(shí)候面過(guò)他家,當(dāng)時(shí)是純behaviorquestion。不過(guò)這次風(fēng)格完全不同了,老美面試官上來(lái)寒暄兩句后,就問(wèn)了幾道Java概念題,比如static,synchronized,interface的定義。然后拿出紙筆讓coding,binarytree的遍歷,還有道應(yīng)用題,大概是給一個(gè)map,和一個(gè)數(shù)字t,找出map里最接近t的value對(duì)應(yīng)的key。題目無(wú)比簡(jiǎn)單,唰唰地寫完,面試官也給予了肯定。但是這一面還是掛了,我覺(jué)得莫名其妙。問(wèn)了問(wèn)同學(xué),他們沒(méi)答對(duì)題的拿到了onsite。事后想想可能是因?yàn)槲液竺鎲?wèn)的問(wèn)題不太妥當(dāng),令面試官難堪了。唉,那時(shí)還是面試經(jīng)驗(yàn)不足啊,果斷轉(zhuǎn)化為經(jīng)驗(yàn)值。
Linkedin官網(wǎng)投的簡(jiǎn)歷,兩個(gè)月了才被鳥(niǎo)。
Phone interview:電面前recruiter會(huì)打電話來(lái)做最基本的phone screen,然后會(huì)發(fā)給你面試官的linkedin鏈接,讓你做好迎接老印的準(zhǔn)備。. from: 1point3acres.com/bbs
1. 電話對(duì)面兩個(gè)面試官,老中+毛子,collabedit上寫題。第一題,驗(yàn)證一個(gè)string是不是valid number,需要考慮正負(fù)和小數(shù),不用考慮指數(shù)。第二題也是被問(wèn)爛的,print a binary tree in levelorder。感覺(jué)發(fā)揮得不好,雖然寫出來(lái)了但是被指出了幾個(gè)bug。當(dāng)時(shí)腦袋犯糊涂了做過(guò)的題竟然都寫得不順。
2. 本來(lái)以為上一面跪了,結(jié)果一天之后HR又約了第二個(gè)電面。老印+毛子。第一題,求pow(n, x),要求O(logn)解法。第二題,maximumsubarray。第三題,實(shí)現(xiàn)singleton并讓其thread-safe,還問(wèn)到了lazyinitialiation的和volatile關(guān)鍵字的意義。這一面相當(dāng)順暢,沒(méi)有任何差錯(cuò)。
Onsite:Mountainview總部,一共五輪,除了第一輪,每輪兩位面試官,時(shí)長(zhǎng)一小時(shí),看來(lái)2v1是他們的特色。雖然每輪有兩位面試官,但是其中一個(gè)是shadow,全程基本不發(fā)言,也就是來(lái)學(xué)習(xí)面試流程的,所以不用慌張。從這些shadow的臉色來(lái)看,他們其實(shí)比你更緊張。當(dāng)我問(wèn)他們問(wèn)題的時(shí)候,他們的回答都是都結(jié)結(jié)巴巴的。當(dāng)然主面試官還是相當(dāng)老練的。因?yàn)楹灹薔DA,而且拿到offer了,為了以防萬(wàn)一,下面的題目故意寫得模糊些。
-
老印,主要問(wèn)簡(jiǎn)歷,每一項(xiàng)都被問(wèn)到,而且非常細(xì)節(jié)。要求畫出實(shí)習(xí)project的架構(gòu)圖。
-
老印+老印,依然是問(wèn)簡(jiǎn)歷,基本同上,并且要求你從algorithm和design的角度說(shuō)出怎么improve你的project。面完以后被其中一個(gè)老印帶去lunch interview
-
老美+老中,兩個(gè)coding題,一題簡(jiǎn)單10分鐘,一題復(fù)雜30-35分鐘,題目就不說(shuō)了,leetcode上有類似的。
-
老美+老中,也是兩個(gè)coding題,難度基本同上。
從電面到onsite,見(jiàn)過(guò)的coding題都是leetcode上的類似題,所以各位應(yīng)該知道我的意思。我比較驚訝的是linkedin竟然這么重視design,甚至重于coding。雖然前兩輪都是問(wèn)簡(jiǎn)歷,但是都討論到了很多design方面的問(wèn)題。所以整個(gè)面試應(yīng)該是三輪design和兩輪coding。Onsite結(jié)束后一星期,recruiter打電話來(lái)follow-up,說(shuō)feedback沒(méi)齊。第二個(gè)星期來(lái)了口頭offer,說(shuō)是還要跟hiring manager電話聊一聊。聊完之后給了正式offer。我被分到的組是Core team里面的presentation team,做profile page的,也就是個(gè)人主頁(yè)。感覺(jué)這個(gè)team相當(dāng)不錯(cuò),離用戶最近,impact大,也符合我的興趣。版上好像有個(gè)帖求證Linkedin的package,這里報(bào)一下fresh master的,以作參考:105k base + 1500RSU/4yr (worth 170k) + 10% target bonus + 10k relocation。除此之外,公司三餐免費(fèi)(不過(guò)很難吃),還有免費(fèi)飲料和零食,報(bào)銷公共交通,入職發(fā)macbook,假期很多。公司里面的文化相對(duì)于大多數(shù)tech公司比較formal,辦公室非常整潔,沒(méi)有那么多geek元素。老印很多,但是我遇到的都很好。
老美+老印,design題,如何設(shè)計(jì)一個(gè)web的多人在線游戲。寫出所需的類和data member,還要畫出系統(tǒng)架構(gòu)圖。
找學(xué)校的professor內(nèi)推的,他是GoogleNYC的一個(gè)engineer,而且我上過(guò)他的課。內(nèi)推的效果真不是蓋的,不到2小時(shí)就被recruiter聯(lián)系上。面的是NYCoffice的一個(gè)組,由于颶風(fēng)Sandy的原因推遲了一周。
Phone interview:一下約了兩輪
-
老美,求一個(gè)數(shù)n的所有prime factor。比如輸入96輸出2 2 2 2 2 3。google doc寫代碼真心不如collabedit好用,本來(lái)15分鐘可以做完的題硬是寫了30多分鐘。
-
老美,先寫大數(shù)加1,然后寫兩個(gè)大數(shù)相加,面試完發(fā)現(xiàn)有個(gè)小bug,但是來(lái)不及改了。
Onsite:電面后等了整整兩個(gè)星期,還以為掛掉的時(shí)候,來(lái)了NYC office的onsite通知??磥?lái)對(duì)google而言,不像網(wǎng)上傳說(shuō)的那么恐怖要bug free,至少電面是這樣。雖然簽了NDA,但是既然掛了就無(wú)視之。
-
老美,第一題,寫一個(gè)PeekIterator,包裝一個(gè)普通的Iterator,要實(shí)現(xiàn)peek()方法,返回當(dāng)前iterator指向的元素,但是不能移動(dòng)它。除此之外也要實(shí)現(xiàn)hasNext()和next()方法。第二題,給一個(gè)BST的Node,有父節(jié)點(diǎn)的指針,求該Node的下一個(gè)Node。這一面感覺(jué)不錯(cuò)。
-
老美,寫一個(gè)EvenIterator(汗,這年頭這么流行考iterator么?),包裝一個(gè)普通的Iterator,只返回evennumber。要求實(shí)現(xiàn)next()和hasNext()方法。這一面感覺(jué)不太好,沒(méi)想到先寫個(gè)簡(jiǎn)單的方法。最后時(shí)間到了還是有bug沒(méi)有修改完。
-
老中,被帶去吃午飯,期間都說(shuō)的中文。然后參觀了下NYC office
-
老黑,求一個(gè)逆波蘭表達(dá)式的運(yùn)算結(jié)果,用stack就可以。follow up是怎么處理invalid input。這一面感覺(jué)也還行。
-
老美,一個(gè)比較復(fù)雜的題,不太方便說(shuō)。大概是有一個(gè)游戲,游戲的每一步都是一個(gè)state,從這個(gè)state可以有很多種走法,從而走到下一個(gè)state,要求輸出游戲結(jié)束時(shí)所有的states。我剛開(kāi)始給了個(gè)暴力遞歸搜索加回溯的算法,然后經(jīng)面試官提示加了剪枝的優(yōu)化。但是即使這樣我也不確定是不是最優(yōu)解。
google的recruiter和interviewer都一再?gòu)?qiáng)調(diào),結(jié)果不是最重要的,重要的是你的想法和交流能力。我覺(jué)得確實(shí)如此,從面試官引導(dǎo)你的方向就能看出他們確實(shí)想知道你的思路。即使你想不出最優(yōu)解,他們也會(huì)給你很多的提示。當(dāng)然了,我覺(jué)得自己面的不好,有一面相當(dāng)糟,不出所料一周之后recruiter打電話來(lái)告知被拒。
Recruiter從Linkedin騷擾。Facebook開(kāi)始大肆擴(kuò)張了,據(jù)說(shuō)他們今年要達(dá)到5000人的規(guī)模(from 3000)。雖然知道自己的水平是被虐的份,但是抱著讓人生完整的精神去嘗試了下。
Phone interview:老印,判斷一個(gè)string是否回文,要求ignore cases, spaces and punctuation,O(1) space。題目雖然簡(jiǎn)單但是edge case有點(diǎn)多,寫出了好多bug。雖然最后寫出了個(gè)正確的版本,但是跟老印交流有問(wèn)題,浪費(fèi)了好多時(shí)間,只做了一道題。2天后被告知掛了。
本文來(lái)源一畝三分地論壇