2020金九银十过后程序员VS码农,Android程序员进阶学习,需提上进程!(手动编写框架+设计模式+代码规范+性能优化)

程序员VS码农:我们不一样

要避免程序员变成码农,必须对编码保持热情,并持续学习;必须保持好奇心,乐于探求事物本质;必须对所做的工作及时总结,主动优化代码,让系统变得更加有机;必须主动尝试更好的开发方式、更先进的工具,来提升开发效率,并想办法避免重复性的工作;必须不断改进设计,将编程变成创造性的工作。只要通过这样逐步地积累经验和长时间锤炼,知识体系才能构建完备和丰富,才能避免沦落为码农。

几年前,我曾经重构过一个模块,从外部看模块的所在的系统,都是类似这样的,简洁而漂亮:

2020金九银十过后程序员VS码农,Android程序员进阶学习,需提上进程!(手动编写框架+设计模式+代码规范+性能优化)_第1张图片

但从程序员编码实现的层面看,它实际上是这样的:

2020金九银十过后程序员VS码农,Android程序员进阶学习,需提上进程!(手动编写框架+设计模式+代码规范+性能优化)_第2张图片

这个设计在最初的版本没有任何问题,使用继承扩展管理对象的接口能力,但仅仅过了两个版本,项目组PL说实在撑不下去了:增加一个接口,需要修改200多个地方,如果再过一个版本,估计要修改400多个地方了。

后来我把它改成这个样子,使用聚合消除了耦合:

2020金九银十过后程序员VS码农,Android程序员进阶学习,需提上进程!(手动编写框架+设计模式+代码规范+性能优化)_第3张图片

从代码实现层面看,在功能刚开始开发时,这两个设计区别不是很大,但随着系统演进、越来越多的功能加入,继承关系带来的耦合会导致模块之间关系越来越复杂,牵一发而动全身,终究有一天哪怕只做很小的改动,也将成为压死骆驼的最后一根稻草。

这次重构的成果是代码量由43K减少到15K,扩展新的接口能力不再需要修改已有代码。我想,这或许就体现了码农和程序员的区别吧。

建立知识体系

1.Android高级架构师筑基技能

内容

  • java泛型
  • java注解
  • 并发编程
  • 数据传输与序列化
  • java虚拟机原理
  • 反射与类加载
  • 高效IO
2020金九银十过后程序员VS码农,Android程序员进阶学习,需提上进程!(手动编写框架+设计模式+代码规范+性能优化)_第4张图片

2020金九银十过后程序员VS码农,Android程序员进阶学习,需提上进程!(手动编写框架+设计模式+代码规范+性能优化)_第5张图片

2.Android框架体系架构

内容

  • 高级UI晋升
  • Android组件内核
  • 大型项目必备ipc
  • 数据持久化
  • framework内核解析
2020金九银十过后程序员VS码农,Android程序员进阶学习,需提上进程!(手动编写框架+设计模式+代码规范+性能优化)_第6张图片

2020金九银十过后程序员VS码农,Android程序员进阶学习,需提上进程!(手动编写框架+设计模式+代码规范+性能优化)_第7张图片

3.全方面性能调优

  • 内容;
  • 设计思想与代码质量优化
  • 程序性能优化
  • 开发效率优化
2020金九银十过后程序员VS码农,Android程序员进阶学习,需提上进程!(手动编写框架+设计模式+代码规范+性能优化)_第8张图片
2020金九银十过后程序员VS码农,Android程序员进阶学习,需提上进程!(手动编写框架+设计模式+代码规范+性能优化)_第9张图片

4.设计思想解读开源框架

内容

  • 热修复设计
  • 插件后框架解读
  • 组件化框架设计
  • 图片加载框架
  • 网络访问框架设计
  • rxjava响应式编程框架设计
  • IOC架构设计
  • Android组件架构jetpack
2020金九银十过后程序员VS码农,Android程序员进阶学习,需提上进程!(手动编写框架+设计模式+代码规范+性能优化)_第10张图片

2020金九银十过后程序员VS码农,Android程序员进阶学习,需提上进程!(手动编写框架+设计模式+代码规范+性能优化)_第11张图片

我认为

在上一家公司当过一段时间的Android面试官,发现很多“精通”Android的候选人简历上都会写使用过XX开源库并引以为傲,如果在面试的时候没有问到这些有的还会对我提出质疑。拜托,这就叫精通了?这真的很有挑战性么?

怎么样算一名优秀的程序员?我认为最基本的要求是有高效的产出。回到Android上,一名优秀或者题主说的精通Android的程序员也应如此,高效的产出高质量代码,迅速解决开发中存在的BUG,对于需求提出合理的解决方案,不间断的学习和分享。而精通的开端,就是从一个使用者,变成创造者。轮子谁都会滚,而造轮子的,才值得尊敬。

那怎么成为精通Android的开发者?看,写,思考,总结,交流,这条路没有捷径。我认为精通Android的开发者至少需要具有扎实的C++/Java基本功,微机,网络通信,数据结构和算法基础,熟悉Android的大部分组件,常用开源库,丰富的Debug,适配经验以及持续的学习能力。

一线互联网公司Android岗位职位对应薪资图谱

2020金九银十过后程序员VS码农,Android程序员进阶学习,需提上进程!(手动编写框架+设计模式+代码规范+性能优化)_第12张图片

大多数3到5年的Android开发集中在中小公司居多,薪资水平在10k到15k之间。很多人已经习惯性满足了。因为大家都拿的差不多,想提升突破,升职加薪,找不到方向。找到方向也很难坚持

如果你属于这类人,那么我希望你认真看一下这些文章中的学习路线图。很多Android开发的朋友跟我反馈,里面很多技术平时用不到,没有动力去学。
如果你满足一直待在小厂,做一些初中级的增删改查工作。那确实没必要去按照大厂的标准学习提升。

对于真正想深入学习高级技术的小伙伴,可以关注我,,在我的个人主页介绍有免费学习地址!

附上我的【GitHub】大厂面试题,Android高级工程师学习进阶笔记不断更新。。。

《Android高级工程师学习进阶笔记》

2020金九银十过后程序员VS码农,Android程序员进阶学习,需提上进程!(手动编写框架+设计模式+代码规范+性能优化)_第13张图片

你可能感兴趣的:(2020金九银十过后程序员VS码农,Android程序员进阶学习,需提上进程!(手动编写框架+设计模式+代码规范+性能优化))