『BATcoder』寒冬已至!視頻聊聊四面楚歌的Android工程師該何去何從?

本文首發於微信公衆號「後廠技術官」html

你們好,我是劉望舒,I'm back!最近分享了一些視頻,都屬於望舒雜談,望舒雜談會分享一些經驗,什麼都會聊。除了望舒雜談還有另外一個視頻分支叫作BATcoder,什麼是BATcoder呢?它是Android進階三部曲的番外篇,會對Android進階三部曲的內容進行拓展和升級,會以視頻的形式分享給你們。至於爲啥叫BATcoder,這是由於我但願你們看了個人技術視頻能進入本身中意的大廠。這篇是BATcoder的第一個視頻,不過此次不會分享技術,而是和你們聊聊Android工程師該何去何從。前端

視頻版本

歡迎你們去B站觀看,歡迎三連。
liuwangshu.cn/batcoder/an…python

今年的行情相對去年總體要差一些,不少同窗發現不少公司招人,興沖沖去面試了,結果面了幾家都是等通知,實際上就是招聘的職位有限,面試的人不少。 寒冬真的來了嗎?我以爲未必,只是移動開發不熱門了而已,競爭更激烈的而已,需求仍是有的,移動端程序員和PC時代的程序員仍是不一樣的,目前尚未出現可以替代手機的這種高頻使用的物品。 做爲曾經煊赫一時的Android工程師,如今面臨着如下的問題:android

  1. 互聯網總體環境不樂觀
  2. Android開發人員衆多但崗位減小,致使要求愈來愈苛刻
  3. 大前端趨勢、跨平臺方案頻出、小程序肆虐,Android再也不是應用開發惟一的方案
  4. 人工智能、大數據等技術炒的火熱,培訓機構傾巢出動,學校學生瘋狂學習,而大學學Android出來找工做很通常。

從上面幾點來看,說Android工程師是四面楚歌真的不爲過,我會從如下幾個方面來進行分析,請輕拍。c++

  1. 解除對Android的誤解
  2. 是否要轉行
  3. 如何提高競爭力

1. 解除對Android的誤解

不管是Android同行仍是其餘技術領域,明顯都對Android有些誤解。做爲Android開發來講,若是對Android有誤解可能會影響到後續的發展和決定,我有必要來消除這個誤解。程序員

1.1 Android系統的將來

Android系統是根,沒了它,Android工程師也不存在了。在個人記憶中,早在2011年就有言論說Android系統要完蛋,時過9年後,Android系統仍舊堅挺。目前對它惟一有威脅的是谷歌的Fuchsia,谷歌的真正用意多是作個備選而不是替代,由於替代的難度太大了,如今Android已經普遍的應用在手機、平板、車聯網、物聯網、智能電視等等領域,是名副其實的終端霸主。咱們不說手機,就說智能電視和智能投影機,這些早已廣泛應用於各個家庭,新弄一個系統,就想讓開發人員從新開發這些定製系統和應用嗎?真的很難賣帳,更別說手機了,忽悠人家學Fuchsia,你當安卓開發都是傻子喜歡重蹈覆轍?Android不是塞班,豈是想替代就能替代的,這難度比如從新開發個PC操做系統替代windows通常。因此Android系統還會存活很長的時間,具體多久很差預測,應該比大多數程序員的職業生涯要長。 最近鴻蒙也出來了,不少同窗問我鴻蒙對安卓有威脅嘛,別的角度不說,單純從打工人的角度,鴻蒙的出現實際上會有利於安卓開發,由於其餘技術分支作的話學習成本很高,安卓開發能夠無縫切入鴻蒙進行鴻蒙開發,目前已經有安卓工程師同時進行安卓和鴻蒙的開發了,開一份工資作兩份工做,你說你老闆開不開心?面試

1.2 Android的將來就業趨勢

雖然如今Android的就業形勢不大好,可是其餘技術領域的就業趨勢也不樂觀,這是由於如今高校和培訓機構大量的培養人員涌入。我05年上大學時,軟件工程專業不是很火爆,學一些常規的技術,好比算法與數據結構、c++程序設計、面向對象方法及程序設計等等,畢業了也就是搞搞C++,作作Java Web和.NET等等。而放眼如今,IT相關的專業簡直就是火爆,你們都以爲這行有發展賺錢多,所以愈來愈多的學生報考了相關專業,不少大學都有移動互聯應用技術專業,還有人工智能學院,每一年都有大量的大學畢業生和培訓機構出來的涌入市場,而中國的互聯網企業顯然不須要這麼多的人才,最終的結果可想而知仍是狼多肉少。 咱們大概能夠預測到將來Android開發的人數會增加緩慢,考慮到企業將來的職位,Android將來的就業趨勢仍舊是平穩的,但其餘的技術領域就很差說了,畢竟什麼領域也抗不住涌入的人巨多啊。 最近又據說不少人轉行安卓了?what?49年入國軍?還真不是,由於如今不少技術分支人數太多了,物極必反,轉安卓也沒啥大驚小怪的。 V1Yhxx.png算法

