本篇是,他從 _秋招歷程、校招結構化面試、 offer 選擇_ 等三個方面進行了總結和經驗分享。程序員
還總結面試過程當中的各類套路,讓你從自我介紹就給面試官下套。其實不僅是在校招面試中,社招其實也同樣,其中 「給面試官下套」 是個不錯的方法,值得借鑑和學習。(詳見文中第二部分),另外,文末贈送優質數據結構算法+大廠面試真題學習材料,有須要的同窗請自取。面試
下面開始正文吧:算法
11 月底,在經歷了充分的思想鬥爭後,我終於下定決心寄出了三方,歷時三個多月的秋招也終於塵埃落定。過去的三個多月裏,面試時間可能只有一個月左右,剩下的兩個多月的時間都在等待結果和糾結,所以經過本文總結這段時間個人秋招歷程和感悟。數據庫
本文大綱以下圖所示:網絡
本人本科畢業於 985 高校,碩士就讀於國內 Top2,本碩專業都是軟件工程。在本科期間有過華爲和騰訊兩段實習經歷,在研究生期間,我發現本身對科研的興趣確實有限,所以平時較多參與實驗室科研項目的落地應用。數據結構
今年因爲疫情影響,2020 年上半年大部分時間我都在遠程辦公,導師分配的任務也稍有減輕,所以悄悄在字節和阿里實習了半年。閉包
在秋招開始以前,我考慮的方向主要包括:架構
和一些大牛相比,個人秋招面試經歷並不算多,一共只投遞了十幾家公司,最終拿到了國網南瑞研究院、交通銀行總行、阿里、騰訊、字節、華爲、猿輔導、完美世界的 offer,具體的狀況能夠看下錶:數據結構和算法
阿里分佈式
阿里的面試整體來說是比較標準的結構化面試,可是面試流程實在太長了,從投遞簡歷到完成面試,大約歷時 40-50 天。
而實習轉正後的 offer 發放等了大約 20 天,薪資溝通等了 50-60 天,貫穿秋招的頭尾,很是考驗心態。
騰訊
相比於頭部的幾家互聯網公司面試,我我的感受騰訊的面試反而是比較「水」的。兩次專業面試都是電話面試,且以項目交流爲主。
騰訊的內推和自主投遞沒有流程上的區別,只是內推能在一開始鎖定心儀的部門。我一開始不瞭解狀況自主投遞簡歷,致使後續沒法內推,簡歷只能由部門隨機鎖定。撈個人部門是騰訊某著名遊戲工做室,最終順利拿到 offer。
字節
字節的總體面試流程很是緊湊,實習簡歷投遞後次日就開始溝通面試,一個下午直接完成 3 面,再隔一天就溝通 offer,還容許遠程實習,所以計劃 3~6 月在字節順帶實習 3 個月。
因爲當時不是暑假,實驗室壓力、學生工做壓力、實習工做壓力都彙集在一塊兒,讓我度過了極其痛苦的三個月,幾乎天天都沒有休息。
6 月份我提出離職放棄轉正答辯,在以後的校招過程當中只參加一次專業面試就直接得到校招 offer。
華爲
華爲的面試流程感覺仍是很是友好的,會有 HR 單獨聯繫,及時溝通面試進度和狀態。
另外令我驚訝的是屢次主動溝通感興趣的工做方向,並針對我的作出很是詳細的職業規劃,有一段時間幾乎是天天打一次電話。
最後的總體評級和薪資待遇也很是有誠意。華爲的二面頗有多是壓力面,只要保持心態就能順利過關。
國網南瑞
由於來學校進行宣講,因此現場投遞了簡歷,面試 20 多分鐘就直接經過了。南瑞是國家電網子公司,網絡風評不太好,不過經過特批給了一個超出預期相對有誠意的待遇,不過相比互聯網仍是有較大差距。
交行總行
學校有人才推薦計劃,填了一些表格交上去,隨後安排了一次不到 10 分鐘的面試,通知免筆試免面試直接參與體檢環節,隨後直接發 offer,薪資待遇都是統一的標準。
猿輔導
猿輔導號稱是 WLB 的典範,一直宣稱「年薪至少 40 萬,7 點下班」,面試號稱「具備挑戰性」,但實際面試流程一週一面,且面試題目難度也很通常,沒法深挖項目,只會簡單的基礎題問答和作題,每次面試兩道題目左右,基本都是 leetcode 原題。
完美世界
完美世界 K-lab 計劃號稱 48 小時極速發 offer,因爲是校招早期,所以就參與面試練習練習。
因爲仍是北京疫情期間沒法回校,因此安排遠程面試超出了「48 小時」,但總體流程仍是比較速度,面試結束後也很快收到意向書。
網易
我投遞的是網易有道的 Java 開發崗位,面試安排在出發回京返校前 1 個小時,1 面全程深挖各大技術棧的底層原理,面試官很是和善可親,面試體驗極佳,惋惜我水平不高,一問三不知,過了兩週流程就變灰了。
快手
按照大多數人的經歷,快手的面試基本也應該是一次性面完,我面試的是基礎平臺,在作題的時候出現了比較大的失誤,偏離了題目重點,把問題複雜化,因此一面結束後面試官直接就說結束面試,「之後等消息」。
商湯
商湯的面試流程中規中矩,有 HR 專人對接,可是每次面試都要相隔一到兩週以後纔有消息,流程也拖得很長。
有趣的是其中一次面試過程當中面試官問我是否定識本科的一位同窗,多是也投遞了同一部門。最終三面時因爲已有更好的 offer,因此就直接放棄面試了。
相比於身邊的一些同窗,我沒有選擇海投,而是在不一樣領域選擇一些有特色的公司有針對性的投遞簡歷,努力提升簡歷投遞的「命中率」。
秋招是一個長期的過程,在得到同領域一些比較滿意的 offer 後,我就沒有繼續面試同領域的沒有特殊優點的其餘公司。
這樣作一方面減小了無效的面試次數,有更多時間進行有針對性的準備,也能兼顧實驗室導師的工做;另外一方面在最後選擇的過程當中也能突出每家公司的優點特點,選擇時也更有區分度。
綜合個人實習和校招面試經歷,我認爲準備面試應當包括五個方面,即自我介紹、基礎知識、項目經歷、原理解析和手寫算法。
自我介紹是幾乎全部面試的第一步驟,自我介紹配合簡歷會給面試官創建第一印象。咱們知道在平時生活中,若是你喜歡一我的,那麼這我的作的一切都會是美好的,若是你討厭一我的,那麼無論他作什麼你都會看不順眼。
面試中也是同理,一個好的初始印象可能會淡化以後面試中本身的失誤,而把重點聚焦於本身的長處上。
在我看來,一次自我介紹至少應該包括:
(1) 基本信息,畢業院校;
(2) 實習、項目、競賽經歷和成果;
(3) 本身擅長的技術棧;
通常在自我介紹時,面試官極可能在查看簡歷,這時候須要對面試官進行後續面試問題的引導。
例如若是本身對某些課程掌握很是深刻,能夠在教育經歷中簡要談談本身的課程狀況,若是對本身的一個項目準備很是充分,能夠加大自我介紹時該項目的比重,但切忌一會兒說完讓面試官無問題可問,而是有意識的留一些常見問題的缺口,例如分佈式、效率優化等關鍵詞,並針對這些關鍵詞着重準備。
此外,注意避免一些常見的簡歷介紹誤區,例如「精通」這類給本身挖坑的詞彙。
對於一些企業的技術初面,面試官可能不會和你討論項目的技術細節,而是已經準備好了一系列的面試題,此時面試就變成面試官讀題,本身答題的環節。這類基礎知識問答包括計算機網絡、操做系統、計算機組成原理、語言特性、數據庫原理等方面的內容。例如:
對於這些問題,最直接的辦法就是直接看已有的面試題整理,在一些博客或是牛客論壇上有大量的總結材料,對於有必定基礎的同窗直接看材料就能基本回憶起以前所學的課程。
近兩年因爲你們愈來愈善於背題,出題的難度也在逐漸增長,偶爾有一些確實不會的題目直接認可便可,也不用不懂裝懂強行回答,反而可能引發面試官的反感。
投遞技術開發類崗位的同窗基本都須要準備一些拿得出手的項目。項目經歷是最沒法臨時準備的部分,在一些企業中項目深挖討論反而會佔面試的大部分時間。
在我看來,準備描述本身的項目經歷能夠包括如下幾點:
在我實習和秋招面試的過程當中,儘管簡歷上列出了最具表明性的三個項目,可是每次詳細介紹的項目實際只有一到兩個。
對於如何描述本身的項目經歷,徹底能夠像自我介紹同樣準備好時間稍長一些的介紹模版,並至少準備好回答以下問題:
在這個項目中,你遇到的難點是什麼?你是如何解決的?
項目介紹自己並不須要回答這個問題,而是面試官基本都會問這個問題。
此外,經過屢次面試,我發現每一個項目介紹後面試官所問的問題都是有限的幾個,所以能夠經過屢次面試提早準備好更多的項目問題回答,在交流過程當中展示出本身從容、清晰的一面。
在我看來,這是整個面試過程當中很是容易加分的部分。咱們能夠根據本身已有的項目、自我介紹中頻繁出現的關鍵詞,用心準備兩到三個能夠深挖的點。
這裏的原理解析不是僅僅是本身「看過別人寫的解析文檔」,而是本身深刻理解,並能「有條理地講述給別人聽」。
能夠選擇的方向例如:Tomcat、Spring、Redis、Kafka 的架構和源碼實現、數據庫引擎的實現、操做系統內核的實現、分佈式一致性算法的源碼實現、以及其餘在本身項目中出現的問題等。
選擇深刻準備的方向並非隨機的,而是確實在本身的項目中發揮了重要用途,並解決實際問題的關鍵難點。若是說基礎知識重在廣度和準確性,那麼原理解析就要重在深度和思考性,描述本身的理解和思考,並能經得起面試官「步步緊逼」的詢問。
準備好能夠深刻探討的點後,就能夠在自我介紹、項目介紹過程當中有意識的挖坑,頻繁提起關鍵詞,並留下含糊的描述性語句吸引面試官提問。(石頭注:哈哈,都是套路啊)
而在交流的過程當中,也無需完整背誦千字大論文,而是由上而下,從總體到局部逐步解釋。若是面試官強行討論本身不熟悉的領域,直接簡短說明不太瞭解便可,長時間支支吾吾沒法清晰表達反而會致使減分。
在秋招開始前,我最擔憂的就是手寫代碼這一環節,對比身邊一些將 leetcode 題庫刷完的同窗,我刷過的題目數量可能只有零頭,不過在手寫代碼上也沒有出過嚴重的問題。
在我看來,平時沒有刷題習慣的同窗也無需對這個環節太過擔憂,只要有針對性進行準備,基本都能順利完成。
在臨時突擊刷題方案中,「數量」並非重要因素,「重複」纔是重點,我比較推薦的一個刷題方案是:
在秋招準備階段,我我的一共刷了 150 題左右,在面試的手寫算法環節基本都順利完成。
此外,在手寫算法的過程當中必定要注意代碼規範,注意異常輸入的處理和代碼整潔性,另外:
關於如何選擇 offer,可能見仁見智,基本都會從薪資待遇、平臺發展、城市選擇、親友關係、工做壓力等不少方面打分權衡,但落實到實際中,我本身也根本沒法確認每一個部分的比重,有時候可能真的只有「follow your heart」。
對於我本身來說,最終糾結的主要是阿里、騰訊、華爲三家公司。具體而言:
此外,我也綜合考慮了工做地所在城市的生活成本、親友的指望等問題,把最終的候選公司肯定爲阿里、騰訊兩家,儘管每家公司都有其優點和劣勢,但至少我都能接受其中的任意一種選擇。
在漫長的糾結、溝通以後,我最後選取了最簡單的方式:拋硬幣。無論是開心接收拋硬幣的結果,仍是但願趕忙撿起來再拋一次,我都會知道本身心裏真實的選擇。
數據結構和算法是重中之重,這裏我跟你們推薦一本 Leetcode 算法筆記,質量還挺不錯的,推薦給你們參考。獲取方式,點贊此文後添加助手vx:bjmsb10 便可獲取。
最後,求關注,求關注,求關注,但願能和你們積極交流討論,一塊兒學習、共同進步。
若是你以爲這篇內容對你還蠻有幫助,我想邀請你幫我三個小忙:
點贊,轉發,有大家的 『點贊和評論』,纔是我創造的動力。
關注公衆號 『 Java鬥帝 』,不按期分享原創知識。
同時能夠期待後續文章ing🚀