一、寫在前面
跟之前一樣,打開內(nèi)外,看到系統(tǒng)提示已經(jīng)入職剛好一年,內(nèi)心思緒萬千,心里依舊懷揣著進(jìn)入阿里當(dāng)時(shí)的新鮮感與興奮感。
筆者2016年畢業(yè),畢業(yè)于國內(nèi)某普通二本學(xué)校,大學(xué)做的是Android客戶端開發(fā)工作,畢業(yè)后從事Java服務(wù)端開發(fā),17年中公司不景氣,于是決定跳出舒適圈,以入職阿里巴巴為目標(biāo),從零開始重新認(rèn)識(shí)服務(wù)端,從新開始Java后端的學(xué)習(xí),期間面試并拿下小米、美團(tuán)、餓了么、阿里、百度等一系列公司的offer。
本系列將從知識(shí)儲(chǔ)備、簡歷、崗位策略、內(nèi)推方式、面試技巧、面試流程、背調(diào)、阿里工作等方方面面,毫不保留的分享筆者在沖刺面試阿里巴巴的準(zhǔn)備過程以及入職阿里巴巴后的所思所想,希望對(duì)讀者有一些微小的幫助。
BAT的后端崗位,對(duì)社招都有一定的經(jīng)驗(yàn)要求,以筆者所在的A為例,一般2-3年的童鞋的定級(jí)基本處于P6-到P6+之間,A對(duì)于P6的定義主要是:
1、主導(dǎo)產(chǎn)品,實(shí)現(xiàn)用戶價(jià)值。
2、準(zhǔn)確理解需求,能有產(chǎn)品設(shè)計(jì)方案。
3、溝通協(xié)調(diào)能力,把控產(chǎn)品落地。
從上面的要求可以看到,對(duì)于2-3年工作經(jīng)驗(yàn)開發(fā)的童鞋,一般要求你能hold得住壓力、實(shí)現(xiàn)得了需求、產(chǎn)品能穩(wěn)定落地。因此有足夠的知識(shí)儲(chǔ)備以及項(xiàng)目經(jīng)驗(yàn)是任何一家公司是否選擇你的重要條件。
二、BAT之路
1、BAT之路第一步,認(rèn)準(zhǔn)要求很關(guān)鍵。根據(jù)要求尋找相應(yīng)的知識(shí)儲(chǔ)備查漏補(bǔ)缺異常重要。
在知識(shí)儲(chǔ)備方面,筆者當(dāng)時(shí)心里很虛,因?yàn)樵诠咀龅幕径际荂RUD的操作,雖然代碼寫了不少,功能寫了不少,但是能拿出手的項(xiàng)目屈指可數(shù)。為了彌補(bǔ)知識(shí)儲(chǔ)備的不足,筆者花了許多時(shí)間,從許多渠道整理并且獲取了Java后端開發(fā)的相關(guān)知識(shí),而后來的實(shí)踐證明,這些起到了舉足輕重的作用。
筆者知識(shí)儲(chǔ)備的渠道包括:關(guān)注比較有價(jià)值的微信公眾號(hào),簡書或者掘金上面的技術(shù)分享,公司內(nèi)網(wǎng)的技術(shù)文章分享以及通過閱讀書籍構(gòu)建起比較完整的復(fù)習(xí)知識(shí)樹。
筆者認(rèn)為,2-3年的Java工作經(jīng)驗(yàn)的童鞋應(yīng)該具備以下的工作技能:
A、基礎(chǔ)
Java基礎(chǔ):面向?qū)ο?、集合、反射、多線程、鎖、注解、并發(fā)(CAS、樂觀鎖、ABA、ThreadLocal、synchronized、Java內(nèi)存模型、線程池、引用類型)、IO、JVM、JMM等等。
存儲(chǔ)基礎(chǔ):MySQL、NOSQL、分庫分表、SQL優(yōu)化、索引、分布式主鍵、事務(wù)隔離級(jí)別ACID、數(shù)據(jù)結(jié)構(gòu)、最左匹配等。
B、Spring
事務(wù)、IOC、AOP、循環(huán)依賴、Spring Cloud、Spring父子容器、動(dòng)態(tài)代理(Java、cglib)等。
C、中間件基礎(chǔ)
消息隊(duì)列:消息隊(duì)列使用、重發(fā)解決、冪等設(shè)計(jì)、分布式鎖、消息堆積、消息模型。
相關(guān)中間件實(shí)現(xiàn)原理:掌握一個(gè)RPC框架實(shí)現(xiàn)原理(例如服務(wù)發(fā)現(xiàn)、治理、路由、優(yōu)雅下線、限流降級(jí)等等)、掌握一個(gè)MQ中間件的實(shí)現(xiàn)原理(例如Kafak設(shè)計(jì)方案、高可用、高并發(fā)、重復(fù)消費(fèi)、消息延遲等等)、掌握常用的中間件實(shí)現(xiàn)原理(例如MyBatis、ZK、Redis等等,在此不一一列舉。)
高并發(fā)解決經(jīng)驗(yàn):如何根據(jù)場(chǎng)景設(shè)計(jì)高并發(fā)方案、降級(jí)限流、分布式事務(wù)、分布式鎖、數(shù)據(jù)一致性等等。
D、問題排查以及性能優(yōu)化
線上緊急問題處理流程、處理方式(比如FullGC、OOM、進(jìn)程掛了等等)
性能優(yōu)化:性能瓶頸、慢SQL、負(fù)載過高、CPU過高等等緊急問題處理方案。
E、計(jì)算機(jī)基礎(chǔ)、算法
計(jì)算機(jī)基礎(chǔ)
算法(算法是非常重要的,怎么描述重要程度呢,筆者面試通過美團(tuán)、餓了么、小米、阿里全部都要手寫或者在線算法)
2、BAT之路第2步,在有相應(yīng)的知識(shí)儲(chǔ)備目標(biāo)后,如何準(zhǔn)備是一個(gè)很關(guān)鍵的過程。
當(dāng)時(shí)自己也是摸索了許久,按照筆者的愛好程度先后排序分別是:書籍、網(wǎng)絡(luò)視頻、掘金、簡書、微信公眾號(hào)。其中書籍跟網(wǎng)絡(luò)視頻是筆者主要的學(xué)習(xí)方式,在準(zhǔn)備過程中,筆者針對(duì)知識(shí)點(diǎn),先去查找相應(yīng)的書籍,然后先啃書。下圖是筆者當(dāng)時(shí)讀的一部分書籍,另外一部分找不到了。
在配合Java相關(guān)的書籍后,筆者又從某個(gè)網(wǎng)絡(luò)教程網(wǎng)站(此處不能有廣告)獲取了許多Java的視頻課程,課程非常多,可以根據(jù)個(gè)人需要獲取。
配合上面高強(qiáng)度的整理后,了解最新的Java技術(shù)、業(yè)界服務(wù)端技術(shù)等也是一個(gè)面試的亮點(diǎn),所以筆者當(dāng)時(shí)也裝了簡書、關(guān)注一些微信公眾號(hào)每天閑暇時(shí)間學(xué)習(xí)。
3、BAT之路第三步,硬技能需要軟技能點(diǎn)綴(后續(xù)系列會(huì)詳細(xì)分享)。
當(dāng)筆者完成前面兩步后,筆者開始總結(jié)歸納,通過畫思維導(dǎo)圖以及整理知識(shí)點(diǎn)的方式對(duì)自己進(jìn)行查漏補(bǔ)缺。在硬技能方面有足夠的掌握后,軟技能成了面試的重中之重,比如簡歷、面試表達(dá)、面試機(jī)會(huì)獲取等等。
面試機(jī)會(huì)方面:個(gè)人建議,簡歷最好交給認(rèn)識(shí)的童鞋或者大廠的童鞋進(jìn)行簡歷內(nèi)推,而不是自己官網(wǎng)投遞或者交給獵頭。內(nèi)推的優(yōu)勢(shì)在于:處理速度比較快,而官網(wǎng)或者boss、拉鉤反饋比較慢,而獵頭渠道簡歷很可能被賣出或者投遞到根本不適合的崗位上。
簡歷方面:簡潔而不浮躁的簡歷是一個(gè)好的面試機(jī)會(huì)的敲門磚。筆者在阿里擔(dān)任面試官,候選人專業(yè)與否從簡歷就能確定出來,好的候選人簡歷一頁覆蓋項(xiàng)目、個(gè)人技能、工作經(jīng)驗(yàn)一覽無余。而差的候選人簡歷著重于裝飾、項(xiàng)目沒亮點(diǎn)。(后面的系列會(huì)跟大家聊聊怎么準(zhǔn)備一份好的簡歷)
面試表達(dá):如果空有一番本領(lǐng),而不會(huì)表達(dá),那么無法完成自身能力的發(fā)揮。如何get到面試官的點(diǎn)、如何帶著面試官走,如何將自己的項(xiàng)目最大價(jià)值化等等也是一門很大的學(xué)問,筆者從求職者轉(zhuǎn)換到面試官的過程中,候選人在溝通過程中無法戳破我的痛點(diǎn)以及理解問題背后的含義,造成求職失敗等情況比比皆是。(后面的系列會(huì)跟大家聊聊如何面對(duì)面試官的提問)
4、寫在最后
如果您認(rèn)為本篇文章能給您起到一定的啟發(fā)作用,后續(xù)會(huì)連載簡歷準(zhǔn)備、面試表達(dá)、阿里面試流程、各大公司面試過程、入職阿里一年我學(xué)習(xí)到了什么等等系列連載,敬請(qǐng)關(guān)注。