Android開發(fā)想加入阿里,該怎么做?P7以上要達(dá)到什么水平?

前言
之前老聽(tīng)人說(shuō)加入了阿里,成了P6-P7,屬實(shí)有點(diǎn)羨慕,不過(guò)看似光鮮亮麗的外表下,背地里肯定付出了常人不及的努力。
于是就有了今天的故事,專門去咨詢了之前的一些前輩。送給那些跟我一樣,沒(méi)名校背景沒(méi)大廠背景,但是想進(jìn)阿里(或其他大廠),又有點(diǎn)迷茫不知該如何前進(jìn)的人。
??一丶P6,P7如何?
阿里技術(shù)崗以 P 定級(jí),一般校招 P5,社招 P6起。 以前 P6還分 高級(jí) 與 資深,現(xiàn)在都統(tǒng)一成高級(jí)了。那么P6有何標(biāo)準(zhǔn)?首先技術(shù)達(dá)標(biāo)的情況下要擁有獨(dú)立負(fù)責(zé)某個(gè)或多個(gè)模塊的開發(fā)工作的能力。
哪有人要問(wèn)了,P7呢?看一下圖:

P7 一般薪水在 70-100 萬(wàn)之間,超過(guò) 100 萬(wàn)的屈指可數(shù),除非你是阿里 5 年以上的老 P7,薪資構(gòu)成包括現(xiàn)金和股票:
現(xiàn)金部分:大概的月薪應(yīng)該是 35K-45K 左右,年薪在 50-60W 左右;
股票部分:平均每年能拿到 25 萬(wàn)左右,不過(guò)最近股票行情下跌,所以對(duì)這部分收入影響較大。
所以一個(gè)新阿里 P7 的平均年收入是 80 W 左右,如果是待了 5 年以上老 P7,妥妥年薪 100 萬(wàn)往上,這金錢的味道,真 TM 香!
??二丶如何能達(dá)到P7?
1.專業(yè)能力
計(jì)算機(jī)專業(yè)要學(xué)習(xí)的內(nèi)容非常多,專業(yè)能力包含很多,光Android
還不夠,還有比如數(shù)據(jù)結(jié)構(gòu)、算法、Linux
、網(wǎng)絡(luò)編程、計(jì)算機(jī)原理等等等等等等,由于我做的是?Android
,那么這里就偏向?Android
?來(lái)講解了。
由于開源的精神以及互聯(lián)網(wǎng)的偉大,我們能夠不費(fèi)吹灰之力使用世界上頂尖的三方庫(kù),比如很火的?RxJava
、EventBus
、Retrofit
、OkHttp
?、Glide
?等等等等。只要添加一行依賴,就能起飛,有一種自己掌握了全世界最牛逼的技術(shù)的錯(cuò)覺(jué)。
我見(jiàn)過(guò)不少人,也看到不少 人的Github 的庫(kù)里寫著?MVP+RxJava+Glide+Dagger
?等等類似的內(nèi)容,他們可能一線開源庫(kù)用得很六,但是一旦問(wèn)及原理,可能就一臉茫然,說(shuō)不太上來(lái)。
這其實(shí)就是停留在使用階段的表現(xiàn)。
你要知道,一個(gè)庫(kù)再牛逼,這個(gè)牛逼是屬于作者的,而不是你。
站在面試官的角度講,這么多人都會(huì)用,又憑什么選你呢?對(duì)吧?!
這時(shí)候如果你懂一些原理,那你就能比別人更優(yōu)秀一些了。
那么,怎么去深入理解原理呢?閱讀源碼!
其實(shí)所謂的原理,全都寫在源碼里面,毫無(wú)保留。
有的人一聽(tīng)看源碼就會(huì)慌,不知所措,代碼那么多,怎么看???
其實(shí)閱讀源碼也是有很多訣竅的,這里分享幾點(diǎn)心得:
首先要會(huì)用。你要知道這個(gè)庫(kù)是干什么的,掌握它基本的使用方法;
有目的性。針對(duì)某個(gè)功能有目的的去挖掘,這樣就不會(huì)在茫茫源碼中迷失方向;
不需要看完所有細(xì)節(jié)。有的人閱讀源碼愛(ài)鉆牛角尖,非要把每一個(gè)小細(xì)節(jié)都搞清楚,以至于看了一天可能都沒(méi)看明白主干是什么。
是不是有點(diǎn)道理?比如 EventBus ,你發(fā)送個(gè) Event 怎么就傳遞到了訂閱的地方?帶著這么個(gè)小問(wèn)題有目的的去看,會(huì)輕松很多。
閱讀源碼確實(shí)不簡(jiǎn)單,但是不要著急,從簡(jiǎn)單的源碼開始,慢慢提升,學(xué)會(huì)抽絲剝繭,層層遞進(jìn),逐漸培養(yǎng)閱讀源碼的習(xí)慣與能力。
相信我,學(xué)會(huì)看源碼,對(duì)專業(yè)能力的提升有巨大的幫助。
2.技術(shù)方向
有自己的技術(shù)體系,精通的領(lǐng)域的技術(shù)
舉個(gè)例子,比如說(shuō)精通音視頻方面。是否懂H264
編碼器流程詳解,Mediacodec
解碼H265原理?Mediacodec
源碼分析,opengl
采集點(diǎn)和繪制點(diǎn),視頻變速詳解,WebRtc
環(huán)境搭載和編譯等等知識(shí)廣度,別人知道的你要知道的更多更深層次,別人不知道的你要知道。比如現(xiàn)在火熱的音視頻技術(shù),車載技術(shù)。
知識(shí)深度,每個(gè)技術(shù)點(diǎn)的各種原理,源碼,定位問(wèn)題的思維。
要有很強(qiáng)的分析和解決問(wèn)題的能力。及時(shí)發(fā)現(xiàn)問(wèn)題并且解決。
系統(tǒng)架構(gòu)方面足夠強(qiáng)的設(shè)計(jì)能力。
3.業(yè)務(wù)技能
需要具備的業(yè)務(wù)技能:
具有協(xié)調(diào)多條業(yè)務(wù)的技術(shù) PM 能力,有較強(qiáng)的技術(shù)整合能力,對(duì)負(fù)責(zé)業(yè)務(wù)上下游鏈路技術(shù)風(fēng)險(xiǎn)具備識(shí)別能力,且能提供合理的滿足各方訴求的總體解決方案,并且能拿到業(yè)務(wù)結(jié)果。
有結(jié)構(gòu)化思維和定義指標(biāo)能力,貼合業(yè)務(wù)大目標(biāo)清晰地理解自己團(tuán)隊(duì)的定位和核心發(fā)力點(diǎn),具有架構(gòu)演進(jìn)和規(guī)劃落地的能力,并取得有數(shù)據(jù)佐證的業(yè)務(wù)結(jié)果。
負(fù)責(zé)一小型業(yè)務(wù)線,能夠拆解產(chǎn)品需求并進(jìn)行平臺(tái)化沉淀,同時(shí)具有反向驅(qū)動(dòng)業(yè)務(wù)發(fā)展
4.保持學(xué)習(xí),學(xué)會(huì)積累
前面說(shuō)了多看源碼的同時(shí)在平時(shí)工作過(guò)程中也要時(shí)時(shí)刻刻保持學(xué)習(xí),只有自己不斷的進(jìn)步才能不被退下來(lái)。如果不能保證每天,起碼要保證每周學(xué)習(xí)一次。加深自己的理解,擴(kuò)大知識(shí)面。
有人要問(wèn)了,怎么學(xué)?如果你的技術(shù)達(dá)到一定層次,就會(huì)深刻意識(shí)到自己那個(gè)模塊的不足之處,比如Framework
底層原理方面有點(diǎn)欠缺,就能知道是AMS
原理還是PMS
原理還是WMS
機(jī)制。但是可能稍微薄弱一點(diǎn)的,我建議第一手多看看官網(wǎng)的介紹。
比如之前剛出現(xiàn)的車載工程師,說(shuō)實(shí)話我對(duì)這方面目前還是一知半解。能找到的資料也是寥寥無(wú)幾,所以我去看了官方的介紹才不算是一無(wú)所獲。起碼可能了解到這項(xiàng)技術(shù)最基本的知識(shí)。
又看官網(wǎng)介紹又看源碼,說(shuō)實(shí)話也是不夠的,因?yàn)楣倬W(wǎng)介紹很多只是一個(gè)最基礎(chǔ)的介紹,并不深入,要學(xué)以致用,不妨自己維護(hù)一個(gè)GitHub,把自己平時(shí)的誤到的寫下了,就會(huì)發(fā)現(xiàn)平時(shí)覺(jué)得懂了東西想要輸出出來(lái)發(fā)現(xiàn)并不是想象中那么輕松。比如我自己的GitHub屬于更新面試類的文章,目前才1000stars。
或者可以請(qǐng)教一下身邊對(duì)整個(gè)Android體系內(nèi)容比較了解的前輩,看看別人從那些方面入手,那些地方需要學(xué),需要鞏固,加深。
比如之前收集到的一份Android體系內(nèi)容,算是比較全面了。視頻+文字的結(jié)合版更好是理解吸收權(quán)當(dāng)參考。
包含(視頻+文字):
Android
基礎(chǔ)-性能優(yōu)化-Framework
-compose
開源項(xiàng)目-音視頻初中高-架構(gòu)-車載-Flutter
-Kotlin
-Harmony OS
+音視頻詳細(xì)文檔。
一丶T10級(jí)Android工程師必備基礎(chǔ)技能
涉及:注解、泛型、Retrofit
、架構(gòu)動(dòng)態(tài)編程技術(shù)原理、Butterknife
、JavaSSit
丶虛擬機(jī)丶并發(fā)內(nèi)存丶Synchronize
丶并發(fā)原理之線程池丶數(shù)據(jù)序列化

