前言
《十面阿里》 本屌現(xiàn)今四年開(kāi)發(fā)經(jīng)驗(yàn);前前后后為進(jìn)阿里面試十次(阿里旗下——螞蟻金服,天貓的offer都被hr因?qū)W歷而被拒,最后的菜鳥(niǎo)面幸運(yùn)的被錄用,拿到P6offer,真正的“十面”阿里!)。
本文前半部分主要 分享 面試總結(jié) , 后半部分分享程序員我個(gè)人架構(gòu)開(kāi)發(fā)之路的學(xué)習(xí)經(jīng)驗(yàn)。
阿里十面
面試總結(jié)
雖然天貓,螞蟻金,菜鳥(niǎo)都?xì)w屬阿里旗下,但每個(gè)面試官問(wèn)的問(wèn)題都不一樣,相同點(diǎn)主要在流程方面。面試開(kāi)始會(huì)讓自我介紹,主要業(yè)務(wù)架構(gòu)和技術(shù)架構(gòu)兩部分。業(yè)務(wù)架構(gòu)一般不會(huì)深究,但要面試官聽(tīng)明白,并且一般面試官會(huì)順著問(wèn)是如何根據(jù)這些業(yè)務(wù)去設(shè)計(jì)技術(shù)架構(gòu)的。
阿里十面
面試總結(jié)
技術(shù)架構(gòu)部分,會(huì)根據(jù)自我介紹中提到的技術(shù)點(diǎn)問(wèn),是為什么使用這些技術(shù),解決了哪些問(wèn)題,碰到哪些困難,是如何思考和解決的,最后再順帶一些技術(shù)本身底層的設(shè)計(jì)方面的問(wèn)題:
例如:有redis,會(huì)問(wèn)哪些場(chǎng)景用,解決了什么問(wèn)題,數(shù)據(jù)量有多少,用的過(guò)程出現(xiàn)過(guò)哪些問(wèn)題,怎么去定位解決的,還有它的hash原理等。諸如此類的問(wèn)題??偨Y(jié)了面試官最喜歡問(wèn)的方面有mq,jvm,多線程,鎖機(jī)制等。
不管哪個(gè)技術(shù)點(diǎn),能答到面試官無(wú)法在這個(gè)問(wèn)題上問(wèn)下去了,或者能答到計(jì)算機(jī)硬件上就過(guò)了。 有不清楚的可以直接回答,有一些不會(huì)的不影響整個(gè)面試。
面試準(zhǔn)備
架構(gòu)開(kāi)發(fā)技術(shù)之路的學(xué)習(xí)經(jīng)驗(yàn)
一、閱讀源碼
閱讀、分析源碼是程序員最基本的碼代碼能力也是碼農(nóng)的根本所在,學(xué)習(xí)經(jīng)典源碼中所用到的經(jīng)典設(shè)計(jì)思想及常用設(shè)計(jì)模式,能夠幫你了解大牛是如何寫(xiě)代碼的,從而吸收大牛的代碼功力。在阿里面試中,MyBatis,Spring等框架的底層原理是經(jīng)常會(huì)被問(wèn)到的。
二、分布式架構(gòu)
阿里巴巴有很多大團(tuán)隊(duì),這種大團(tuán)隊(duì)里有很多小團(tuán)隊(duì),到小團(tuán)隊(duì)之后,做的業(yè)務(wù)都不相同,如果想立足成為一線互聯(lián)網(wǎng)公司中的萬(wàn)能選手,最主流的分布式架構(gòu)中有很多知識(shí)都是必須要去了解與學(xué)習(xí)的。并且在阿里面試過(guò)程中,面試官會(huì)問(wèn)到實(shí)際應(yīng)用場(chǎng)景的問(wèn)題:比如微服務(wù)化、用戶量、并發(fā)量、業(yè)務(wù)復(fù)雜度以及可擴(kuò)展程度等,這里不多贅述。本屌提供一個(gè)分布式架構(gòu)的學(xué)習(xí)思路也是自己目前還在學(xué)習(xí)中的體系:
三、微服務(wù)架構(gòu)
微服務(wù)是現(xiàn)在互聯(lián)網(wǎng)架構(gòu)技術(shù)中最火熱的話題之一,也是本屌目前正在學(xué)習(xí)研究的方向。在阿里面試過(guò)程中,面試官很少會(huì)問(wèn)到關(guān)于微服務(wù)相關(guān)的問(wèn)題。但作為一名開(kāi)發(fā)者,一名有技術(shù)夢(mèng)想的程序員微服務(wù)架構(gòu)是現(xiàn)在必須要去了解的主流技術(shù),本屌給自己制定了一個(gè)微服務(wù)技術(shù)的學(xué)習(xí)計(jì)劃:
四、并發(fā)編程
并發(fā)編程幾乎是所有互聯(lián)網(wǎng)公司面試必問(wèn)問(wèn)題,并發(fā)編程是Java程序員最重要的技能之一,也是最難掌握的一種技能。它要求編程者對(duì)計(jì)算機(jī)最底層的運(yùn)作原理有深刻的理解,同時(shí)要求編程者邏輯清晰、思維縝密,這樣才能寫(xiě)出高效、安全、可靠的多線程并發(fā)程序。目前網(wǎng)上沒(méi)有系統(tǒng)的全面的并發(fā)編程學(xué)習(xí)大綱,我搜集了很多資料總結(jié)出來(lái)一個(gè)最全面的學(xué)習(xí)大綱:
五、性能優(yōu)化
性能一直是讓程序員比較頭疼的問(wèn)題。當(dāng)系統(tǒng)架構(gòu)變得復(fù)雜而龐大之后,性能方面就會(huì)下降,特別是阿里巴巴這樣的一線互聯(lián)網(wǎng)公司最為注重,因此想進(jìn)入阿里,性能優(yōu)化一定是要去深入學(xué)習(xí)與理解的一環(huán),本屌在性能優(yōu)化這一塊雖然不能算專家,也可以自信的說(shuō)是精通了(注意:自己的簡(jiǎn)歷上一定不要寫(xiě)精通xxxx,要不然面試官會(huì)懟死你。好在本屌這一塊還算自信)
六、 Java開(kāi)發(fā)工具
一名開(kāi)發(fā)人員必須有適合自己的兵器,也就是工欲善其事必先利其器,不管是小白,還是資深開(kāi)發(fā),都需要先選擇好的工具。下列是我自己常用的開(kāi)發(fā)工具:
架構(gòu)技術(shù)資料分享
高清架構(gòu)技術(shù)視頻教程
BAT 面試攻略
架構(gòu)技術(shù)書(shū)籍
統(tǒng)一加架構(gòu)技術(shù)QQ群
免費(fèi)領(lǐng)取
架構(gòu)技術(shù)交流群 519752913