寒冬已至?四面楚歌的Android工程师该何去何从

本文首发于 刘望舒的博客
地址:liuwangshu.cn/life/androi…html

寒冬真的来了吗?多是吧,由于最近几年每一年都说是寒冬,说的真的叫人焦虑。不过互联网的总体环境确实不如前几年,即便不说我想你们也能隐约的感觉到了。做为曾经煊赫一时的Android工程师,如今面临着如下的问题:前端

  1. 互联网总体环境不乐观
  2. Android开发人员众多但岗位减小,致使要求愈来愈苛刻
  3. 大前端趋势、跨平台方案频出、小程序肆虐,Android再也不是应用开发惟一的方案
  4. 人工智能、大数据、区块链等技术炒的火热,培训机构倾巢出动,学校学生疯狂学习,而培训Android出来就失业,大学学Android出来基本也失业。

从上面几点来看,说Android工程师是四面楚歌真的不为过,本篇文章会从如下几个方面来进行分析,请轻拍。python

  1. 解除对Android的误解
  2. 是否要转行
  3. 如何提高竞争力

1. 解除对Android的误解

不管是Android同行仍是其余技术领域,明显都对Android有些误解。做为Android开发来讲,若是对Android有误解可能会影响到后续的发展和决定,我有必要来消除这个误解。android

1.1 Android系统的将来

Android系统是根,没了它Android工程师也不存在了。在个人记忆中,早在2011年就有言论说Android系统要完蛋,时过7年后,Android系统仍旧坚挺。目前对它惟一有威胁的是谷歌的Fuchsia,谷歌的真正用意多是作个备选而不是替代,由于替代的难度太大了,如今Android已经普遍的应用在手机、平板、车联网、物联网、智能电视等等领域,是名副其实的终端霸主。咱们不说手机,就说相对小众智能电视和智能投影机,这些早已广泛应用于各个家庭,新弄一个系统,就想让开发人员从新开发这些定制系统和应用吗?真的不会卖帐,更别说手机了。Android不是塞班,岂是想替代就能替代的,这难度比如从新开发个PC操做系统替代windows通常。因此Android系统还会存活很长的时间,具体多久很差预测,应该比大部分人的程序员生涯要长。 最近谷歌在开发者大会上不多说起Android,不少媒体大肆宣扬谷歌再也不重视Android,这是由于谷歌有不少新的产品要推广,而做为谷歌大儿子的Android早已深刻人心,无需过多的推广,并不意味着谷歌再也不重视Android,Android系统还会持续的完善。c++

1.2 Android的将来就业趋势

虽然如今Android的就业形势不大好,可是其余技术领域的就业趋势也不乐观,这是由于如今高校和培训机构大量的培养人员涌入。我05年上大学时,软件工程专业不是很火爆,学一些常规的技术,好比算法与数据结构、c++程序设计、面向对象方法及程序设计等等,毕业了也就是搞搞C++,作作Java Web和.NET等等。而放眼如今,IT相关的专业简直就是火爆,你们都以为这行有发展赚钱多,所以愈来愈多的学生报考了相关专业,不少大学都有移动互联应用技术专业,还有人工智能学院,每一年都有大量的大学毕业生和培训机构出来的涌入市场,而中国的互联网企业显然不须要这么多的人才,最终的结果可想而知仍是狼多肉少。 咱们大概能够预测到将来Android开发的人数会增加缓慢,考虑到企业将来的职位,Android将来的就业趋势会缓中有升,但其余的技术领域就很差说了,毕竟什么领域也抗不住涌入的人巨多啊程序员

1.3 Android开发的天花板

不少人会以为Android技术深度不深,技术栈不庞大,Android职业发展有限,这个真是大大的误解。 先说技术上,Android的技术栈随着时间的推移变得愈来愈庞大,细分领域也愈来愈多,主要有Android应用开发、逆向安全、音视频、车联网、物联网、手机开发和SDK开发等等,每一个细分领域都有不少技术栈组成,深度都足够精深,就拿全部细分领域通用的Android系统底层源码来讲,就会叫你学起来生不如死。面试

再说职业上,确实Android应用开发很难升任CTO,通常的CTO主要是后端,这主要是两个缘由:算法

  1. 后端的技术栈很早就成熟了,我8年前转作Android开发时,那帮30多岁的Java开发就已经很厉害了,随着时间的推移,后端技术大牛远比Android大牛的人数要多,也更厉害,他们作技术经理时,咱们都还在搬砖。
  2. 后端确实能够统筹全局,在公司业务上属于重要地位。

