阿里p7資深架構師教你如何做到稅後50萬的程序員

寫在開篇

不管是開發、測試、運維,每個技術人員心裏都有一個成爲技術大牛的夢,畢竟“夢想總是要有的,萬一實現了呢”!正是對技術夢的追求,促使我們不斷地努力和提升自己。

然而“夢想是美好的,現實卻是殘酷的”,很多同學在實際工作後就會發現,夢想是成爲大牛,但做的事情看起來跟大牛都不沾邊,例如,程序員說“天天寫業務代碼還加班,如何才能成爲技術大牛”,測試說“每天都有執行不完的測試用例”,運維說“扛機器接網線敲shell命令,這不是我想要的運維人生”

提升技術的誤區:

有人認爲想成爲技術大牛最簡單直接、快速有效的方式是“拜團隊技術大牛爲師”,讓他們平時給你開小竈,給你分配一些有難度的任務。

有這種想法是錯誤的,主要有這幾個原因:

1、首先,大牛是很忙的,一個團隊裏面,如果大牛平時經常給你開小竈,難免會引起其他團隊成員的疑惑,我個人認爲如果團隊裏的大牛如果真正有心的話,多給團隊培訓是最好的。然而做過培訓的都知道,準備一場培訓是很耗費時間的,課件和材料至少2個小時(還不能是碎片時間),講解1個小時,大牛們一個月做一次培訓已經是很高頻了。

2、大牛不多,不太可能每個團隊都有技術大牛,只能說團隊裏面會有比你水平高的人,即使他每天給你開小竈,最終你也只能提升到他的水平;而如果是跨團隊的技術大牛,由於工作安排和分配的原因,直接請教和輔導的機會是比較少的,單憑參加幾次大牛的培訓,是不太可能就成爲技術大牛的。

學習方式

很多人以爲要學習就要像學校上課一樣,給你一整天時間來上課纔算學習,而我們平時加班又比較多,週末累的只想睡懶覺,或者只想去看看電影打打遊戲來放鬆,所以就沒有時間學習了。

實際上的做法正好相反:首先我們應該在工作中學習和提升,因爲學以致用或者有實例參考,學習的效果是最好的;其次工作後學習不需要大段時間,而是要擠出時間,利用時間碎片來學習

如何想辦法真正的提升自己:more and more

做的更多,做的比你主管安排給你的任務更多。熟悉更多業務,不管是不是你負責的;熟悉更多代碼,不管是不是你寫的

這樣做有很多好處,舉幾個簡單的例子:

需求分析的時候更加準確,能夠在需求階段就識別風險、影響、難點

問題處理的時候更加快速,因爲相關的業務和代碼都熟悉,能夠快速的判斷問題可能的原因並進行排查處理

方案設計的時候考慮更加周全,由於有對全局業務的理解,能夠設計出更好的方案

找到正確的學習路線

一、構成架構師的技能體系

webp

二、Java語言進階與Android相關技術內核

Android應用是由Java語言進行開發的,SDK也是由Java語言編寫,對於Android來說,只要SDK沒有用kotlin重寫,那麼Java語言是都需要學習的。而且Android apk的後臺服務器程序大概率是java語言構建,所以學習java也是一種必然。那麼Java中哪些東西是我們Android程序員需要學習的呢?由於Android程序員習慣了 C V 代碼塊,所以與Android中比較相關的稍微比較難的Java基礎幾乎都是一個門檻,像 泛型,多線程,反射,JVM,Java IO,註解,序列化等,都是被 CV 的對象,而程序員是不懂原理的,具體內容如大綱所示。

webp

Java語言進階與Android相關技術內核

三、 App開發框架知識體系(app亦對象)

這塊知識是現今使用者最多的,我們稱之爲Android 2013~2016年的技術,但是,即使是這樣的技術,Android開發者也往往因爲網上Copy代碼習慣了而導致對這塊經常“使用”的代碼熟悉而又陌生,所以我們需要從新的角度去分析這些知識點,深入研究他們,要學習源碼,模仿源碼,然後再hook源碼,這樣才能說自己懂這塊的知識。這些都是做Android開發,做高級工程師的基礎。

webp

App開發框架知識體系(app亦對象)

四、 360° Android app全方位性能調優

