本文首发于微信公众号「后厂技术官」html
你们好,我是刘望舒,I'm back!最近分享了一些视频,都属于望舒杂谈,望舒杂谈会分享一些经验,什么都会聊。除了望舒杂谈还有另外一个视频分支叫作BATcoder,什么是BATcoder呢?它是Android进阶三部曲的番外篇,会对Android进阶三部曲的内容进行拓展和升级,会以视频的形式分享给你们。至于为啥叫BATcoder,这是由于我但愿你们看了个人技术视频能进入本身中意的大厂。这篇是BATcoder的第一个视频,不过此次不会分享技术,而是和你们聊聊Android工程师该何去何从。前端
欢迎你们去B站观看,欢迎三连。
liuwangshu.cn/batcoder/an…python
今年的行情相对去年总体要差一些,不少同窗发现不少公司招人,兴冲冲去面试了,结果面了几家都是等通知,实际上就是招聘的职位有限,面试的人不少。 寒冬真的来了吗?我以为未必,只是移动开发不热门了而已,竞争更激烈的而已,需求仍是有的,移动端程序员和PC时代的程序员仍是不一样的,目前尚未出现可以替代手机的这种高频使用的物品。 做为曾经煊赫一时的Android工程师,如今面临着如下的问题:android
从上面几点来看,说Android工程师是四面楚歌真的不为过,我会从如下几个方面来进行分析,请轻拍。c++
不管是Android同行仍是其余技术领域,明显都对Android有些误解。做为Android开发来讲,若是对Android有误解可能会影响到后续的发展和决定,我有必要来消除这个误解。程序员
Android系统是根,没了它,Android工程师也不存在了。在个人记忆中,早在2011年就有言论说Android系统要完蛋,时过9年后,Android系统仍旧坚挺。目前对它惟一有威胁的是谷歌的Fuchsia,谷歌的真正用意多是作个备选而不是替代,由于替代的难度太大了,如今Android已经普遍的应用在手机、平板、车联网、物联网、智能电视等等领域,是名副其实的终端霸主。咱们不说手机,就说智能电视和智能投影机,这些早已广泛应用于各个家庭,新弄一个系统,就想让开发人员从新开发这些定制系统和应用吗?真的很难卖帐,更别说手机了,忽悠人家学Fuchsia,你当安卓开发都是傻子喜欢重蹈覆辙?Android不是塞班,岂是想替代就能替代的,这难度比如从新开发个PC操做系统替代windows通常。因此Android系统还会存活很长的时间,具体多久很差预测,应该比大多数程序员的职业生涯要长。 最近鸿蒙也出来了,不少同窗问我鸿蒙对安卓有威胁嘛,别的角度不说,单纯从打工人的角度,鸿蒙的出现实际上会有利于安卓开发,由于其余技术分支作的话学习成本很高,安卓开发能够无缝切入鸿蒙进行鸿蒙开发,目前已经有安卓工程师同时进行安卓和鸿蒙的开发了,开一份工资作两份工做,你说你老板开不开心?面试
虽然如今Android的就业形势不大好,可是其余技术领域的就业趋势也不乐观,这是由于如今高校和培训机构大量的培养人员涌入。我05年上大学时,软件工程专业不是很火爆,学一些常规的技术,好比算法与数据结构、c++程序设计、面向对象方法及程序设计等等,毕业了也就是搞搞C++,作作Java Web和.NET等等。而放眼如今,IT相关的专业简直就是火爆,你们都以为这行有发展赚钱多,所以愈来愈多的学生报考了相关专业,不少大学都有移动互联应用技术专业,还有人工智能学院,每一年都有大量的大学毕业生和培训机构出来的涌入市场,而中国的互联网企业显然不须要这么多的人才,最终的结果可想而知仍是狼多肉少。 咱们大概能够预测到将来Android开发的人数会增加缓慢,考虑到企业将来的职位,Android将来的就业趋势仍旧是平稳的,但其余的技术领域就很差说了,毕竟什么领域也抗不住涌入的人巨多啊。 最近又据说不少人转行安卓了?what?49年入国军?还真不是,由于如今不少技术分支人数太多了,物极必反,转安卓也没啥大惊小怪的。 算法
不少人会以为Android技术深度不深,技术栈不庞大,Android职业发展有限,这个真是大大的误解。 先说技术上,Android的技术栈随着时间的推移变得愈来愈庞大,细分领域也愈来愈多,主要有Android应用开发、逆向安全、音视频、车联网、物联网、手机开发和SDK开发等等,每一个细分领域都有不少技术栈组成,深度都足够精深,就拿全部细分领域通用的Android系统底层源码来讲,就会叫你学起来生不如死。小程序
再说职业上,确实Android应用开发很难升任CTO和技术总监,通常的CTO和技术总监主要是后端,这主要是两个缘由:windows
不过咱们忽略了最重要的一点,若是咱们是作后端的,必定能作到CTO和技术总监吗?我想也是很难的,因此不要眼睛只盯着高处,先想一想本身能达到什么程度,站在半山腰就说山下面的风景不开阔自己也不合理啊。
Android不热门了,不少Android开发已经转行了,有的正走在转行的路上,还有的迟疑不决,到底要不要转呢?咱们来分析下。
每一个人的自身状况不一样,转的方向也会有所区别,转人工智能相关开发貌似是最好的,不过最近人工智能风头没有去年高了,并且人工智能相关对学历和算法要求很高,最起码得是个硕士吧,并且这只是低配。那么大多数Android开发能够转的方向主要有前端、后端和python等等。我大概说一下: 1.转前端,这个是我认为最好转的一个方向,前端的理念不少都和Android相似,也能够做为Android的延伸,向大前端发展,若是对界面感兴趣的能够转前端试试。 2.转后端,后端这个就是彻底的转行了,看似Java你们都会,可是后端的技术栈可不是只有Java,各类框架绝对叫你头大,不少人强调后端技术深,各类处理高并发看似十分有技术含量,不过这只是为数很少的公司在作。若是想要稳定的能够转后端试试。 3.转python,python貌似是很火,由于他跟人工智能发生了关联,其实大部分学python的没有搞什么人工智能相关,基本都是在搞爬虫。追求浪潮的能够转python试试。
转行有两种我认为是正常的,一种是行业消失或者没落了,我的没法施展才华。另外一种是兴趣不在本行,所以转一个本身感兴趣的。而如今大部分转行纯属是为了跟风,为了那点钱,而忽略了长期的发展。咱们来看看下面的图。
这个图不彻底准确,只是为了更好的说明一些问题。从图中能够看出,大部分人在35岁前是在加速期,35岁后是上升或者衰落期。以Android开发转前端来讲,假设一个Android高级A同窗转行前端会变为前端初级或者中级,这时从事前端的人都在加速提升,A同窗要想赶超前面的拥有一样加速度的人是很难办到的,这就致使他在转行前期极为被动,A同窗还要保证在35岁前成为前端专家或者Leader才有可能在35岁后不进入衰落期,固然这时A同窗的Android若是不通过实践和学习基本也就荒废了,很难成为专家。若是还想要在技术领域走的更远,就不要轻易的进行转行,若是想要转越早越好,越快越好,由于其余的竞争者都在加速提升,没人会停下等你的。
一个开发的质变能够理解为在一个领域的大幅提高,或者是不相关领域的跨界,举个例子:能够在Android领域由高级质变为了专家,或者是由一个高级开发升到了Leader,再或者跨界开始作了一些技术相关的培训、演讲、出书等等而被人所熟知,再或者是创业、搞副业等等拓宽了赚钱的渠道。 凡是能帮助35岁后不进入衰退期的均可以看作是一次质变,而转行不多是质变,更多的是倒退回到原点从新出发,形象点来讲,就是换了个不一样的砖头接着搬砖而已(高技术含量的除外)。所以咱们更应该去追求质变,而不是平行或者倒退,一次倒退能够承受,屡次倒退就很难在35岁后进入上升期。
看到这里,若是你仍是想转行的话就不要看下去了,咱们来讲下Android如何提高竞争力。
Android如今细分的领域很是多,前面说到的有应用开发、逆向安全、音视频、车联网、物联网、手机开发、SDK开发和智能电视盒子开发等等,在这些领域中选择一个并不断深刻。好比音视频,在10年前我刚入门Android时,音视频就是闷声发大财了(PC端),工资高的使人乍舌,如今在移动端,音视频更是青出于蓝,是一个很是好的选择,若是想要入门能够看看何俊林《Android音视频开发》。
知识半衰期指的是:随着知识更新周期变短,知识裂变速度加快,一个知识落伍的周期。知识半衰期长的职业都是越老越值钱的,好比英语老师和外科医生,知识更新慢而且几乎不会落伍。这一点咱们程序员是绝对比不了的,咱们的大部分知识半衰期是比较短的,一个框架短短几年可能就会被淘汰,这也致使程序员须要不断的学习新知识,而咱们每一个人的时间和精力是有限的,那么根据知识半衰期,有策略的进行学习就变得尤其重要。
上面的半衰期图不彻底准确,可是却值得参考,若是你是其余的技术领域也能够参考这个半衰期图。这个图不是告诉咱们不要去学RN和小程序,而是结合自身工做尽可能学习半衰期长的知识。
如今的社会,技术分工愈来愈细,越细就意味着大部分企业(小做坊除外)须要专精的人才(最好是精通一门通多门)。你会发现身边脱颖而出的技术人大多都是靠一门技术,却不多看到会一堆技术却都不精通的冒出来。比如在武侠的世界,高手对决都在同一个时间段拿出看家武学,若是看家武学都不精,分分钟被虐,省下的武学也无需拿出来献丑了。联想到现实版本就是去大公司面试Android,结果Android技术了解不深,被各类虐,剩下的前端技术、后端技术、python什么的,面试官也没兴趣了解了。 因此并非你会的技术越多越好,必定要作好减法,先专精一门,而后再去学别的技术。
根据知识的半衰期,做为Android应用开发最应该学习的就是Java基础、App开发相关技术、Android系统底层源码、数据结构、设计模式、网络相关等等。我也是遵循这个想法,在2017年出版了《Android进阶之光》,里面介绍了设计模式、网络相关、Java、App开发相关技术。这显然还不够,由于还有一个最重要的知识没有讲,那就是Android系统底层源码,这是知识半衰期长而且通用的知识,不论你从事Android哪一个细分领域,Android系统底层源码都是你须要掌握的,而且它会让你拥有较强的竞争力,这是由于较长的时间学习也只能掌握皮毛。 为此,我在2018年出版了Android进阶三部曲第二部《Android进阶解密》,今年又出版了第三部《Android进阶指北》,三本书造成了Android进阶三部曲知识体系,但愿能帮助到你们进阶。
如今我回归公号和博客了,会以视频+文字的形式来带领你们一块儿学习,分为两个部分,一个是望舒杂谈,什么都聊,分享经验。一个是Android进阶三部曲 番外篇,对Android进阶三部曲的内容进行拓展和升级,代号BATcoder。这篇是BATcoder的首篇分享,下一篇我会聊一聊如何高效的学习的系统底层原理。
做者简介:刘望舒,腾讯云最具价值专家,畅销书《Android进阶之光》《Android进阶解密》《Android进阶指北》做者,前华为面试官,现大厂技术负责人,谷歌开发者社区特邀讲师
更多的内容请关注个人独立博客的知识体系:
liuwangshu.cn/system/
也欢迎你们关注个人公号:后厂技术官