Android 开发还有必要深耕吗? 未来前景将会怎样?

身边总有人问这些问题:

“现在学习 Android 开发还有前景吗?”

“Android 开发还有什么可以研究的?”

近几年来,许许多多的移动端的Android开发者们,对于职业的未来,都有一些迷茫和焦虑。为什么会这样呢?

从技术的角度来看,今年移动端的技术变革也有点缓慢。大前端的概念虽然说了很久也很多,但 React Native、PWA 的效果依然不尽人意。在插件化热潮之后,移动端的精品文章开始变少。去年“安利”完 Kotlin 之后,今年讲得比较多的还是 Flutter。遗憾的是这些都像蜻蜓点水一般,没有掀起多大的波澜。

这么看来,移动开发的前景不明朗,再加上竞争激烈以及技术变革放缓,我们感到迷茫、焦虑就不难理解了。

那到底是转行还是坚守深耕?

我觉得吧,首先抛开其他因素,就拿人云亦云来说,在当下这个互联网时代,很多技术一下子就火起来了,这个时候匹配的岗位需求肯定也多了,难道每次都想着换方向,转岗?

显然这个是不对的,这些火热的技术肯定会慢慢趋于正常,那么你又回到了原点。如果还是思路不变,那么就会永远的原地踏步。

转行,就是抛弃自己现有的基础,重新开始!身边也有不少Android开发的小伙伴转行Java,但是他们对于目前的市场还是过于乐观,Java市场竞争不大吗?从0开始的你,甚至连应届生都比不过……

Android 市场怎么样?

就当前的手机使用人群占比来说,Android是榜首这个毫无疑问。

从上图可以看出Android 系统终端的设备占比越来越高,意味着用户也在不断的增多,那么肯定对于Android手机里APP的需求就会多。APP需求多了,那么开发岗位的需求也多。这样害怕找不到工作嘛?

Android 开发岗位薪资

薪酬范围还是可以的,基本都是15K起步,而且技术岗位和薪资提升空间也不小,初略统计,普遍一个月2w到3w在有一定工作经验里面来说是比较合理的。

下面这一张图是不同技术层次程序员的薪资情况:

各阶段对于技能要素的要求:

入门初级阶段:

掌握Java基本知识(或任何其他面向对象语言),需要掌握Android SDK软件开发工具包,多看Android相关的文档,IDE (例如Eclipse),这些是必不可少的。顺便学习一下JavaScript脚本基础。掌握这些基本上已经可以算是入门了。

晋升中级阶段:

想晋升为到高级Android工程师至系统架构师的职位,很重要的一点就是学习研究源代码,直接查阅Android的源代码(这是看李宁老师的书得到的启发),源代码很容易从网上获得。同时,Android很大程度上是基于Linux内核的,所以学习 Linux的相应API以及各种操作也是十分必要的。还有,常用混合移动开发框架(例如:AppCan)。编译原理,高并发网站架构设计等技能。

高级发展阶段:

再往上想发展到项目经理,还需要掌握Android 软件安全分析技术、软件开发常用测试、界面交互式系统设计,同时要补充些项目管理方面的知识,比如:软件项目风险管理常用团队协作开发工具需求分析设计设计模式。

要做到公司首席技术官的位子,更多的是从架构考虑,包括:数据库系统优化、Windows Server服务器架设管理、网络安全技术与解决方案(Cisco)、海量数据库解决方案、大型服务器负载均衡优化技术等等。这是个需要绝对实力的职位。也是我的终极目标。

将自己提升为“T型人才”

作为身处开发类岗位的大家或者还在纠结方向的大家,我觉得还是找准方向,深耕。技术有一点深度了,然后工作经验也有了,那么我相信距离稳定的高薪也就不远了。

因为就目前形势来说,对于企业,初级开发都比较好招,但是中级或以上的就比较难了,有很多公司在这上面花了很多时间,找简历,猎头,主动联系等等,最终也是无功而返。

这其实也就变相说明了,行业内中高端人才的稀缺。想要高薪,必先埋头钻研,自身达到一定高度,薪酬自然跟着上去。

