前言
Android高級架構師需要學習哪些知識呢?
下面總結一下我認為作為一個資深開發者需要掌握的技能點。
1.Android開發的幾個階段
我的10年開發生涯中,有9年都是做Android相關開發,以我個人的經歷來看,Android開發市場分為以下幾個階段,也許不是特別準確,但我覺得值得參考。
第一階段 :混沌期
這個階段大概在2009到2013年,Android剛開始出現在大家視野中,當時的Java開發有點像現在的Android開發,不是很熱門,競爭壓力大,因此很多Java開發轉了Android開發,我就是其中一員。在09年到10年時有個說法,說只要你會Activiy的生命周期,你就可以通過面試了,雖然說得有些夸張,但還是有點道理,你懂得一些基礎的概念,一般公司確實是可以進去的。這個時候大家都是摸著河去開發,網上的資料還有書籍都比較少,第三方框架也很稀少。
第二階段 :發展期
這個階段大概在2013到2015年,是Android開發發展最快速的3年,各種培訓機構傾巢出動,培養了很多Android開發者。這個時候大量的第三方框架百家爭鳴,插件化、Hybrid,MVP等技術開始占據大家的視野。網上的資料大量產出,也出現了一些經典的Android圖書。
第三階段 :平穩期
這個階段大概在2016年到2019年,是Android開發從神壇跌落,回歸普通的階段,不是說他涼了,而是有更火的技術,這使得Android開發黯然失色。同時由于供大于求,很多Android開發開始轉行,培訓機構幾乎不培訓Android。這個時候出現了很多重量級跨平臺框架,組件化、Kotlin、Android Jetpack、移動AI等技術映入了我們的眼簾,Android進階三部曲誕生在這個時期。
可以說現在的形勢看似不容樂觀,但是暗藏生機。下面說說Android開發的轉行和堅守。
2.Android開發轉行指南
轉行與否在于你對自己的定位,如果你就是想賺多些錢,到30多就解甲歸田了,就直接選擇適合自己的熱門技術,比如前一陣子python相關的技術很火,那么你就可以直接轉過去,速度要快,這個就不在本文的討論范圍了。
如果你的定位就是想在技術領域多呆幾年,成為技術專家及以上,那么轉行就需要慎重考慮了,因為轉行大部分都不是質變。
2.1 轉行大部分都不是質變
一個開發的質變可以理解為在一個領域的大幅提升,或者是不相關領域的跨界,舉個例子:可以在Android領域由高級質變為了專家,或者是由一個高級開發升到了Leader,再或者跨界開始做了一些技術相關的培訓、演講、出書等等而被人所熟知。
凡是能助力35歲后進入上升期或者平穩期的都可以看做是一次質變,而轉行很少是質變,更多的是倒退回到原點重新出發,形象點來說,就是換了個不同的磚頭接著搬磚而已(高技術含量的除外)。因此我們更應該去追求質變,而不是平行或者倒退,一次倒退可以承受,多次倒退就很難在35歲后進入上升期或者平穩期。
簡單來說,就是無論你轉什么,你都必須成為專家和leader以上,才能保證你的職業生涯得以延續,轉行只是將這個步驟延時了,終究還是避不開的。
2.2 要轉就盡早轉
如果你覺得所在的行業沒落了,無法施展才華,或者興趣不在本行,想要轉一個自己感興趣的。那么就要盡早轉行。
這個圖不完全準確,但確實能說明一些問題。從圖中可以看出,大部分人在35歲前是在加速期,35歲后是上升或者衰落期。以Android開發轉前端來說,假設一個Android高級A同學轉行前端會變為前端初中級,這時從事前端的人都在加速提高,A同學要想趕超前面的擁有同樣加速度的人是不可能辦到的,這就導致他在轉行前期極為被動,A同學還要保證在35歲前成為前端專家或者Leader才有可能在35歲后不進入衰落期,當然這時A同學的Android基本也就荒廢了,很難成為專家。如果還想要在技術領域走的更遠,就不要輕易的進行轉行,如果想要轉越早越好,越快越好,因為其他的競爭者都在加速提高,沒人會停下等你的。
2.3 轉什么好呢?
有的同學說,別說那有的沒的,我就是想轉,那我也說說轉什么比較好。
我周圍轉前端和后端的比較多,都還算順利吧。整體來講,轉前端比較順暢,因為很多理念都是相通的,而且Android配合前端的話,在大前端方向還是很有優勢的,算是一個很好的組合和補充。未來發展也看好,進可以帶大前端團隊和移動端團隊,退可以開發前端和Android,成為某一個分支的專家,前景看好。
轉后端的發展一般,因為跨度相對大些,后端跟Android相關聯的知識點有限,你在開發的時候,此前的Android知識并不能很好的助力后端。職業發展并不是像很多人想象的那么美好,只有成為技術專家和leader才可以延長職業生涯。什么?當CTO?想多了,后端厲害的海了去了,這好比一個后端開發學了兩年Android就跟10年經驗的Android Leader爭移動總監一樣,你覺得他的勝算有多少?
當然還有其他的選項,有的炒作水分大大了,我就不提了。當然如果你名校出身,天賦異稟,你想轉什么就轉什么,當個真·全棧也是輕而易舉,天高任鳥飛嘛。
面試復習路線,梳理知識,提升儲備
自己的知識準備得怎么樣,這直接決定了你能否順利通過一面和二面,所以在面試前來一個知識梳理,看需不需要提升自己的知識儲備是很有必要的。
關于知識梳理,這里再分享一下我面試這段時間的復習路線:(以下體系的復習資料是我從各路大佬收集整理好的)
資料獲取方式:前往我的GitHub
- 架構師筑基必備技能
- Android高級UI與FrameWork源碼
- 360°全方面性能調優
- 解讀開源框架設計思想
- NDK模塊開發
- 微信小程序
- Hybrid 開發與Flutter
知識梳理完之后,就需要進行查漏補缺,所以針對這些知識點,我手頭上也準備了不少的電子書和筆記,這些筆記將各個知識點進行了完美的總結:
《960全網最全Android開發筆記》
《379頁Android開發面試寶典》
歷時半年,我們整理了這份市面上最全面的安卓面試題解析大全
包含了騰訊、百度、小米、阿里、樂視、美團、58、獵豹、360、新浪、搜狐等一線互聯網公司面試被問到的題目。熟悉本文中列出的知識點會大大增加通過前兩輪技術面試的幾率。
如何使用它?
1.可以通過目錄索引直接翻看需要的知識點,查漏補缺。
2.五角星數表示面試問到的頻率,代表重要推薦指數
《507頁Android開發相關源碼解析》
只要是程序員,不管是Java還是Android,如果不去閱讀源碼,只看API文檔,那就只是停留于皮毛,這對我們知識體系的建立和完備以及實戰技術的提升都是不利的。
id開發相關源碼解析》**
只要是程序員,不管是Java還是Android,如果不去閱讀源碼,只看API文檔,那就只是停留于皮毛,這對我們知識體系的建立和完備以及實戰技術的提升都是不利的。
真正最能鍛煉能力的便是直接去閱讀源碼,不僅限于閱讀各大系統源碼,還包括各種優秀的開源庫。