1.3 Android開發的天花板

不少人會以爲Android技術深度不深,技術棧不龐大,Android職業發展有限,這個真是大大的誤解。 先說技術上,Android的技術棧隨着時間的推移變得愈來愈龐大,細分領域也愈來愈多,主要有Android應用開發、逆向安全、音視頻、車聯網、物聯網、手機開發和SDK開發等等,每一個細分領域都有不少技術棧組成,深度都足夠精深,就拿全部細分領域通用的Android系統底層源碼來講,就會叫你學起來生不如死。小程序

再說職業上,確實Android應用開發很難升任CTO和技術總監,通常的CTO和技術總監主要是後端,這主要是兩個緣由:windows

  1. 後端的技術棧很早就成熟了,我10年前轉作Android開發時,那幫30多歲的Java開發就已經很厲害了,隨着時間的推移,後端技術大牛遠比Android大牛的人數要多,也更厲害,他們作技術經理時,咱們都還在搬磚。
  2. 後端確實能夠統籌全局,在公司業務上屬於重要地位。

不過咱們忽略了最重要的一點,若是咱們是作後端的,必定能作到CTO和技術總監嗎?我想也是很難的,因此不要眼睛只盯着高處,先想一想本身能達到什麼程度,站在半山腰就說山下面的風景不開闊自己也不合理啊

2.是否要轉行

Android不熱門了,不少Android開發已經轉行了,有的正走在轉行的路上,還有的遲疑不決,到底要不要轉呢?咱們來分析下。

2.1 轉什麼最好

每一個人的自身狀況不一樣,轉的方向也會有所區別,轉人工智能相關開發貌似是最好的,不過最近人工智能風頭沒有去年高了,並且人工智能相關對學歷和算法要求很高,最起碼得是個碩士吧,並且這只是低配。那麼大多數Android開發能夠轉的方向主要有前端、後端和python等等。我大概說一下: 1.轉前端,這個是我認爲最好轉的一個方向,前端的理念不少都和Android相似,也能夠做爲Android的延伸,向大前端發展,若是對界面感興趣的能夠轉前端試試。 2.轉後端,後端這個就是徹底的轉行了,看似Java你們都會,可是後端的技術棧可不是隻有Java,各類框架絕對叫你頭大,不少人強調後端技術深,各類處理高併發看似十分有技術含量,不過這只是爲數很少的公司在作。若是想要穩定的能夠轉後端試試。 3.轉python,python貌似是很火,由於他跟人工智能發生了關聯,其實大部分學python的沒有搞什麼人工智能相關,基本都是在搞爬蟲。追求浪潮的能夠轉python試試。

2.2 不要輕易轉行,要轉就儘早轉

轉行有兩種我認爲是正常的,一種是行業消失或者沒落了,我的沒法施展才華。另外一種是興趣不在本行,所以轉一個本身感興趣的。而如今大部分轉行純屬是爲了跟風,爲了那點錢,而忽略了長期的發展。咱們來看看下面的圖。

這個圖不徹底準確,只是爲了更好的說明一些問題。從圖中能夠看出,大部分人在35歲前是在加速期,35歲後是上升或者衰落期。以Android開發轉前端來講,假設一個Android高級A同窗轉行前端會變爲前端初級或者中級,這時從事前端的人都在加速提升,A同窗要想趕超前面的擁有一樣加速度的人是很難辦到的,這就致使他在轉行前期極爲被動,A同窗還要保證在35歲前成爲前端專家或者Leader纔有可能在35歲後不進入衰落期,固然這時A同窗的Android若是不通過實踐和學習基本也就荒廢了,很難成爲專家。若是還想要在技術領域走的更遠,就不要輕易的進行轉行,若是想要轉越早越好,越快越好,由於其餘的競爭者都在加速提升,沒人會停下等你的。

2.3 轉行大部分都不是質變