换个角度,当你技术有一定深度的时候,对于一些其他技术,或多或少都会有所涉及的。这个时候技术的广度也有了,大家还会觉得薪资会低吗?

在深耕技术前,首先要给自己制定一个成长曲线图,按照路线来合理的学习。不要东拼西凑的去学,那就是在浪费自己的时间,而且很容易忘去。下面是我自己针对Android岗位招聘中的技术需求而制定,里面基本记录的都是Android工程师必备技能和现主流技术的学习路线。

希望以下的学习路线能对你有帮助

内部调优

  1. 高效文件IO与网络IO
  2. 微信全面调优
  3. 内存与网络
  4. 贴近实战之问题优化
  5. 编程优化

高级音视频

  1. C/C++基础
  2. 交叉编译
  3. NDK进阶面试
  4. 增量更新与Gif渲染
  5. H264视频编码
  6. MediaCodec
  7. 视频编辑之剪影实战
  8. FFmpeg万能播放器
  9. 直播推流
  10. 图形渲染与识别
  11. Webrtc音视频

架构师必备

  1. 架构筑基技能
  2. 手淘组架构设计
  3. 开源架构手写实现
  4. 一线大厂架构核心进阶

鸿蒙系统

  1. Ability组件
  2. Ability组件
  3. 分布式任务
  4. 事件总线
  5. 鸿蒙线程
  6. 鸿蒙UI自定义控件
  7. 鸿蒙实战之新闻客户端

Kotlin技术

项目开发必备底层知识

  1. Android虚拟机内存原理
  2. Android10.0虚拟机源码分析
  3. 高级并发原理
  4. 线程实战
  5. 编译时高阶技术
  6. JDK高级动态代理
  7. 高级数据结构与算法

Android Q FrameWork源码与UI新技术

  1. 自定义控件进阶
  2. UI绘制与新技术
  3. AndroidR新技术
  4. Android Q下的FrameWork源码(SDK 29)
  5. 深入虚拟机源码
  6. 微信核心技术掌握

Gradle

  1. Groovy语言学习
  2. Gradle Android插件配置
  3. Apk优化之图片压缩(编译器自动将图片转换webp)
  4. Gradle自动化加密
  5. 手写Gradle实现自动化打包

小程序

以上都是现在Android高级开发需掌握的必备技能,在上面几个技术点中有音视频和华为的鸿蒙技术开发到时现目前比较热门的技能,音视频开发现在是市场人才比较缺少,所以导致音视频开发岗位的薪资基本都是在25K起步。

可参考的学习方法:

  1. 先去一些视频教学平台学习,因为有些博主或培训机构会将他们的学习视频发布在视频平台上,提供给大家学习(比如:B站、慕课网、csdn、51自学网等等),这些就看你们自己喜好去选择了
  2. 将自己学到的知识点和一些没弄明白的点进行整理,在去网上查阅进行记录。在此同时将自己觉得学的比较好或了解的技术点,写成完整发布到一些博客平台,通过平台的推广建设一个自己的知识圈,与一些同行进行探讨技术,从中间来提升自己也帮助别人,做到一举两得,双赢的效果。
  3. 自己定期在每年的某个时段去进行市场调查,怎么个调查法呢?就是去往不同的公司投简历面试,
    在面试的同时记录面试的过程,将这些公司对技能要求进行整理,从中判断市场需求什么样的技术岗位或者判断自己的技术能力能否达到他们的要求。在此同时也可以将这些公司的技能要求划分轻重等级,进行制定自己的学习计划来提升自己。

最后

在这我分享一份自己收录整理的Android 核心知识笔记+架构视频+面试文档,还有 高级架构技术进阶脑图、Android开发面试专题等一些高级进阶架构资料,我平常在闲暇的时刻,还会将这些精品资料拿出来反复翻阅。

总之是想通过学习资料和方法能够帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习,如果你有需要的话,可以私信我【666】或点击【Github地址】进行查看获取!!!

猜你喜欢

转载自blog.csdn.net/u012165769/article/details/110294863