二本渣渣5面阿里,從準備簡歷到“直懟”面試官,經歷了什么?

對于很多沒有學歷優勢的人來說,面試大廠是非常困難的,這對我而言,也是一樣,出身于二本,原本以為就三點一線的生活度過一生,直到生活上的變故,才讓我有了新的想法和目標,因此我這個二本渣渣也奮斗了起來,竟拿下了阿里P6崗。今天分享這波面經,主要是希望能夠激勵到同樣被學歷所困擾的技術人,能夠對職業生涯和技術規劃有一個參考價值,感謝!

一、面試阿里P6難在哪?(面試難點)

(1)難在“心態”

首先需要克服的第一關,實際上就是自己的心態。因為我是二本出身,base比較低,所以面試阿里本就是一件沒太大底氣的事情,更何況是高級開發崗,所以心里就更容易沒底。因此,在準備面試之前,調整心態這件事情就做了很久,所以難在“心態”一點也沒錯,心態沒調整好,面試幾乎是沒戲的。

(2)難在“要求”

其次就是要求,所謂的要求實際上就是阿里對崗位的任職要求,也就是作為開發人員,你掌握了多少技術棧?

首先,你簡歷上寫的肯定要會,其次就是你要擁有一些亮點,也就是說對某個技術有深入的了解,這樣才能給面試官耳目一新的感覺。

那么,面試阿里P6崗,需要掌握多少呢?

Java集合:HashMap和ConcurrentHashMap,平時最好有讀一些源碼,最好知道每個參數為什么設置成這么大?有什么好處?

JUC包肯定要學,即使平時的編程根本不用,也必須得會。至少要知道aba,cas,aqs,unsafe,volatile,sync,以及常見的各種lock,死鎖,線程池參數等,也必須要明白自旋,阻塞,死鎖和它如何去定位,oom如何定位問題,cpu過高如何定位等基本的操作,你可以沒有生產調試經驗,但不代表你可以不會top,jps,jstack,jmap這些可能會問的東西。以及可能衍生的jmm模型和mesi協議等。

大廠必問JVM:垃圾回收算法,垃圾收集器、JVM內存模型,每個區域用途,各種oom的種類,jvm調優經驗,類加載過程,雙親委派等。

Spring就得抽空看源碼了,一般會問到bean的生命周期,如何解決循環依賴,實現事務原理,動態代理原理等。

Dubbo也是必須問的,設計框架,負載均衡。

Redis更要多懂一點,單線程模型,aof,rdb,rewrite,主從,cluster,哪些類型?包含一些緩存常見的問題擊穿、穿透、雪崩、數據一致性等。

Mysql,事務,鎖,索引,b+樹,主從這些你必須會

Mq ,我用的rocketmq,你得知道為什么用,重復消費,順序消息,事務消息,高可用,消息丟失,擠壓場景,整個消息發送消費的流程,讀過源碼更佳,更好吹

Netty的話,零拷貝,bio,nio,aio,架構設計怎么樣子的?用過看過更好

算法,建議去刷題,我運氣好,簡單的算法讓我碰到了,一些快排,堆排,二叉樹相關的,鏈表反轉,成環,環節點,跳樓梯等常規的簡單算法建議刷刷,雙指針,dp,遞歸這些還是多找找感覺,大數據內存有限的場景的統計,有時間一些middle可以去試試,手寫紅黑樹你要是可以,那我估計算法你穩了。

網絡,http,tcp,https,udp,7層網絡協議等,最好結合自己理解,背,你都要背下來。

還有就是一些分布式事務實現,架構實現,比如搶紅包,高并發下單等常規的場景設計,你來設計,你怎么去設計?多找一些大牛或者上網自己查,幫你看看有哪些漏洞,有那些解決方案?業界有哪些好的中間件?

技術棧思維圖

二、阿里面試題(共5面)

阿里一面:

自我介紹、自己做的項目和技術領域

說一下sync的底層實現,鎖優化,和lock的對比

講一下JVM參數調優詳細過程

為什么這么設置?好處是什么?描述gc場景,如何去分析gc日志?

redis數據結構,使用場景,微博場景使用redis如何去設計用戶關系?

線程池參數設定,為什么這么設定,作用?7大參數

spring的循環依賴如何解決?為什么要三級緩存?

優先級隊列的底層原理?

阿里二面:

自我介紹一下吧

聊項目

結合你項目問你如何設計,提出漏洞,你怎么解決?如何改進,萬一掛了?加一臺機器有沒有問題?如果我非要不出問題怎么辦?

高并發下單扣庫存場景如何設計

rocketMQ架構設計原理

Dubbo框架實現原理

最近讀了什么書?平時怎么學習?

常用的負載均衡,該怎么用,你能說下嗎?

阿里三面:

這一面主要問項目,給你的壓力感比較強

結合項目問,為什么這么設計?讓你去優化,你怎么優化,引導你用一個合理的更好的方式去優化,數據庫的設計等

在公司做了什么事情,各個系統業務線都是做什么的,你的績效,手寫算法鏈表反轉?

阿里四面:

JVM的主要組成部分及其作用?

JVM運行時數據區包含哪些?

JVM垃圾回收機制,何時觸發MinorGC等操作

JVM的垃圾回收算法:

JVM 調優的工具?

常用的JVM調優參數?

堆棧的區別?

詳細介紹一下 CMS 垃圾回收器?

怎么判斷對象是否可以被回收?

新生代垃圾回收器和老生代垃圾回收器都有哪些?有什么區別?

java類加載過程?

把你知道的中間件都說一下吧(瞬間懵了一下)

HR面:

為什么來阿里?

之前沒考慮過阿里嗎?

畢業這么久了,你覺得自己最大的改變是什么?

用一句話總結一下自己

注:由于文章篇幅有限,面試題的答案的詳細版整理在關注公眾號【不脫發有志青年】


三、拿下阿里P6崗offer前,我做了些什么?

(1)準備簡歷

簡歷是門面,更是敲門磚,能否拿到大廠的面試機會,就要看自己的簡歷如何,拋開學歷意外,大廠最看重簡歷是否有亮點,因此我們對簡歷內容要有準備,對自己的突出點,包括技術、個性上的亮點,要練習表達,避免臨時組織語言。

(2)提升技能

實際上我有個阿里的朋友很早之前就向我透露過,很多人認為大廠看重學歷,但實際情況并不完全是,在阿里只以能力論英雄。所以,在日常生活中,通過不斷地學習,提升自己的能力,努力去拉進自己與目標值的距離,這是很有必要的,也是未來的必然趨勢。

關于提升技能,我的做法:

①閱讀實戰文檔

②讀一些源碼

③讀一些技術筆記


(3)猛刷面試題

對于base不是太好的人來說,刷面試題實際上是最具有“急救”效果的辦法,因此在面試阿里前,我是刷了不少面試題的,目的倒不是希望面試時能被問到原題,而是對大廠面試有一個相應的了解,清楚阿里面試會問一些什么,涉及到哪些技術棧等。

關于刷題,我有話要說:需要的小伙伴關注公眾號【不脫發有志青年】免費貨區

①Java核心面試知識點整理

②算法部分(LeetCode+算法的樂趣)

③BAT大廠面試真題+專題訓練

做個總結

很多學歷不太好的人,可能對自己沒有太大的信心,實際上任何事情都有“奇跡”發生,而這個“奇跡”關鍵還是要靠自己去創造。無論你是小白菜鳥,還是技術大牛,日常都不能夠落下學習這件事情,一旦落后下來,就容易遭到淘汰。

以上我的經歷希望能夠給大家帶來幫助

?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容