今天和
大家分享“如何系统的学习Android开发”,面试者在问我关于学习Android开发的问题时,基本上没有“系统”两个字,大家常用的问法是:不知道怎么学习Android开发,没有方向,不知道该往哪里使力。
什么是系统?
为什么我会提系统两个字呢?先说一下新手和专家的区别,大家常常认为新手和专家的区别在于经验上,这样说也不能说是错的。因为确实这个经验是很重要的,但这个经验不是指实施某项技术获得了一个过程和记录,而是指通过实施某项技术促进了思维的改变。
如果思维没有改变,那么一个声称拥有十年经验的开发人员,实际上只是一年的经验重复了九次。
新手往往都不是特别想要学习,也不知道自己的行为是对是错,只是想实现一个立竿见影的目标。如果给新手提供一个与情境无关的规则(或者叫指命)让他们去执行,他们就会变得能干起来。
而专家更关注情境,更关注系统,而且喜欢说“具体情况具体分析”。他们往往更关注事物之间的联系,把自己看做系统的一部份,能分清和认识到系统的边界。
新手往往不把自己看做系统的一部份,所以学习Android开发也变成了一项孤立的事件,学习的模块也变得孤立起来。虽然花时间学习了很多组件或者技巧,但是却没有理清过这些模块或问题之间的关联。
然而,现实中的问题都是不是孤立的,理解系统,学会用系统思维才更有利于你去解决问题。
系统学习Android的资源和方法
而问怎么学习Android的人,从学生到工作过几年的程序员都有,大家都在关注怎么学好Android,怎么让自己的开发技能提升,往往看到什么技术或亮点都想学一下。但太多的人却忽略了系统,没有好好系统地学习Android的一些基础和这些基础特征之间的联系。
具体的学习方式每个人不一样,这里我给出一个我认为比较好的方式:完整地看完和练习官方指导文档。网上有太多Android开发的视频和文章,但他们都过于碎片化,只有这份官方文当是我认为最系统介绍Android开发的指南。
网址:https://developer.android.com/develop/index.html
一定要把官方文档中的“培训”和“API指南”认真的看一篇,而且花时间把相关的知识联系起来。这个工作只能靠自己了,官方都已经出了这么好的系统学习资料,但是你不去系统的学就是你自己的问题了。
接下来是详细的Android进阶学习路线
一、基础技能:
1、深入Java泛型
2、注解深入浅出
3、并发编程
4、数据传输与序列化
5、Java虚拟机原理
6、反射与类加载
7、高效IO
二、Android框架体系架构
1、高级UI晋升
2、Android组件内核
3、大型项目必备IPC
4、数据持久化
5、Framework内核解析
三、360全方面性能调优
1、设计思想与代码质量优化
2、程序性能优化
3、开化效率优化
四、设计思想解读开源框架
1、热修复设计
2、插件化框架解读
3、组件化框架设计
4、图片加载框架
5、网络访问框架设计
6、RXJava响应式编程框架设计
7、IOC架构设计
计思想解读开源框架**
1、热修复设计
2、插件化框架解读
3、组件化框架设计
4、图片加载框架
5、网络访问框架设计
6、RXJava响应式编程框架设计
7、IOC架构设计