1. 程式人生 > >Java程式設計師如何順利拿下阿里P6的offer?(面試篇)

Java程式設計師如何順利拿下阿里P6的offer?(面試篇)


本屌現今四年開發經驗;前前後後為進阿里面試十次(阿里旗下——螞蟻金服,天貓的offer都被hr因學歷而被拒,最後的菜鳥面幸運的被錄用,拿到P6offer,真正的“十面”阿里!)。

本文前半部分主要分享面試總結,後半部分分享程式設計師我個人架構開發之路的學習經驗。

阿里十面

面試總結

雖然天貓,螞蟻金,菜鳥都歸屬阿里旗下,但每個面試官問的問題都不一樣,相同點主要在流程方面。面試開始會讓自我介紹,主要業務架構和技術架構兩部分。業務架構一般不會深究,但要面試官聽明白,並且一般面試官會順著問是如何根據這些業務去設計技術架構的。

阿里十面

面試總結

技術架構部分,會根據自我介紹中提到的技術點問,是為什麼使用這些技術,解決了哪些問題,碰到哪些困難,是如何思考和解決的,最後再順帶一些技術本身底層的設計方面的問題:

例如:有redis,會問哪些場景用,解決了什麼問題,資料量有多少,用的過程出現過哪些問題,怎麼去定位解決的,還有它的hash原理等。諸如此類的問題。總結了面試官最喜歡問的方面有mq,jvm,多執行緒,鎖機制等。

不管哪個技術點,能答到面試官無法在這個問題上問下去了,或者能答到計算機硬體上就過了。 有不清楚的可以直接回答,有一些不會的不影響整個面試。

面試準備

架構開發技術之路的學習經驗

一、閱讀原始碼

閱讀、分析原始碼是程式設計師最基本的碼程式碼能力也是碼農的根本所在,學習經典原始碼中所用到的經典設計思想及常用設計模式,能夠幫你瞭解大牛是如何寫程式碼的,從而吸收大牛的程式碼功力。在阿里面試中,MyBatis,Spring等框架的底層原理是經常會被問到的。

二、分散式架構

阿里巴巴有很多大團隊,這種大團隊裡有很多小團隊,到小團隊之後,做的業務都不相同,如果想立足成為一線網際網路公司中的萬能選手,最主流的分散式架構中有很多知識都是必須要去了解與學習的。並且在阿里面試過程中,面試官會問到實際應用場景的問題:比如微服務化、使用者量、併發量、業務複雜度以及可擴充套件程度等,這裡不多贅述。本屌提供一個分散式架構的學習思路也是自己目前還在學習中的體系:

三、微服務架構

微服務是現在網際網路架構技術中最火熱的話題之一,也是本屌目前正在學習研究的方向。在阿里面試過程中,面試官很少會問到關於微服務相關的問題。但作為一名開發者,一名有技術夢想的程式設計師微服務架構是現在必須要去了解的主流技術,本屌給自己制定了一個微服務技術的學習計劃:

四、併發程式設計

併發程式設計幾乎是所有網際網路公司面試必問問題,併發程式設計是Java程式設計師最重要的技能之一,也是最難掌握的一種技能。它要求程式設計者對計算機最底層的運作原理有深刻的理解,同時要求程式設計者邏輯清晰、思維縝密,這樣才能寫出高效、安全、可靠的多執行緒併發程式。目前網上沒有系統的全面的併發程式設計學習大綱,我搜集了很多資料總結出來一個最全面的學習大綱:

五、效能優化

效能一直是讓程式設計師比較頭疼的問題。當系統架構變得複雜而龐大之後,效能方面就會下降,特別是阿里巴巴這樣的一線網際網路公司最為注重,因此想進入阿里,效能優化一定是要去深入學習與理解的一環,本屌在效能優化這一塊雖然不能算專家,也可以自信的說是精通了(注意:自己的簡歷上一定不要寫精通xxxx,要不然面試官會懟死你。好在本屌這一塊還算自信)

一名開發人員必須有適合自己的兵器,也就是工欲善其事必先利其器,不管是小白,還是資深開發,都需要先選擇好的工具。下列是我自己常用的開發工具:

Maven的,專案管理

詹金斯,持續整合

聲納,程式碼質量管理

Git的,版本管理

以上這些如何學習,有沒有免費資料?

對Java技術,架構技術感興趣的同學,歡迎加QQ群:68-51-6-7-6-7-2 ,一起學習,相互討論。

群內已經有小夥伴將知識體系整理好(原始碼,筆記,PPT,學習視訊),歡迎加群免費領取。

分享給喜歡Java,喜歡程式設計,有夢想成為架構師的程式設計師們,希望能夠幫助到你們。不是Java程式設計師也沒關係,幫忙轉發給更多朋友!謝謝。

最後,關注下面公眾號獲取本屌面試聖經