写在前面
作为一名资深的Android 开发者。从2017年下半年开始,就听到各种言论,例如“Android 开发凉了”、“移动端开发没出路,赶紧转行”、“要被XXX 替代了” 等等,充分反映了大家焦虑的心态。
但是,移动端开发真的要凉凉了吗?也经常有粉丝私信我,在群里也聊起了这个话题,今天我决定写下自己的一些看法,供大家参考
很多开发者的现状
1.高不成低不就,就业困难
网友小李 :张哥,我在北京做了4年,平常没有注意技术的积累,然后找了2个月还没有找到满意的工作,总的来说就是高不成低不就的。我该怎么办啊?
2.年龄超过32岁,企业开始嫌弃。
朋友老刘:我36了,最近联系猎头找个工作,猎头说只能找技术管理类的了,纯开发的一般公司 32 岁的就不招了。
朋友六子 : 这什么情况啊,我是腾讯3.2啊,为什么我不行,年轻人能干的我也能干啊?我也不老啊!
朋友老马: 好想去字节跳动啊,可是我的年龄超过35岁的,其实我技术还是不错的,但是看到这个,我的心凉了。
3.企业要求越来越高,Android开发咬牙坚挺
还有不少同胞们担忧的情况——“晋升无望、收入见顶、生活开支飙升、财务危机如影随形”
关于Android开发的前景
不断地也听见很多人在谈做Android是否还有前途、Android研发在走下坡路了、Android的工作太难找了,对于这些其实我的看法很简单,现在真的还没到说Android开发已经无路可走的地步。
现在各大公司其实都很缺Android研发(中高级),不断的在招人,就拿很多一线互联网来说,别说来面试的人了,就简历都拿不到太多,需要花很多时间去找简历。
所以,对于有Android开发经验的同学,更多应该想想怎么往深探索,而不是一味想着换方向,不管换到哪个方向,都会面对从初级到高级到资深再到专家的时间点。正确的职业规划应该是金字塔形,核心竞争力一定要扎实!
Android程序员如何走向人生巅峰?
很多粉丝都比较关注的,除了Android开发前景如以外,关于Android程序员如何走向人生巅峰也是个问题,不过我认为,这个问题应该是:“Android程序员走向人生巅峰需要掌握哪些技能?”
要解决这个问题,那么以下的八个板块我们是一定要学习并掌握的
架构师筑基必备技能
Android应用是由Java语音进行开发的,SDK也是由Java语言编写的,所以我们要学习Java语言。另外,虽然说Kotlin语言也得到Android官方的热推,但是Kotlin也是编译成了Java语言在运行的。对于Android开发来说。
只要SDK没有用Kotlin重写,那么Java语言都是需要学习的。而且Android apk的后台服务器程序大概率是Java语言构建,所以学习Java是一个必然。
那么Java中那些东西是我们Android中比较相关的稍微比较难的Java基础几乎是一个门槛,像泛型丶多线程丶反射丶JVM丶JavaIO丶注解丶序列化等等。
Android框架体系架构
这块知识是现今使用者最多的,我们称之为Android2013-2016年的技术。
但是,即使是这样的技术,很多开发者也往往因为网上很多copy代码的习惯而导致对这块的使用的代码熟悉而陌生,熟悉的是天天和它们打交道天天在复制,陌生的是天天打交道却没有深入研究过他们,要学习源码,模仿源码,然后在hook源码,这样才能说懂这块的知识。
Android 360°全方位性能调优
- 一个app的性能好不好我们需要从两个层面分析:
1、从写代码的时候就注意,让自己的代码是高性能高可用的代码,这个过程是书写高性能代码
2、对已经成型的代码通过工具检测代码问题,通过检查到问题来指导我们进行代码的删改这个过程被称为调优
- 那如何写出高性能的代码呢?
需要我们具备深厚的代码功底,这就是代码的基础,如:数据结构达到可以根据应用场景写出符合当前场景的特殊结构,比如google针对Android平台特征研发了SparseArray代替HashMap.另外,对常用的算法也有自己独到的见解
设计思想解读开源框架
现在去很多公司面试,除了你具备基本的能够写一个高性能app的能力后,一般都会在自己的app里面加一些现有的相对较6的技术,这些技术我们称之为前沿技术。他们一般包含热升级,热修复,App Instant,强制更新,组件化路由架构Arouter,RxJava,IOC架构方法,Hook技术等等,当然,这些技术你不能只会用,你需要知道他的原理,有时候,你还需要知道如何对这些架构进行改进。
另外,非常重要的一点,Android开发者不愿意接受新知识,所以对于现在Google推出的新的技术方案毫无感觉,这些都是被 control C 和control V所毒害,开源让开发者失去了自我,失去了基本的编码能力,失去了深入学习的信心和毅力,所以对于很多google推出的新技术好组件(Google I/O 大会新技术),好框架已经很多人不愿意去学习了,而这是最不应该的,现在的大环境下我们更需要好好学习。
NDK模块开发
音视频丶高清大图片丶人工智能丶抖音直播等这些年与用户紧密相关,与我们生活最相关的技术一直都在寻找最终的技术落地平台,以前是Windows系统,而现在是移动系统了。而移动系统中Android比例又是最大的。所以NDK可以说是必备要学习的,除此之外,音视频的编解码技术流媒体协议,ffmepeg,c,c++,JNI,linux都是音视频开发必备技能。而且OpenCV OpenGI这些又是图像处理必备。
架构师炼成实战
架构师不是天生的,是在项目中磨练起来的,所以,我们学了技术就需要结合项目进行实战训练,那么在Android里面最常用的架构无外乎 MVC,MVP,MVVM,但是这些思想如果和模块化,层次化,组件化混和在一起,那就不是一件那么简单的事了,我们需要一个真正身经百战的架构师才能讲解透彻其中蕴含的深理。
微信小程序
移动架构师不可不学习微信小程序
Hybrid 开发与Flutter
混合开发的flutter现在已经逐渐成了主流的混合开发框架,另外由于阿里系的强大存在,导致阿里系的公司都在用Weex混合架构,这些都是一个Android工程师开拓视野,走向未来必不可少的基本技能的。
正好,我之前精心收录整理了一些关于Android开发的知识点、面试题,推荐给大家化解成长的烦恼。
它们都是我平时也经常翻看、学习的一些珍藏资料,包括Java基础、Android进阶、架构设计、NDK、音视频开发、跨平台、底层源码等技术,还有2019年一线大厂最新面试题集锦,都分享给大家,助大家学习路上披荆斩棘能力得到提升,思维得到开阔
分享包括Android学习PDF+架构视频+面试文档+源码笔记,还有高级架构技术进阶脑图、Android开发面试专题资料,高级进阶架构资料帮助大家学习提升进阶,也节省大家在网上搜索资料的时间来学习,也可以分享给身边好友一起学习
由于文章篇幅问题复制链接查看详细文章以及获取学习笔记链接:https://shimo.im/docs/QVGDhCjVKvQ6r6TJ
或者可以查看我的【Github】里可以查看
网友评论