大佬精心總結(jié)的阿里、騰訊、宇宙條大廠Offer面經(jīng)和硬核面試攻略
背景
新鮮出爐的校招系列第三篇,前兩篇分別是:
-
非科班學(xué)弟如何轉(zhuǎn)行斬獲 ATM 大廠的 Offer ?
-
羨慕,又一清華學(xué)弟斬獲 6 個大廠 SSP Offer | 面經(jīng)分享
本篇是石頭哥又一厲害學(xué)弟 ——見習(xí)格子衫?的佳作,他從 秋招歷程、校招結(jié)構(gòu)化面試、 offer 選擇 等三個方面進行了總結(jié)和經(jīng)驗分享。
還總結(jié)面試過程中的各種套路,讓你從自我介紹就給面試官下套。其實不只是在校招面試中,社招其實也一樣,其中 “給面試官下套” 是個不錯的方法,值得借鑒和學(xué)習(xí)。(詳見文中第二部分),另外,文末贈送優(yōu)質(zhì)數(shù)據(jù)結(jié)構(gòu)算法學(xué)習(xí)材料,有需要的同學(xué)請自取。
下面開始?見習(xí)格子衫 學(xué)弟的正文吧:
11 月底,在經(jīng)歷了充分的思想斗爭后,我終于下定決心寄出了三方,歷時三個多月的秋招也終于塵埃落定。過去的三個多月里,面試時間可能只有一個月左右,剩下的兩個多月的時間都在等待結(jié)果和糾結(jié),因此通過本文總結(jié)這段時間我的秋招歷程和感悟。
本文大綱如下圖所示:
一、秋招歷程
本人本科畢業(yè)于 985 高校,碩士就讀于國內(nèi) Top2,本碩專業(yè)都是軟件工程。在本科期間有過華為和騰訊兩段實習(xí)經(jīng)歷,在研究生期間,我發(fā)現(xiàn)自己對科研的興趣確實有限,因此平時較多參與實驗室科研項目的落地應(yīng)用。
今年由于疫情影響,2020 年上半年大部分時間我都在遠(yuǎn)程辦公,導(dǎo)師分配的任務(wù)也稍有減輕,因此悄悄在字節(jié)和阿里實習(xí)了半年。
就業(yè)方向
在秋招開始之前,我考慮的方向主要包括:
-
(1) 讀博:導(dǎo)師在博士生考試前和我長談建議我讀博,待遇上也給出了比較好的條件。如果我確實有科研天賦并且熱愛科研,那么讀博真的是一個非常好的選擇,可惜以上兩個前提我都不具備;
-
(2) 選調(diào):由于自己在本碩期間都有非常多的學(xué)生工作經(jīng)歷,目前也擔(dān)任學(xué)院學(xué)生工作的重要職務(wù),因此很長一段時間內(nèi)都考慮直接參加中央或者省委選調(diào)工作,但是最終因為一些個人原因還是選擇放棄;
-
(3) 技術(shù):選擇大多數(shù)人選擇的方向,秋招最終還是主要聚焦于技術(shù)開發(fā)類的崗位,本文也主要介紹這方面的基本情況。
面試情況
和一些大牛相比,我的秋招面試經(jīng)歷并不算多,一共只投遞了十幾家公司,最終拿到了國網(wǎng)南瑞研究院、交通銀行總行、阿里、騰訊、字節(jié)、華為、猿輔導(dǎo)、完美世界的 offer,具體的情況可以看下表:
阿里
- 流程:實習(xí)(筆試+5 面)+轉(zhuǎn)正答辯
- 結(jié)果:Offer
阿里的面試總體來講是比較標(biāo)準(zhǔn)的結(jié)構(gòu)化面試,但是面試流程實在太長了,從投遞簡歷到完成面試,大約歷時 40-50 天。
而實習(xí)轉(zhuǎn)正后的 offer 發(fā)放等了大約 20 天,薪資溝通等了 50-60 天,貫穿秋招的頭尾,非??简炐膽B(tài)。
騰訊
- 流程:筆試+3 面
- 結(jié)果:Offer
相比于頭部的幾家互聯(lián)網(wǎng)公司面試,我個人感覺騰訊的面試反而是比較“水”的。兩次專業(yè)面試都是電話面試,且以項目交流為主。
騰訊的內(nèi)推和自主投遞沒有流程上的區(qū)別,只是內(nèi)推能在一開始鎖定心儀的部門。我一開始不了解情況自主投遞簡歷,導(dǎo)致后續(xù)無法內(nèi)推,簡歷只能由部門隨機鎖定。撈我的部門是騰訊某著名游戲工作室,最終順利拿到 offer。
字節(jié)
- 流程:實習(xí)(3 面)+ 綠色通道 1 面
- 結(jié)果:Offer
字節(jié)的整體面試流程非常緊湊,實習(xí)簡歷投遞后第二天就開始溝通面試,一個下午直接完成 3 面,再隔一天就溝通 offer,還允許遠(yuǎn)程實習(xí),因此計劃 3~6 月在字節(jié)順帶實習(xí) 3 個月。
由于當(dāng)時不是暑假,實驗室壓力、學(xué)生工作壓力、實習(xí)工作壓力都聚集在一起,讓我度過了極其痛苦的三個月,幾乎每天都沒有休息。
6 月份我提出離職放棄轉(zhuǎn)正答辯,在之后的校招過程中只參加一次專業(yè)面試就直接獲得校招 offer。
華為
- 流程:筆試+3 面
- 結(jié)果:Offer
華為的面試流程感受還是非常友好的,會有 HR 單獨聯(lián)系,及時溝通面試進度和狀態(tài)。
另外令我驚訝的是多次主動溝通感興趣的工作方向,并針對個人做出非常詳細(xì)的職業(yè)規(guī)劃,有一段時間幾乎是每天打一次電話。
最后的整體評級和薪資待遇也非常有誠意。華為的二面很有可能是壓力面,只要保持心態(tài)就能順利過關(guān)。
國網(wǎng)南瑞
- 流程:1 面
- 結(jié)果:Offer
因為來學(xué)校進行宣講,所以現(xiàn)場投遞了簡歷,面試 20 多分鐘就直接通過了。南瑞是國家電網(wǎng)子公司,網(wǎng)絡(luò)風(fēng)評不太好,不過通過特批給了一個超出預(yù)期相對有誠意的待遇,不過相比互聯(lián)網(wǎng)還是有較大差距。
交行總行
- 流程:免筆試免面試
- 結(jié)果:Offer
學(xué)校有人才推薦計劃,填了一些表格交上去,隨后安排了一次不到 10 分鐘的面試,通知免筆試免面試直接參與體檢環(huán)節(jié),隨后直接發(fā) offer,薪資待遇都是統(tǒng)一的標(biāo)準(zhǔn)。
猿輔導(dǎo)
- 流程:筆試+3 面
- 結(jié)果:Offer
猿輔導(dǎo)號稱是 WLB 的典范,一直宣稱“年薪至少 40 萬,7 點下班”,面試號稱“具有挑戰(zhàn)性”,但實際面試流程一周一面,且面試題目難度也很一般,無法深挖項目,只會簡單的基礎(chǔ)題問答和做題,每次面試兩道題目左右,基本都是 leetcode 原題。
完美世界
- 流程:3 面
- 結(jié)果:Offer
完美世界 K-lab 計劃號稱 48 小時極速發(fā) offer,由于是校招早期,因此就參與面試練習(xí)練習(xí)。
由于還是北京疫情期間無法回校,所以安排遠(yuǎn)程面試超出了“48 小時”,但整體流程還是比較速度,面試結(jié)束后也很快收到意向書。
網(wǎng)易
- 流程:筆試+1 面
- 結(jié)果:掛
我投遞的是網(wǎng)易有道的 Java 開發(fā)崗位,面試安排在出發(fā)回京返校前 1 個小時,1 面全程深挖各大技術(shù)棧的底層原理,面試官非常和藹可親,面試體驗極佳,可惜我水平不高,一問三不知,過了兩周流程就變灰了。
快手
- 流程:1 面
- 結(jié)果:掛
按照大多數(shù)人的經(jīng)歷,快手的面試基本也應(yīng)該是一次性面完,我面試的是基礎(chǔ)平臺,在做題的時候出現(xiàn)了比較大的失誤,偏離了題目重點,把問題復(fù)雜化,所以一面結(jié)束后面試官直接就說結(jié)束面試,“以后等消息”。
商湯
- 流程:筆試+3 面
- 結(jié)果:放棄
商湯的面試流程中規(guī)中矩,有 HR 專人對接,但是每次面試都要相隔一到兩周之后才有消息,流程也拖得很長。
有趣的是其中一次面試過程中面試官問我是否認(rèn)識本科的一位同學(xué),可能是也投遞了同一部門。最終三面時由于已有更好的 offer,所以就直接放棄面試了。
小結(jié)
相比于身邊的一些同學(xué),我沒有選擇海投,而是在不同領(lǐng)域選擇一些有特點的公司有針對性的投遞簡歷,努力提高簡歷投遞的“命中率”。
秋招是一個長期的過程,在獲得同領(lǐng)域一些比較滿意的 offer 后,我就沒有繼續(xù)面試同領(lǐng)域的沒有特殊優(yōu)勢的其他公司。
這樣做一方面減少了無效的面試次數(shù),有更多時間進行有針對性的準(zhǔn)備,也能兼顧實驗室導(dǎo)師的工作;另一方面在最后選擇的過程中也能突出每家公司的優(yōu)勢特色,選擇時也更有區(qū)分度。
二、校招結(jié)構(gòu)化面試
綜合我的實習(xí)和校招面試經(jīng)歷,我認(rèn)為準(zhǔn)備面試應(yīng)當(dāng)包括五個方面,即自我介紹、基礎(chǔ)知識、項目經(jīng)歷、原理解析和手寫算法。
1. 自我介紹
自我介紹是幾乎所有面試的第一步驟,自我介紹配合簡歷會給面試官建立第一印象。我們知道在平時生活中,如果你喜歡一個人,那么這個人做的一切都會是美好的,如果你討厭一個人,那么不管他做什么你都會看不順眼。
面試中也是同理,一個好的初始印象可能會淡化之后面試中自己的失誤,而把重點聚焦于自己的長處上。
在我看來,一次自我介紹至少應(yīng)該包括:
(1) 基本信息,畢業(yè)院校;
(2) 實習(xí)、項目、競賽經(jīng)歷和成果;
(3) 自己擅長的技術(shù)棧;
一般在自我介紹時,面試官很可能在查看簡歷,這時候需要對面試官進行后續(xù)面試問題的引導(dǎo)。
例如如果自己對某些課程掌握非常深入,可以在教育經(jīng)歷中簡要談?wù)勛约旱恼n程情況,如果對自己的一個項目準(zhǔn)備非常充分,可以加大自我介紹時該項目的比重,但切忌一下子說完讓面試官無問題可問,而是有意識的留一些常見問題的缺口,例如分布式、效率優(yōu)化等關(guān)鍵詞,并針對這些關(guān)鍵詞著重準(zhǔn)備。
此外,注意避免一些常見的簡歷介紹誤區(qū),例如“精通”這類給自己挖坑的詞匯。
2. 基礎(chǔ)知識
對于一些企業(yè)的技術(shù)初面,面試官可能不會和你討論項目的技術(shù)細(xì)節(jié),而是已經(jīng)準(zhǔn)備好了一系列的面試題,此時面試就變成面試官讀題,自己答題的環(huán)節(jié)。這類基礎(chǔ)知識問答包括計算機網(wǎng)絡(luò)、操作系統(tǒng)、計算機組成原理、語言特性、數(shù)據(jù)庫原理等方面的內(nèi)容。例如:
-
(網(wǎng)絡(luò))輸入域名后的流程是什么?七/四層模型是怎樣的?TCP 的擁塞控制方法是什么?
-
(操作系統(tǒng))進程和線程的區(qū)別是什么?死鎖的如何產(chǎn)生、避免?分段、分頁與虛擬內(nèi)存的系列問題、CPU 調(diào)度的系列問題等;
-
(計算機組成原理)指令執(zhí)行的基本過程是什么?
-
(數(shù)據(jù)庫原理)存儲引擎的區(qū)別是什么?索引底層實現(xiàn)的原理是什么?
-
(語言特性)Java 垃圾回收機制是怎樣的?Java 虛擬機包括哪些部分?Js 閉包的原理是什么?go routine 的調(diào)度是如何進行的?
對于這些問題,最直接的辦法就是直接看已有的面試題整理,在一些博客或是??驼搲嫌写罅康目偨Y(jié)材料,對于有一定基礎(chǔ)的同學(xué)直接看材料就能基本回憶起之前所學(xué)的課程。
近兩年由于大家越來越善于背題,出題的難度也在逐漸增加,偶爾有一些確實不會的題目直接承認(rèn)即可,也不用不懂裝懂強行回答,反而可能引起面試官的反感。
3. 項目經(jīng)歷
投遞技術(shù)開發(fā)類崗位的同學(xué)基本都需要準(zhǔn)備一些拿得出手的項目。項目經(jīng)歷是最無法臨時準(zhǔn)備的部分,在一些企業(yè)中項目深挖討論反而會占面試的大部分時間。
在我看來,準(zhǔn)備描述自己的項目經(jīng)歷可以包括以下幾點:
- (1) 描述清楚項目的背景和需要解決的問題;
- (2) 用了什么樣的技術(shù)方法;
- (3) 項目取得了怎樣的成果;
- (4) 自己在項目中是怎樣的角色,負(fù)責(zé)哪些工作;
在我實習(xí)和秋招面試的過程中,盡管簡歷上列出了最具代表性的三個項目,但是每次詳細(xì)介紹的項目實際只有一到兩個。
對于如何描述自己的項目經(jīng)歷,完全可以像自我介紹一樣準(zhǔn)備好時間稍長一些的介紹模版,并至少準(zhǔn)備好回答如下問題:
在這個項目中,你遇到的難點是什么?你是如何解決的?
項目介紹本身并不需要回答這個問題,而是面試官基本都會問這個問題。
此外,通過多次面試,我發(fā)現(xiàn)每個項目介紹后面試官所問的問題都是有限的幾個,因此可以通過多次面試提前準(zhǔn)備好更多的項目問題回答,在交流過程中展現(xiàn)出自己從容、清晰的一面。
4. 原理解析
在我看來,這是整個面試過程中非常容易加分的部分。我們可以根據(jù)自己已有的項目、自我介紹中頻繁出現(xiàn)的關(guān)鍵詞,用心準(zhǔn)備兩到三個可以深挖的點。
這里的原理解析不是僅僅是自己“看過別人寫的解析文檔”,而是自己深入理解,并能“有條理地講述給別人聽”。
可以選擇的方向例如:Tomcat、Spring、Redis、Kafka 的架構(gòu)和源碼實現(xiàn)、數(shù)據(jù)庫引擎的實現(xiàn)、操作系統(tǒng)內(nèi)核的實現(xiàn)、分布式一致性算法的源碼實現(xiàn)、以及其他在自己項目中出現(xiàn)的問題等。
選擇深入準(zhǔn)備的方向并不是隨機的,而是確實在自己的項目中發(fā)揮了重要用途,并解決實際問題的關(guān)鍵難點。如果說基礎(chǔ)知識重在廣度和準(zhǔn)確性,那么原理解析就要重在深度和思考性,描述自己的理解和思考,并能經(jīng)得起面試官“步步緊逼”的詢問。
準(zhǔn)備好可以深入探討的點后,就可以在自我介紹、項目介紹過程中有意識的挖坑,頻繁提起關(guān)鍵詞,并留下含糊的描述性語句吸引面試官提問。(石頭注:哈哈,都是套路啊)
而在交流的過程中,也無需完整背誦千字大論文,而是由上而下,從整體到局部逐步解釋。如果面試官強行討論自己不熟悉的領(lǐng)域,直接簡短說明不太了解即可,長時間支支吾吾無法清晰表達(dá)反而會導(dǎo)致減分。
5. 手寫算法
在秋招開始前,我最擔(dān)心的就是手寫代碼這一環(huán)節(jié),對比身邊一些將 leetcode 題庫刷完的同學(xué),我刷過的題目數(shù)量可能只有零頭,不過在手寫代碼上也沒有出過嚴(yán)重的問題。
在我看來,平時沒有刷題習(xí)慣的同學(xué)也無需對這個環(huán)節(jié)太過擔(dān)心,只要有針對性進行準(zhǔn)備,基本都能順利完成。
在臨時突擊刷題方案中,“數(shù)量”并不是重要因素,“重復(fù)”才是重點,我比較推薦的一個刷題方案是:
-
(1) 專題練習(xí)階段:按 leetcode 標(biāo)簽專題刷題,如字符串、DFS、動態(tài)規(guī)劃、樹、雙指針、排序等,選擇出現(xiàn)頻率較高的簡單和中等難度題目。對于常見的標(biāo)簽,做到能理解其常見解題思路即可;
-
(2) 精選題庫階段:可以選擇 leetcode 熱門 100 題,或者劍指 offer 練習(xí)題刷題,此時需要注意重復(fù)刷題,例如完整做完劍指 offer 練習(xí)題后再刷一遍,爭取看到題目就能想到思路,獨立快速完成題目;
在秋招準(zhǔn)備階段,我個人一共刷了 150 題左右,在面試的手寫算法環(huán)節(jié)基本都順利完成。
此外,在手寫算法的過程中一定要注意代碼規(guī)范,注意異常輸入的處理和代碼整潔性,另外:
-
如果暫時沒有思路,可以試圖從面試官那里獲取提示,部分面試官甚至可以接受換題的要求。
-
如果有一些思路,可以嘗試積極和面試官溝通獲取一些提示。
-
如果確信自己無法解決問題,那么要求提示或者換其他題目總比留白要好。
石頭補充:在本人多次文章中也強調(diào)了數(shù)據(jù)結(jié)構(gòu)和算法的重要性,社招如此,更何況校招。?可以參考下之前的這篇文章 ——?從一道面試題談?wù)勔痪€大廠碼農(nóng)應(yīng)該具備的基本能力
另外,補充一份我之前看到過的一份不錯的 leetcode 算法指南,公眾號后臺回復(fù) leetcode01 即可獲取。
三、 offer 選擇
關(guān)于如何選擇 offer,可能見仁見智,基本都會從薪資待遇、平臺發(fā)展、城市選擇、親友關(guān)系、工作壓力等很多方面打分權(quán)衡,但落實到實際中,我自己也根本無法確認(rèn)每個部分的比重,有時候可能真的只有“follow your heart”。
對于我自己來講,最終糾結(jié)的主要是阿里、騰訊、華為三家公司。具體而言:
-
從薪資待遇上來講,三家公司基本都給到了 SSP,總包來看騰訊>華為>阿里;
-
從地域來看,由于自己是 xx 人,選擇的就業(yè)地點希望在江浙滬一帶,三家公司的工作地點也都滿足要求;
-
從打聽的工作時間來看,基本是騰訊>華為>阿里(僅是特定部門的工作時間,而非公司整體的工作時間);
-
從部門業(yè)務(wù)來看,三家公司的業(yè)務(wù)都算比較核心且都能接受;
-
從技術(shù)的契合程度來看,阿里>華為>騰訊,騰訊游戲需要自己完全轉(zhuǎn)換技術(shù)棧,且發(fā)展方向稍有受限。
此外,我也綜合考慮了工作地所在城市的生活成本、親友的期望等問題,把最終的候選公司確定為阿里、騰訊兩家,盡管每家公司都有其優(yōu)勢和劣勢,但至少我都能接受其中的任意一種選擇。
在漫長的糾結(jié)、溝通之后,我最后選取了最簡單的方式:拋硬幣。不管是開心接收拋硬幣的結(jié)果,還是希望趕緊撿起來再拋一次,我都會知道自己內(nèi)心真實的選擇。
免責(zé)聲明:本文內(nèi)容由21ic獲得授權(quán)后發(fā)布,版權(quán)歸原作者所有,本平臺僅提供信息存儲服務(wù)。文章僅代表作者個人觀點,不代表本平臺立場,如有問題,請聯(lián)系我們,謝謝!