作为一名即将求职的程序员,面对一个可能跟近些年非常不同的 2020 年,你的就业机会和风口会出现在哪里?在这种新环境下,工作应该选择大厂还是小公司?已有几年工作经验的老兵,又应该如何保持和提升自身竞争力,转被动为主动?
就目前大环境来看,跳槽成功的难度比往年高很多。一个明显的感受:今年的面试,无论一面还是二面,都很考验Android程序员的技术功底。
最近搜集了阿里、美团、百度、网易、腾讯、美团等公司2019年最新的面试题,把技术点梳理成一份大而全的“Android高级工程师”面试xmind(实际上比预期多花了不少精力),包含知识脉络 + 分支细节,由于篇幅有限,这里以图片的形式给大家展示一部分。
核心分析内容
面向Android初、中级开发者,对于要学习的Android理论知识,我认为主要包括:
- 架构师必备Java基础
- 设计思想解读开源框架
- 360°全方位性能调优
- Android框架体系架构
- NDK模块开发(音视频系列)
- Flutter学习进阶
- 微信小程序开发
这份 xmind 尤其适合:
1.近期想跳槽,要面试的Android程序员,查漏补缺,以便尽快弥补短板;
2.想了解“一线互联网公司”最新技术要求,对比找出自身的长处和弱点所在,评估自己在现有市场上的竞争力如何;
3.做了几年Android开发,但还没形成系统的Android知识体系,缺乏清晰的提升方向和学习路径的程序员。
下面,我将对上面的理论知识逐一介绍,相信它会给大家带来很多收获。
一、架构师必备Java基础
1、深入理解Java泛型
2、注解深入浅出
3、并发编程
4、数据传输与序列化
5、Java虚拟机原理
6、高效IO
二、设计思想解读开源框架
1、热修复设计
2、插件化框架设计
3、组件化框架设计
4、图片加载框架
5、网络访问框架设计
6、RXJava响应式编程框架设计
三、360°全方位性能调优
1、设计思想与代码质量优化
2、程序性能优化
- 启动速度与执行效率优化
- 布局检测与优化
- 内存优化
- 耗电优化
- 网络传输与数据储存优化
- APK大小优化
3、开发效率优化
- 分布式版本控制系统Git
- 自动化构建系统Gradle
四、Android框架体系架构
1、高级UI晋升
2、Android内核组件
3、大型项目必备IPC
4、数据持久与序列化
5、Framework内核解析
五、NDK模块开发(音视频系列)
1、NDK开发之C/C++入门
2、JNI模块开发
3、Linux编程
4、底层图片处理
5、音视频开发
6、机器学习
六、Flutter学习进阶
1、Flutter跨平台开发概述
2、Windows中Flutter开发环境搭建
3、编写你的第一个Flutter APP
4、Flutter Dart语言系统入门
七、微信小程序开发
1、小程序概述及入门
2、小程序UI开发
3、API操作
4、购物商场项目实战
额外
- 当你学习完上述知识后,你应该已经能称得算是一个中级Android开发工程师了,可以尝试向高级Android开发工程师进阶。
- 此时,我认为有3个方向可以尝试:技术专家、架构师 & 管理层,具体介绍如下:
Android程序员技术成长路线
有了一个学习的方向,之后的学习就不会是迷茫散乱没效果的,所以在刚开始学习Android的时候一定要先搭建知识框架!
然后我们再来看看不同级别对技能有哪些要求,而你现阶段处于哪个阶段呢?
最后
虽然 Android 没有前几年火热了,已经过去了会四大组件就能找到高薪职位的时代了。这只能说明 Android 中级以下的岗位饱和了,现在高级工程师还是比较缺少的,很多高级职位给的薪资真的特别高(钱多也不一定能找到合适的),所以努力让自己成为高级工程师才是最重要的。
所谓高级工程师就是在技术上逐步沉淀,逐步体系掌握核心技术得来的。
其实Android开发的知识点就那么多,面试问来问去还是那么点东西。所以面试没有其他的诀窍,只看你对这些知识点准备的充分程度。so,出去面试时先看看自己复习到了哪个阶段就好。
以上内容均放在了开源项目:【github】 中已收录,里面包含不同方向的自学Android路线、面试题集合/面经、及系列技术文章等,资源持续更新中...