前言
在我们IT界,技术一直都是我们安身立命的根本。
以前,中国的计算机刚发展起来,稍微懂点东西会点操作,会搬砖的人就可以找到高薪的工作,可是那个时代早就已经过去了。现在,你说自己只会一个四大组件,会搬砖,敢出门吗?汤都喝不到了,尤其是Android这块。
在这种时候,身边就有很多人开始感到迷茫了,甚至有不少从业人员提出了疑问:“Android开发凉了吗?要不趁着来得及,再努力一把,早点开溜?”
Android开发凉了?我看未必吧。其实,这个问题我觉得应该问提问的人自己,是不是自己的技术不到家,自己要凉了。毕竟目前来说,我就从来不担心这个问题的。打铁还需自身硬,不可否认,现在Android的竞争压力是越来越大,而市场需求也在日益减少,可你扪心自问一下,你的担忧的根本到底是来自与这个市场的变化,还是来自与对于自己技术的担忧?
互联网环境的变化,可以用日新月异来形容。别说Android这一行了,你敢保证再几年之后又有哪一门技术可以说是永远的常青树?终究,技术才是我们的安身立命之本。不断的学习,不断的提升自己的核心竞争力,不管Android凉不凉,你永远都不会凉。
接下来我就分别针对于Android开发者1-2年、3-5年、以及五年之后,又或是如何进阶高工、资深架构师给出我的一些学习建议和路线规划。
1-2年学习建议
1-2年学习主要以打实基础为主。Android应用是由Java语言进行开发的,SDK也是由Java语言编写,所以我们首先要学好ava语言。那么Java中哪些东西是我们Android程序员需要学习的呢?由于Android程序员习惯了 C V 代码块,所以与Android中比较相关的稍微比较难的Java基础几乎都是一个门槛,像泛型、多线程、反射、JVM、Java IO、注解、序列化等,都是被 CV 的对象,而大多数1-2年的Android开发者是不懂原理的。所以先把这一块啃下来,非常重要,具体学习建议路线内容如图所示:
3-5年学习建议
框架源码解读,高级UI与性能优化学习。高性能编程和性能调优共同决定了Android平台的代码执行的高性能。这也给我们3-5年的学习指明了努力的方向:我们即具备写高性能代码和读源码的能力,同时又要具备修改别人代码并使之具备高性能的能力,这些都是3-5年的“老码农”应该具有的。
进阶高工、资深架构师一点小建议
1. 掌握NDK技术
音视频/高清大图片/人工智能/直播/抖音等等这几年与用户最紧密,与我们生活最相关的技术一直都在寻找最终的技术落地平台,以前是windows系统,而现在则是移动系统了,移动系统中又是以Android占比绝大部分为前提,所以Android NDK技术已经是我们必备技能了。要学习好NDK,其中的关于C/C++,jni,Linux基础都是需要学习的,除此之外,音视频的编解码技术,流媒体协议,ffmpeg这些都是音视频开发必备技能,而且OpenCV/OpenGl/ 这些又是图像处理必备知识,这些都需要在实战项目中去学习掌握。
2. 学习Android前沿技术
现在去很多公司面试,企业除了你具备基本的能够写一个高性能app的能力后,一般都会在自己的app里面加一些现有的相对较 666 的技术,这些技术我们称之为前沿技术。他们一般包含热升级,热修复,App Instant,强制更新,组件化路由架构Arouter,RxJava,IOC架构方法,Hook技术等等,当然,这些技术你不能只会用,你需要知道他的原理,有时候,你还需要知道如何对这些架构进行改进。
3. 学习跨平台开发flutter
混合开发的flutter现在已经逐渐变成了主流的混合开发框架,另外由于阿里系的强大存在,导致阿里 系的公司都在用Weex混合架构,这些都是一个Android工程师开拓视野,走向未来必不可少的基本技能。
以上的建议我多倾向于阐述一些对应年限需要掌握的技术与路线,至于一些老生常谈的学习心态啊这些,我就不多赘述了,一直一句建议:“有付出才有回报”。另外上面一些路线截图由于篇幅原因,没有截全,需要完整路线图的朋友可以点赞+关注后,在我的Github获取领取方式!
学习自助
写到这里,差点忘记给大家分享些更为干货的东西,我自己平时学习有个习惯,就是看的一些资料或是将自己学习技术的一些心得,将其整理下来,所谓是好记性不如烂笔头,不仅能加深印象和理解,还能方便自己随时回顾学习,或者像我这样写在博客里做出分享总结。我这里整理成了一个499页的pdf,需要的朋友也可以在我的Github获取领取方式!**
需要完整路线图和以上学习笔记的朋友可以点赞+关注后,在我的Github获取领取方式!**