大廠面經:三非背景、6輪面試,終獲阿里Offer!


這是一個勵志讀者在收獲阿里 Offer 后的復盤,他積極准備了 1 年時間,夢想總算照進現實,希望這份面經總結能給你帶來幫助和啟發。


大家好!本人網名:茶杯,三非背景(非985 / 非211 / 非理工科) ,工作 5 年時間,待了三家公司,去阿里一直是我的夢想。

為了能進阿里,我給自己制定了非常詳細的學習計划:Java Core、JVM、網絡、Spring 源碼、MySQL、Redis、MQ、Netty,整整准備了 1 年時間。

在面了幾家還算知名的大廠后,我總結了一波面試套路,就開始了阿里的面試之旅。 最終 , 歷經 6 輪面試,順利拿到了 阿里的 offe r , 也算是圓夢了。

一 路走來, 要 感謝的人太多。 下面, 我 對整個 面試過程做一次復盤 ,希望給大家一些 啟發。


01 第一輪技術面:阿里P6面試官

1、看你簡歷中提到處理過多次 JVM 故障,可以講講你遇到過哪些 OOM 的案例么?

a、我分別把之前工作中遇到的堆空間、元空間、堆外內存 OOM 場景都講了一遍

b、按照如何分析、如何排查、如何解決、事后如何防范這個思路進行

2、看你簡歷寫做了線程池調優,能講下線程池的原理以及做了哪些優化嗎?

a、業務線程池相互隔離

b、根據CPU核數、線程池任務的 IO 耗時/計算耗時,設置合理的核心線程數,提升性能

c、動態修改線程池參數,方便維護

d、重寫拒絕策略,保證任務不丟

e、聊了一下線程池源碼里的一些細節

3、能講下你對 MySQL MVCC 的理解嗎?

我分別講了一下 RR 和 RC 隔離級別的實現原理有哪些不同

4、MySQL 索引是怎么實現的?

a、分別從性能和實現上講了數組、鏈表、Hash、二叉樹、BTree 為什么不合適

b、詳細講了 B+ Tree 的實現,以及普通索引是如何查找數據的

c、中間提到了節點大小、IO、回表、覆蓋索引等概念

5、講講 Redis 是怎么用的?

a、講了分布式鎖原理

b、講了 Redis String 的底層實現

c、講了 Redis ZSet 的實現,詳細講了跳表結合 Hash 是如何提升效率的

6、RecketMQ 的消息堆積如何解決?

a、Producer 端:上游發消息速度過快,可以減少消息的發送頻率

b、Consumer端:下游消費不過來,可以擴容來提高消費速度

c、Broker 端:內存是否夠大?如果 Page Cache 夠大的話,可以提高 Consumer 拉消息的性能

一面小結:

當我答完第一個 JVM 問題時,面試官就說這輪我過了,說我這塊研究很深入。

所以,我覺得面試技巧很重要。面試前我就考慮到了如何展現自己的優勢,在自我介紹時就會把自己擅長的部分說出來。

另外,一般一面考察的點有:JVM、JDK 並發包/集合類、Redis、MySQL、MQ、RPC。


02 第二輪技術面:阿里P7面試官

阿里二面問的技術問題並不是很多,更多的是問業務場景和解決方案。

后來私底下問一面面試官,他說因為一面已經全方面考察技術了,所以認為我技術方面是 OK 的,就不會作為主要的考察方向。

1、講下項目里的限流策略怎么做的?

a、用 Redis 做的分布式限流

b、滑動窗口/漏斗/令牌桶,三種限流算法對比

c、解釋了下為什么沒有用其他限流組件

2、講下簡歷中的秒殺項目怎么做的?

a、CDN:靜態數據緩存

b、緩存:上層抗住流量

c、限流:防止應用掛掉

d、答題驗證碼:削峰

e、MQ:異步/削峰/解耦

f、風控、接口冪等:防刷

g、分庫分表:減輕 DB 壓力

3、如果 Redis 掛了一台怎么辦?

4、如果 RocketMQ 掛了怎么辦?

5、RocketMQ 重復消費了怎么辦?

6、RocketMQ 為什么會重復消費?講下 RocketMQ 造成重復消費的底層實現原理?

7、MQ 會丟消息嗎?如何保證不丟?

8、問了很多業務方面的細節

9、在阿里伯樂系統,手寫算法題

10、問了下面試官具體的工作內容和團隊氛圍

二面小結:

