前言
本人水平有限,此文針對于自認為技術實力對標阿里P7,百度T5或者以下的讀者,如果是大佬不小心點進來了,可以自行點x略過。文內并不會出現每一家公司的面試過程細節,主要目的在于幫助大家怎么在像我一樣菜的情況下在這寒冬拿下offer或者說有復習準備方向。
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爭移動總監一樣,你覺得他的勝算有多少?
當然還有其他的選項,有的炒作水分大大了,我就不提了。當然如果你名校出身,天賦異稟,你想轉什么就轉什么,當個真·全棧也是輕而易舉,天高任鳥飛嘛。
3.Android開發堅守指南
看到這里,如果你是想轉行的話就不要看下去了,我們來說下Android如何提升競爭力,成功堅守,悶聲發大財!
3.1 選擇一個細分領域
Android現在細分的領域非常多,前面說到的有應用開發、逆向安全、音視頻、車聯網、物聯網、手機開發、SDK開發和智能電視盒子開發等等,在這些領域中選擇一個并不斷深入。比如音視頻,在9年前我剛入門Android時,音視頻就是悶聲發大財了(PC端),工資高的令人乍舌,現在在移動端,音視頻更是青出于藍,是一個非常好的選擇,如果想要入門可以看看何俊林《Android音視頻開發》。
3.2 盡量學習半衰期長的知識
知識半衰期指的是:隨著知識更新周期變短,知識裂變速度加快,一個知識落伍的周期。知識半衰期長的職業都是越老越值錢的,比如英語老師和外科醫生,知識更新慢并且幾乎不會落伍。這一點我們程序員是絕對比不了的,我們的大部分知識半衰期是比較短的,一個框架短短幾年可能就會被淘汰,這也導致程序員需要不斷的學習新知識,而我們每個人的時間和精力是有限的,那么根據知識半衰期,有策略的進行學習就變得尤為重要。
3.3 做減法,盡量專精Android技術
現在的社會,技術分工越來越細,越細就意味著大部分企業(小作坊除外)需要專精的人才(最好是精通一門通多門)。你會發現身邊脫穎而出的技術人大多都是靠一門技術,卻很少看到會一堆技術卻都不精通的冒出來。好比在武俠的世界,高手對決都在同一個時間段拿出看家武學,如果看家武學都不精,分分鐘被虐,剩下的武學也無需拿出來獻丑了。聯想到現實版本就是去大公司面試Android,結果Android技術了解不深,被各種虐,剩下的前端技術、后端技術、python什么的,面試官也沒興趣了解了。
所以并不是你會的技術越多越好,一定要做好減法,先專精Android技術,然后再去學別的技術。
3.4 順應時代,擁抱大前端
在專精Android技術的前提下,順應時代,學習前端和跨平臺的知識,擁抱大前端。這個是比轉行更保險也更平穩的做法,進可攻,退可守。
分享一個Android開發高級進階腦圖,堅守的同胞們可以參照圖中來補充、擴張知識
最后
在此為大家準備了四節優質的Android高級進階視頻:
架構師項目實戰——全球首批Android開發者對Android架構的見解
鏈接: 點擊文檔免費獲取!
附相關架構及資料
//docs.qq.com/doc/DSkNLaERkbnFoS0ZF)**
附相關架構及資料
[外鏈圖片轉存中…(img-3zbbNOZY-1618563338735)]
領取獲取往期Android高級架構資料、源碼、筆記、視頻。高級UI、性能優化、架構師課程、NDK、混合式開發(ReactNative+Weex)微信小程序、Flutter全方面的Android進階實踐技術,群內還有技術大牛一起討論交流解決問題。