整篇文章可能读下来会比较啰嗦和白话,但句句真言,字字真心,欢迎大家一起交流。整文也只代表个人观点,同学们都可以发表自己的观点即可。
我认为每一名软件开发工程师都需要必经三个阶段:
-
不知道自己不知道啥
-
知道自己不知道啥
-
不知道自己知道啥
-
看起来很绕,但实际真实如此。
==========================================================================
对于大多数刚刚接触到 Android 开发的学生来说,软件开发是一片浩瀚的海洋,这是一片全新的领域,有着自己的生态圈。所以初入开发行业的学生们,完全不知道自己还有哪些是需要学习的,所以这些同学通常会陷入一个非常迷茫的阶段,尤其是在校学生。
自己当初也是如此,天真的以为计算机专业就是开发游戏,倒腾电脑的专业,所以自己就成了计算机学院的一员。上大学后,才发现和自己想象的完全不一样,依然要学习好多的数学专业课和语言专业课,只是这个语言不再局限于英语了,而是一些从未听过的 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)]
总结
笔者之前工作是在金融公司可能并不是特别追求技术,而笔者又是喜欢追求技术的人,所以格格不入,只能把目标放在互联网大厂了。也希望大家都去敢于尝试和追逐自己的梦想!
BATJ大厂Android高频面试题
觉得有收获的记得点赞,关注+收藏哦!你们的点赞就是我的动力!
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
)]
[外链图片转存中…(img-uw3xgIV7-1714759008462)]
[外链图片转存中…(img-8LIJrw1w-1714759008463)]
觉得有收获的记得点赞,关注+收藏哦!你们的点赞就是我的动力!
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!