不过咱们忽略了最重要的一点,若是咱们是作后端的,必定能作到CTO吗?我想也是很难的,因此不要眼睛只盯着高处,先想一想本身能达到什么程度,站在半山腰就说山下面的风景不开阔自己也不合理啊小程序

2.是否要转行

Android不热门了,不少Android开发已经转行了,有的正走在转行的路上,还有的迟疑不决,到底要不要转呢?咱们来分析下。windows

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开发和智能电视盒子开发等等,在这些领域中选择一个并不断深刻。好比音视频,在8年前我刚入门Android时,音视频就是闷声发大财了(PC端),工资高的使人乍舌,如今在移动端,音视频更是青出于蓝,是一个很是好的选择,若是想要入门能够看看何俊林《Android音视频开发》。

3.2 尽可能学习半衰期长的知识

知识半衰期指的是:随着知识更新周期变短,知识裂变速度加快,一个知识落伍的周期。知识半衰期长的职业都是越老越值钱的,好比英语老师和外科医生,知识更新慢而且几乎不会落伍。这一点咱们程序员是绝对比不了的,咱们的大部分知识半衰期是比较短的,一个框架短短几年可能就会被淘汰,这也致使程序员须要不断的学习新知识,而咱们每一个人的时间和精力是有限的,那么根据知识半衰期,有策略的进行学习就变得尤其重要。

上面的半衰期图不彻底准确,可是却值得参考,若是你是其余的技术领域也能够参考这个半衰期图。这个图不是告诉咱们不要去学RN和小程序,而是结合自身工做尽可能学习半衰期长的知识。

3.3 作减法,尽可能专精一门技术

如今的社会,技术分工愈来愈细,越细就意味着大部分企业(小做坊除外)须要专精的人才(最好是精通一门通多门)。你会发现身边脱颖而出的技术人大多都是靠一门技术,却不多看到会一堆技术却都不精通的冒出来。比如在武侠的世界,高手对决都在同一个时间段拿出看家武学,若是看家武学都不精,分分钟被虐,剩下的武学也无需拿出来献丑了。联想到现实版本就是去大公司面试Android,结果Android技术了解不深,被各类虐,剩下的前端技术、后端技术、python什么的,面试官也没兴趣了解了。 因此并非你会的技术越多越好,必定要作好减法,先专精一门,而后再去学别的技术

3.4 说说最近Android火热的技术

Android相关的火热技术最近几年也是频出,没事就在刷屏,我来讲说对这些火热技术的见解。

  • Kotlin,从知识的半衰期来看,这门语言很是值得学习,不过想要普及仍是很是难,由于Kotlin尚未表现出非用它不可的竞争力,另外不少企业使用的成本比较高,大多数领导都是不求有功但求无过,不会下力气推广。
  • Flutter,从知识的半衰期来看,这个框架存在的时间相对不会长,目前也就一些有技术储备的公司去试验去尝试,若是本身公司技术储备不够,就贸然当小白鼠显然不是很明智。

这两个技术都建议你们来学习,但不要期望它们会给你增长什么太大竞争力,李四1周能学会,张三一样也能。

3.5 到底要深刻学什么?

根据知识的半衰期,做为Android应用开发最应该学习的就是Java、App开发相关技术、Android系统底层源码、数据结构、设计模式、网络相关等等。 可是大部分实际开发中,算法是最不经常使用的,常常是为了面试去学的,那么剩下的内容都是须要深刻学习的。 我也是遵循这个想法,在2017年出版了《Android进阶之光》,里面介绍了设计模式、网络相关、Java、App开发相关技术。这显然还不够,由于还有一个最重要的知识没有讲,那就是Android系统底层源码,这是知识半衰期长而且通用的知识,不论你从事Android哪一个细分领域,Android系统底层源码都是你须要掌握的,而且它会让你拥有较强的竞争力,这是由于较长的时间也只能掌握皮毛。 为此,我在今年出版了Android进阶二部曲第二部《Android进阶解密》,这是一本为应用开发写的源码分析书,会将系统源码和应用开发结合讲解,帮助读者融会贯通。

好了,就说到这里,本文可能仍是有一些不成熟的观点,你们请轻拍。另外,最好不要拿一些特例说事,有的人运气好,他怎么折腾都成,而大部分人其实运气很通常。


分享大前端、Java和前沿技术,关注职业发展和行业动态。

相关文章
相关标签/搜索