一個app的性能好不好我們需要從兩個層面努力。第一個層面:書寫高性能代碼;第二個層面:調優。
如何寫出高性能的代碼呢?那就需要我們具備深厚的代碼功底,這就是代碼的基礎。另外,對常用的算法有自己獨到的見解,leetcode上有刷個上百道題,這樣差不多可以達到精通最常用的排序查找動態規劃等算法的能力。再者,高效的算法以及節省內存的數據結構如果配合優秀的符合應用場景的設計模式,那麼,這些就爲高性能的代碼提供了實現依據。
另外一個就是對寫好的代碼進行調優,那麼調優的方向就是使用Profiler工具進行測試和檢查,看哪裏有性能消耗大的操作,然後分析對於代碼的問題。調優的方向就變成了如何對內存調優,對耗電調優,對網絡流量調優,當然,還有對啓動速度,頁面切換效果與速度,開機白屏體驗,閃屏方面的原因等進行分析和調優。最後再加上一個屏幕適配相機適配。

webp

360° Android app全方位性能調優

五、 Android前沿技術

現在去很多公司面試,除了你具備基本的能夠寫一個高性能app的能力後,一般都會在自己的app裏面加一些現有的相對較 6的技術,這些技術我們稱之爲前沿技術。他們一般包含熱升級,熱修復,App Instant,強制更新,組件化路由架構Arouter,RxJava,IOC架構方法,Hook技術等等,當然,這些技術你不能只會用,你需要知道他的原理,有時候,你還需要知道如何對這些架構進行改進。另外,非常重要的一點,Android開發者不願意接受新知識,所以對於現在Google推出的新的技術方案毫無感覺,這些都是被 control C 和control V所毒害,開源讓開發者失去了自我,失去了基本的編碼能力,失去了深入學習的信心和毅力,所以對於很多google推出的新技術好組件(Google I/O 大會新技術),好框架已經很多人不願意去學習了這是不應該的,我們需要好好學習啊。

webp

Android前沿技術

六、 NDK 模塊開發

音視頻/高清大圖片/人工智能/直播/抖音等等這年與用戶最緊密,與我們生活最相關的技術一直都在尋找最終的技術落地平臺,以前是windows系統,而現在則是移動系統了,移動系統中又是以Android佔比絕大部分爲前提,所以Android NDK技術已經是我們必備技能了。要學習好NDK,其中的關於C/C++,jni,Linux基礎都是需要學習的,除此之外,音視頻的編解碼技術,流媒體協議,ffmpeg這些都是音視頻開發必備技能,而且OpenCV/OpenGl/ 這些又是圖像處理必備知識,這些都在我們課程裏面有原理級的實戰項目

webp

NDK 模塊開發

七、 提高開發效率的工具運用

工慾善其事必先利其器,如何提高開發的效率,很多開發者在開發的過程中由於gradle不會用導致加載代碼非常耗時,這些就是工作成本。還有就是git的使用可以幫我們管理好我們的代碼,這個非常關鍵,因爲這個工具可以讓我們修改的代碼不會因爲錯誤的操作而導致代碼丟失。另外,移動開發者,我們至少需要知道如何抓取網絡包吧,其中,最常用的stetho就是一個很好的可以進行網絡抓包的工具。

八、 移動架構師專題項目實戰環節

架構師不是天生的,是在項目中磨練起來的,所以,我們學了技術就需要結合項目進行實戰訓練,那麼在Android裏面最常用的架構無外乎 MVC,MVP,MVVM,但是這些思想如果和模塊化,層次化,組件化混和在一起,那就不是一件那麼簡單的事了,我們需要一個真正身經百戰的架構師才能講解透徹其中蘊含的深理。

九、 移動架構師不可不學習微信小程序
十、 混合開發的flutter現在已經逐漸變成了主流的混合開發框架,另外由於阿里系的強大存在,導致阿里 系的公司都在用Weex混合架構,這些都是一個Android工程師開拓視野,走向未來必不可少的基本技能

以上這些技術如何學習呢?有沒有免費資料?

對Android進階,架構方面感興趣的朋友,歡迎加QQ羣:818520403,一起學習,相互討論。
關於以上的技術選型,我這都有整理好的資料包括高級技術大綱以及一套系統全面的Android進階視頻,羣內也有各種大佬技術面試心得的交流和分享的資料,歡迎大家踊躍加入我們,免費領取資料。

webp

技術大綱圖

webp

進階視頻圖

總結

要想有機會,首先你得從人羣中冒出來,要想冒出來,你就必須做到與衆不同,要做到與衆不同,你就要做得更多! 成爲技術大牛夢想雖然很美好,但是要付出很多,不管是Do more還是Do better還是Do exercise,都需要花費時間和精力,這個過程中可能很苦逼,也可能很枯燥,這裏我想特別強調一下:前面我講的都是一些方法論的東西,但真正起決定作用的,其實還是我們對技術的熱情和興趣!

年薪50W看似不多,可自己不努力一把怎麼知道自己的極限在哪呢?工作年限,年齡,公司大小彷彿這些東西限制了你的發展。可自己都不主動往上爬,你又憑什麼比別人優秀?


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章