項目以及業務都會深入考察,這塊一定要好好准備,一面過的人很多,二面掛的人很多。

二面一般都是入職后帶你的師兄,如果你業務不精通技術好也不一定能過,因為終究還是要干活的。


03 第三輪技術面:阿里P8面試官

主管面考察的范圍就更廣了:

1、講下在團隊里的角色

2、講下之前的經歷

3、講下近期做的比較核心的工作(二面項目有關的東西又講了一遍)

4、講下有哪些做得好和做得不好的地方?

5、如果流量放大 10倍,100倍怎么辦?

6、分庫分表怎么做的,講下數據遷移方案

7、講一下你做的 JVM 調優

8、聊一下 Redis 性能問題

9、面試官講了一下團隊的業務情況,以及進去后可能要做的具體工作

三面小結:

還是以項目為主,但問題會更深入。上面大部分問題,我都花了很多心思總結,匯總到了自己的筆記里,而且面試前反復看過很多次,從而保證我在面試過程中能夠講清楚細節。


04 第四輪交叉面:阿里P8面試官

主管級別的交叉面,也是一個 P8 面試官。

我也不知道為什么會有這一輪,問的問題跟 2 面、3 面差不多,這里就不展開了。


05 第五輪技術面:阿里P9面試官

1、介紹工作經歷

2、介紹項目以及項目里的角色

3、講下項目中遇到的困難是如何解決的

4、一道實際需求的設計題:高並發場景,當用戶下單(20元)時,會提示用戶花 10 元買一個會員,同時送 4 張 6 元的優惠券,本次就可以使用。該接口如何實現?需要考慮各方失敗的情況

最后一道設計題,我和面試官討論了將近 30 分鍾,主要考查高並發場景下的設計能力。

面試官會關注:設計方案的合理性以及完整性,如果某個環節出問題了怎么保證高可用?會不會有丟數據的風險?數據一致性怎么保障?如果流量很大性能如何保證?

五面小結:

主要考察設計能力以及對項目的整體把握,不但宏觀層面要做好架構設計,細節上的實現也會死摳到底。

不論是技術的深度和廣度,甚至臨場分析問題、解決問題的能力都有考察,這些都需要平時的技術積累。


06 第六輪HR面

1、介紹履歷背景

2、介紹工作內容以及承擔的角色

3、談談項目里的高並發場景怎么解決的

4、推進項目的過程中遇到了問題怎么辦

5、同事怎么評價你

六面小結:

主要考察的是思考能力和思維方式、溝通、協作、配合團隊、做事結果導向等能力。另外,阿里 HR 也是會問技術問題的。


個人感悟

1、基礎一定要扎實

基礎不牢地動山搖,這一年的准備,基礎知識通過查漏補缺提升了很多。但也發現了諸多不足,未來還需繼續積累。

2、養成良好的習慣,堅持學習

開發這行內卷太嚴重了,年輕的時候一定要養成學習的習慣。如果在小公司做的是沒挑戰的事情,還忙得沒時間學習,建議趁早換一份能帶來成長的工作。

3、給自己定一個目標

做事情一定要定一個目標,只要你信念夠強,它就會一直指引着你前進。

不然經歷過一天疲憊的工作后,下班再繼續學習這件事是堅持不下來的。

4、給自己制定詳細的學習計划

兩個月啃下一個主流技術棧,1 年下來差不多也能啃完 6 塊硬骨頭,這將是你未來面試的兵器庫,十八般武藝不說樣樣精通,隨便挑幾個跟面試官撈一個小時應該不在話下!

5、夢想並非遙不可及

我一直把進阿里當做自己的夢想,這五年來一步一個腳印,中間不曾有過任何一次放棄。

剛畢業那會,被無數家公司拒絕過,但這並沒有勸退我,感謝當時鼓勵我的同學。

工作幾年后,也被資深同事嘲諷我不知天高地厚,但這並沒有勸退我,感謝當時勸我用最高標准要求自己、並相信自己的網友。

在不斷提升自己技術深度的過程中,各種深不可測的源碼、框架讓我抓狂,但這也沒有勸退我,感謝每個指點過我的老師。

最后,感謝一路走來所有幫助過我的朋友們!祝大家都有一個美好的未來!


- End -


作者簡介:985碩士,前亞馬遜工程師,現58轉轉技術總監

歡迎掃描下方的二維碼,關注我的個人公眾號:武哥漫談IT,精彩原創不斷!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM