very big 廠的一次面經(jīng)
大家好,我是沉默王二。
今天給大家分享一個(gè)大佬的面經(jīng),也許會(huì)對(duì)一些讀者在接下來的面試中起到一定的幫助,畢竟年后換工作的人還真的不會(huì)少。大佬的名字叫賴智華,網(wǎng)名小賴子(我稱呼他小賴哥),在英國生活。他當(dāng)年的高考成績(jī)雖然過了二本線,但最后錄取的學(xué)校是一所大專,一怒之下去了北京,兩年后破釜沉舟地去了英國。
因?yàn)樗麑W(xué)的是計(jì)算機(jī)專業(yè),學(xué)歷上的門檻相對(duì)較低,經(jīng)過他自己的努力,以及導(dǎo)師的竭力幫助,最后拿到了博士學(xué)位,并成功進(jìn)入亞馬遜工作——我在 B 站上看了他教兩個(gè)孩子學(xué)編程的視頻,還特意留言加了微信,感覺他現(xiàn)在的生活真的是很舒服了,人生算是逆襲成功了吧。
我的經(jīng)歷和他相似,雖然我沒有讀博,也不在大廠工作,但都算是通過自己的努力找到了人生的方向,走上了一條改變命運(yùn)的道路,我想,小賴哥應(yīng)該和我一樣,心里對(duì)計(jì)算機(jī)專業(yè)應(yīng)該懷揣著一份感恩的心。
小賴哥每年都會(huì)去面試,并不是說一定要換工作,而是在人才市場(chǎng)中保持競(jìng)爭(zhēng)力,查看自身的不足,并且還可以通過面試來檢測(cè)一下刷題的成果,可謂一舉多得。
Google 是很多軟件工程師夢(mèng)寐以求的大廠,very very big,不僅薪資水平高,技術(shù)給力,福利待遇也好,有免費(fèi)的員工餐廳,有各種休閑娛樂的場(chǎng)所。小賴哥這次面的正是 Google。
不過,據(jù)統(tǒng)計(jì),Google 面試的成功率不到 0.2%,也就是 1000 人中不到 2 人,這還不包括那些投了簡(jiǎn)歷卻連面試機(jī)會(huì)都撈不到的,難度比上哈佛大學(xué)都大。
國外的大廠,比如說 Facebook、Amazon,包括 Google,直接投簡(jiǎn)歷很難過,最好是通過在職員工的內(nèi)推。這也是沒辦法的事兒,這些大廠每天收到的簡(jiǎn)歷估計(jì)成千上萬,想要直接從簡(jiǎn)歷中篩選出要發(fā)出面試邀請(qǐng)的人確實(shí)比較難。
9 年前,小賴哥離開初創(chuàng)公司,開始瘋狂地向大廠投遞簡(jiǎn)歷,基本上都石沉大海。后來,通過獵頭幸運(yùn)地拿到了美國通用電氣(以下簡(jiǎn)稱 GE)的工程師 offer,讓他備受鼓舞。
有了 GE 的大廠背景后,在面試的時(shí)候就不需要花時(shí)間和面試官介紹公司的情況了。前年,小賴哥以此為跳板,順利拿到了 Facebook 和 Amazon 的面試邀約,最后成功加入 Amazon 的 AWS(亞馬遜公司創(chuàng)建的云計(jì)算平臺(tái))。去年,有了 Amazon 的硬實(shí)力背景,除了投遞給 Apple 的簡(jiǎn)歷被高冷的拒絕外,其余像微軟、Facebook、Twitter、CloudFlare(一家總部位于舊金山的美國跨國科技公司,向客戶提供基于反向代理的內(nèi)容分發(fā)網(wǎng)絡(luò),以及分布式域名解析服務(wù)等業(yè)務(wù))等大廠的面試邀約都順利拿下。
Google 的小賴哥主動(dòng)投遞了兩次,都沒有回音,幸好他的一個(gè)朋友在 LinkedIn 上收到了邀請(qǐng),順帶把他也推薦給了獵頭,就有了 Google 的這次經(jīng)歷。
第 0 面是和 Google 的 TR(Technical Recruiter,人力資源部面向信息技術(shù)的專員)面的,職位是 SRE(Site Reliable Engineer,網(wǎng)站可靠性工程師,有點(diǎn)偏運(yùn)維的軟件工程師,需要考核算法、編程和系統(tǒng)設(shè)計(jì)方面的知識(shí))。
這一輪是遠(yuǎn)程視頻面試,可以選擇走傳統(tǒng)的數(shù)據(jù)結(jié)構(gòu)與算法和網(wǎng)絡(luò)運(yùn)維。小賴哥選擇的是前者,基本上都是多選題,偶爾會(huì)有一兩道選擇題,比如“C++ 的 map 如果 key 不存在時(shí)訪問 map[key] 會(huì)發(fā)生什么?”答案是會(huì)按照默認(rèn)的構(gòu)造函數(shù)來創(chuàng)建一個(gè) entry。這一輪只要不是太差,基本上 TR 都會(huì)給一個(gè) 1 面的機(jī)會(huì)。
第 1 面考的是算法題,45 分鐘,一道題,在 Google 開發(fā)的一個(gè)叫 Virtual Interview 的工具上敲代碼(不需要編譯)。題目偏難,需要一些數(shù)學(xué)知識(shí),外加廣度優(yōu)先和深度優(yōu)先算法。小賴哥這一輪表現(xiàn)得還可以,沒有大錯(cuò),沒有卡住,和面試官聊得也挺愉快。
最終面考的是編程 + 系統(tǒng)設(shè)計(jì) + Leadership(領(lǐng)導(dǎo)力)。
編程題相對(duì)較難,題目本身可以做很多延伸來討論,沒有碰到原題(哭)。
第一輪:給一個(gè)單調(diào)函數(shù)(y=f(x))的值,求 x,二分算法。
第二輪:求地球上陸地的最大面積,深度優(yōu)先算法,需要先進(jìn)行一次廣度優(yōu)先在外圍水域進(jìn)行預(yù)處理。
第三輪:CPU 調(diào)度算法。
系統(tǒng)設(shè)計(jì)考了一個(gè)類似 Dropbox(多寶箱,提供線上存儲(chǔ)服務(wù),通過云計(jì)算實(shí)現(xiàn)互聯(lián)網(wǎng)文件同步,用戶可以存儲(chǔ)并共享文件和文件夾)的文件分享的題目,Google 要求的比較簡(jiǎn)單,只分享不涉及到用戶上傳和修改。
Leadership 階段的考題是,如果你帶一個(gè)團(tuán)隊(duì),2 周后有個(gè) deadline,但這時(shí)候有一個(gè)工程師生病了,你會(huì)怎么做?這種題沒有標(biāo)準(zhǔn)答案,所以并不好回答。
很遺憾,小賴哥這次面試最終以失敗告終。主要是第二輪算法面試的時(shí)候,時(shí)間復(fù)雜度搞錯(cuò)了,減了不少分。還有就是編碼階段也不是 Bug Free(寫沒毛病的代碼和想很周全的算法)。再還有就是簡(jiǎn)歷沒有好好準(zhǔn)備,AWS 的工作沒有寫出來,估計(jì)吃了不少虧。
小賴哥告訴我,面試大廠的關(guān)鍵所在有三個(gè)。
第一,就是刷題,一定要多刷,把解題背后的套路牢記于心。給大家強(qiáng)烈推薦這份算法小抄,點(diǎn)擊鏈接后就可以獲取離線版。
第二,就是簡(jiǎn)歷,還是要好好準(zhǔn)備。一定要把牛校和牛項(xiàng)目的背景介紹到,畢竟所有的材料都會(huì)被匯總,有時(shí)候可過可不過的時(shí)候,簡(jiǎn)歷的作用就體現(xiàn)出來了。給大家推薦一份簡(jiǎn)歷模板,點(diǎn)擊鏈接就可以獲取。
第三,多結(jié)交朋友。內(nèi)推崗還是香啊,很多時(shí)候,機(jī)會(huì)就是彼此成就的,平常一定要多積累,盡量去幫別人一把,尤其是那些潛力股,還有就是那些大牛,手頭上都有一些資源人脈,當(dāng)關(guān)系好的時(shí)候,他們?cè)诘玫綑C(jī)會(huì)的時(shí)候腦海中就會(huì)第一時(shí)間想到你。
對(duì)了,之前分享過一篇GitHub 上最勵(lì)志的計(jì)算機(jī)自學(xué)教程,教程的作者也是想面試谷歌,結(jié)果失敗了,不過最后和小賴哥一樣,面上了亞馬遜。里面有一份 GitHub 上 星標(biāo)140k+ 的面試攻略,我親自整理的,大家可以去獲取一份。
加油加油!雖然我們不一定要面試 Google,但這份面經(jīng)還是值得學(xué)習(xí)一下的。我們下期見。