一個開發的質變能夠理解爲在一個領域的大幅提高,或者是不相關領域的跨界,舉個例子:能夠在Android領域由高級質變爲了專家,或者是由一個高級開發升到了Leader,再或者跨界開始作了一些技術相關的培訓、演講、出書等等而被人所熟知,再或者是創業、搞副業等等拓寬了賺錢的渠道。 凡是能幫助35歲後不進入衰退期的均可以看作是一次質變,而轉行不多是質變,更多的是倒退回到原點從新出發,形象點來講,就是換了個不一樣的磚頭接着搬磚而已(高技術含量的除外)。所以咱們更應該去追求質變,而不是平行或者倒退,一次倒退能夠承受,屢次倒退就很難在35歲後進入上升期。

3. 如何提高競爭力

看到這裏,若是你仍是想轉行的話就不要看下去了,咱們來講下Android如何提高競爭力。

3.1 選擇一個細分領域

Android如今細分的領域很是多,前面說到的有應用開發、逆向安全、音視頻、車聯網、物聯網、手機開發、SDK開發和智能電視盒子開發等等,在這些領域中選擇一個並不斷深刻。好比音視頻,在10年前我剛入門Android時,音視頻就是悶聲發大財了(PC端),工資高的使人乍舌,如今在移動端,音視頻更是青出於藍,是一個很是好的選擇,若是想要入門能夠看看何俊林《Android音視頻開發》。

3.2 儘可能學習半衰期長的知識

知識半衰期指的是:隨着知識更新週期變短,知識裂變速度加快,一個知識落伍的週期。知識半衰期長的職業都是越老越值錢的,好比英語老師和外科醫生,知識更新慢而且幾乎不會落伍。這一點咱們程序員是絕對比不了的,咱們的大部分知識半衰期是比較短的,一個框架短短几年可能就會被淘汰,這也致使程序員須要不斷的學習新知識,而咱們每一個人的時間和精力是有限的,那麼根據知識半衰期,有策略的進行學習就變得尤其重要。
V1YWGR.png

上面的半衰期圖不徹底準確,可是卻值得參考,若是你是其餘的技術領域也能夠參考這個半衰期圖。這個圖不是告訴咱們不要去學RN和小程序,而是結合自身工做盡可能學習半衰期長的知識。

3.3 作減法,儘可能專精一門技術

如今的社會,技術分工愈來愈細,越細就意味着大部分企業(小做坊除外)須要專精的人才(最好是精通一門通多門)。你會發現身邊脫穎而出的技術人大多都是靠一門技術,卻不多看到會一堆技術卻都不精通的冒出來。比如在武俠的世界,高手對決都在同一個時間段拿出看家武學,若是看家武學都不精,分分鐘被虐,省下的武學也無需拿出來獻醜了。聯想到現實版本就是去大公司面試Android,結果Android技術瞭解不深,被各類虐,剩下的前端技術、後端技術、python什麼的,面試官也沒興趣瞭解了。 因此並非你會的技術越多越好,必定要作好減法,先專精一門,而後再去學別的技術。

3.5 到底要深刻學什麼?

根據知識的半衰期,做爲Android應用開發最應該學習的就是Java基礎、App開發相關技術、Android系統底層源碼、數據結構、設計模式、網絡相關等等。我也是遵循這個想法,在2017年出版了《Android進階之光》,裏面介紹了設計模式、網絡相關、Java、App開發相關技術。這顯然還不夠,由於還有一個最重要的知識沒有講,那就是Android系統底層源碼,這是知識半衰期長而且通用的知識,不論你從事Android哪一個細分領域,Android系統底層源碼都是你須要掌握的,而且它會讓你擁有較強的競爭力,這是由於較長的時間學習也只能掌握皮毛。 爲此,我在2018年出版了Android進階三部曲第二部《Android進階解密》,今年又出版了第三部《Android進階指北》,三本書造成了Android進階三部曲知識體系,但願能幫助到你們進階。

4. 帶領你們一塊兒學習

如今我回歸公號和博客了,會以視頻+文字的形式來帶領你們一塊兒學習,分爲兩個部分,一個是望舒雜談,什麼都聊,分享經驗。一個是Android進階三部曲 番外篇,對Android進階三部曲的內容進行拓展和升級,代號BATcoder。這篇是BATcoder的首篇分享,下一篇我會聊一聊如何高效的學習的系統底層原理。

做者簡介:劉望舒,騰訊雲最具價值專家,暢銷書《Android進階之光》《Android進階解密》《Android進階指北》做者,前華爲面試官,現大廠技術負責人,谷歌開發者社區特邀講師

更多的內容請關注個人獨立博客的知識體系:
liuwangshu.cn/system/

也歡迎你們關注個人公號:後廠技術官

相關文章
相關標籤/搜索