Android工程师所必经的三个阶段,你到哪个阶段了?

67 阅读8分钟

自己当初也是如此,天真的以为计算机专业就是开发游戏,倒腾电脑的专业,所以自己就成了计算机学院的一员。上大学后,才发现和自己想象的完全不一样,依然要学习好多的数学专业课和语言专业课,只是这个语言不再局限于英语了,而是一些从未听过的 C/C++、C#、Java、Python。

在学校的时候完全不知道自己应该学习什么,只能按照教学的安排一节课一节课的学习和实践,学校老师布置的任务也一如既往的简单,然而大家一片茫然,依然有很多的同学完全学不明白。努力得不到结果的感受,让一些同学越来越厌倦去上课,越来越厌倦考试。尤其是遇到编程操作性科目,更是大脑一片空白。

大学阶段学生们的普遍情况是,不知道社会需要怎样的人才,需要怎样的情况才能做一名合格的软件开发工程师,在懵懵懂懂中就毕业了。

一部分在校学习刻苦,比较有远见的同学在即将毕业的一年抓住了公司的实习机会,这时候他们先人一步接触到了商业项目。会发现公司的软件开发又是另一番景象,也许在学校学习的 Java 和 Python,但在公司却要承担起一名 iOS 开发的角色,于是在这里开始了他们的二轮学习。

因为身边有一群有经验的导师,这时候学习起来比学校轻松了很多,但依然是大多数时候不知道应该学习什么,对于自己而言,哪些是需要现在学习的,哪些是未来应该学习的。

如果这些同学足够幸运,遇到一个优秀的 mentor,可能会轻松许多,应该 mentor 会授人以渔,在给你安排工作的同时,还会教给你做自己的职业规划的方法论。

有了一个详细的学习规划,会轻松很多,自己的学习还有 mentor 的定期 review 和反馈,这时候成长起来更快。这也是为什么我建议职业生涯初期的学生挤破头皮也应该进入大厂的原因。

大厂通常都有足够完善的新人成长机制,而且身边的同学都是足够自驱和优秀的,在这样的环境中成长,真的是如同脚踏白云,一飞冲天。

通常而言,职业生涯的前两年也会一直有这样的状况,不清楚自己到底还有哪些知识需要学习,在完成了交代的开发任务后,就会陷入一个怀疑人生的阶段,不知如何提升自己的能力。

这时候大多数同学就会靠踩坑提升自己的实力,踩一个坑记一次,有的坑记忆不够深刻踩 3 次怎么也够了,但这些同学会发现,职业生涯成长非常缓慢,如果不幸,可能 10 年的开发经验,不过是一年的经验重复使用了 10 年而已。

学习填充


下面就给大家分享一个我自己工作几年以来总结的系统性成长进阶路线,给你们做一个参考。

Android进阶学习路线

一、基础技能:

  • 深入Java泛型

  • 注解深入浅出

  • 并发编程

  • 数据传输与序列化

  • Java虚拟机原理

  • 反射与类加载

  • 高效IO

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-iafeABvy-1609919043732)(//upload-images.jianshu.io/upload_images/16595031-b88a34d4295fe6e8?imageMogr2/auto-orient/strip|imageView2/2/w/963/format/webp)]

二、Android框架体系架构

  • 高级UI晋升

  • Android组件内核

  • 大型项目必备IPC

  • 数据持久化

  • Framework内核解析

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-869hECfv-1609919043740)(//upload-images.jianshu.io/upload_images/16595031-8c59356d2ab24f5d?imageMogr2/auto-orient/strip|imageView2/2/w/972/format/webp)]

三、360全方面性能调优

  • 设计思想与代码质量优化

  • 程序性能优化

  • 开化效率优化

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rkZDO6wW-1609919043743)(//upload-images.jianshu.io/upload_images/16595031-3ce256a064ba54e3?imageMogr2/auto-orient/strip|imageView2/2/w/753/format/webp)]

四、设计思想解读开源框架

  • 热修复设计

  • 插件化框架解读

  • 组件化框架设计

  • 图片加载框架

  • 网络访问框架设计

  • RXJava响应式编程框架设计

  • IOC架构设计

  • Android架构组件Jetpack

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-S8ScJyso-1609919043747)(//upload-images.jianshu.io/upload_images/16595031-499429532e5c494b?imageMogr2/auto-orient/strip|imageView2/2/w/915/format/webp)]

五、NDK模块开发

  • NDK知识体系

  • 底层图片处理

  • 音视频开发

  • 机器学习

六、架构师炼成实战

  • 架构设计

  • 网上商城项目实战

  • 新闻客户端项目实战

  • 多格式播放器项目实战

  • Gradle自动化项目

七、微信小程序

  • UI开发

  • API操作

  • 微信对接

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yiRWE6NT-1609919043750)(//upload-images.jianshu.io/upload_images/16595031-5cd3e97628954d2b?imageMogr2/auto-orient/strip|imageView2/2/w/544/format/webp)]

八、Hybrid开发与Flutter

  • Html5项目实战

  • Flutter

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NWYgOAG9-1609919043752)(//upload-images.jianshu.io/upload_images/16595031-2d59e9043f74f1d5?imageMogr2/auto-orient/strip|imageView2/2/w/635/format/webp)]

知道自己不知道啥

=========================================================================

大多数人工作 3 年后,会陷入这个阶段:知道自己不知道啥,明白自己的薄弱之处。

这个时候其实很好办,因为自己知道问题出在哪里,当然好对症下药,刚好我也就是处于这个阶段。

这个阶段的同学最大的问题是时间不够用,大多数这个阶段的同学可能都已经濒临成家养家的压力,生活中的琐事和压力都多了起来,工作中可能也已经成为主程,除了要完成一些技术难题的攻坚,可能还需要指导一下新人,所以一定会出现时间极度不够使用的情况。

时间不够是最难解决的问题,可能也是最好解决的问题。时间确实就像海绵,挤挤总是有的,即使有时候我们会出现挤不动的情况,但那一定只是一个短期状况。

这个阶段的同学最需要读书,因为这些同学通常都已经有了自己的知识体系,也明白自己的薄弱之处在哪里,这时候就需要做专项提升,越到这个阶段,就会越发现基础知识的重要性。很多东西,真的需要学懂本质,这也是为什么大多数面试官都喜欢考察基础问题,因为真的基础才是根本,一个基础优秀的同学从来都不会太差。

我也是最近半年通过部门开展的读书活动才爱上了读书,书读百遍,其义自见是真理。很多书籍需要你反复软磨硬泡几次,每一次阅读都是一次认知的提升,而认知的提升最终会带给你财富的变现。

我希望自己在这一个阶段能产出更多有价值的文章,在这之前,我当然也需要做知识的基础夯实,于是有了系列,扫盲。

接下来,我还会从开源框架等开始,给大家带来一系列文章的产出。下面是我已经整理的一系列开源库相关的实战资料(含源码),有需要的点击蓝字免费获取。

【高级Android组件化强化实战(附源码)】

【深入理解Android插件化技术(附Demo)】

【Jetpack架构组件从入门到精通】

【Android热修复框架入门进阶指南】

不知道自己知道啥

=========================================================================