二丶T10工程師核心優(yōu)化能力
涉及:啟動(dòng)優(yōu)化、內(nèi)存優(yōu)化、啟動(dòng)優(yōu)化速度、卡頓優(yōu)化、布局優(yōu)化、崩潰優(yōu)化、應(yīng)用啟動(dòng)全流程(源碼深度解析)等內(nèi)容.

三丶Framework
涉及:Framework
通信、Framework
底層服務(wù)、Framework
事件機(jī)制等內(nèi)容.

四丶Compose(開源項(xiàng)目)

五.音視頻開發(fā)
涉及:C和C++基礎(chǔ)語(yǔ)法,H264
編碼基礎(chǔ)和進(jìn)階,H265
編碼原理和應(yīng)用MediaCodec
硬解碼,Media
內(nèi)核源碼,WeChat
視頻通話。初級(jí)-中-高

附帶音視頻開發(fā)預(yù)習(xí)資料文檔
涉及:視頻區(qū),視頻壓縮,音視頻同步,FFmpeg
,OPenGL
,OpenSL ES
,抖音美顏濾鏡,交叉編譯,視頻變速,FFmpeg
實(shí)現(xiàn)音視頻同步

六丶Android資深架構(gòu)師
涉及:Arraylist
,Okhttp
,Retrofit
,圖片加載,Dagger 2
,MVC
.MVP
.MVVM
,Jetpack Room

七丶Android車載工程師
涉及:Android Auto
,汽車媒體應(yīng)用,構(gòu)建Android Auto
即時(shí)通信應(yīng)用,構(gòu)建車載導(dǎo)航和地圖注點(diǎn)應(yīng)用,構(gòu)建Android Automotive OS
視頻應(yīng)用,測(cè)試Android
車載應(yīng)用,分發(fā)Android
汽車應(yīng)用,適用于汽車的Google Play
服務(wù),Android Automotive OS
的通知.

八丶Flutter高級(jí)工程師
涉及:Dart
語(yǔ)法,Flutter
動(dòng)畫丶組件丶網(wǎng)絡(luò)請(qǐng)求以及Flutter3.0
簡(jiǎn)介。

九.Harmony OS
涉及:Ability
組件,分布式任務(wù),事件總線,Harmony OS
線程,UI
自定義控件

十丶Kotlin相關(guān)
涉及:對(duì)象丶類丶繼承丶變量丶常量丶拓展函數(shù)等20多個(gè)內(nèi)容****

P7雖香,也需要一步一個(gè)腳印干掉 95% 的同學(xué),你也能成為那 5% 的精英。??