前言
写这篇文章的初衷是看到很多同学在一家公司工作了三五年,因为技术没有得到提升而随着年龄的增长导致不敢提出涨薪和跳槽找工作。希望这篇文章能够给这些还是初中级Android工程师的朋友一些启发。
快速成长
我们在向领导提出加薪申请或者是准备跳槽到更大的平台时,我们需要认识到自己现在的能力是否比刚入职到这家公司时更强,所以在此之前我们必须让自己成长起来。那么我们该如何快速成长呢?我理解的成长主要包括两个方便,分别是技术能力和职业能力。
如何快速提升技术能力
- 坚持:积少成多,重在坚持,构建自己的知识体系,我现在每天也都能保持至少分享一篇技术文章。
- 多写多练多思考:看过了,看懂了不等于学到手了,相信这个世上没有人会有过目不忘的本领,更何况是咱们这些上了年纪的人,只有多多练习才能加深大脑对它的印象。切记不要直接抄写代码,要理解每行代码的意思才是最有意义的。
- 敢于挑战:养成优秀的习惯,每次项目结束之后或者是休闲的时候,可以挑战一下自己能不能将整个项目独立开发出来,如果你具有单挑整个项目的能力,那么在面试时介绍项目的时候,可以直接说明这个项目是我独立开发的,那面试结果可想而知。
如何快速提升职业能力
职业能力是指我们在职场中的综合能力,比如:沟通能力、业务能力、协作能力、反馈能力、规划能力、总结能力。这些能力如果得到提升的话,又将是一条Android工程师的发展路线。至于如何提升,我总结了一些个人经验供大家参考。
沟通能力
- 语言一致性:面对不同工种比如测试、后端、产品和业务方首先要语言一致,你的语言表达要使对方能听懂,如果你一直说专业技能语言,别人是听不懂的,要将专业词汇转化成别人能听懂的语言。
- 理解一致性:你在说 A,对方听成了 B,你以为对方也在说A,那么永远只有“沟”而不会“通”,甚至不欢而散。我碰过多次这种沟通半天不能达成一致来找我协调,最后发现俩人不在一个频道上,造成无效沟通。我一般都是先听完,然后给我的理解给对方复述一次,问对方我理解的是不是对的,而不是急于表达我的观点。
- 多动手少说话:语言在传达过程中会很容易被错误理解,比如我描述一个人的长相,一千个人会画出一千个样子,如果我拿出一张照片,就能够准确的进行信息传递。沟通过程中多画图,多演示,多用白板能够提高沟通效率。少说话除了用动手代替之外,还有就是说的过程中要说重点,先说结论再解释,也许有些人不Care 解释只需要你给结论即可。当有太多的解释而没有引出结论时,可能会被认为很啰嗦说不到重点。
业务能力
- 给自己当“傻子”:一个好的产品是应该学习成本比较低的,给自己当“傻子”去使用自己负责的业务产品,就会发现太多可优化的点。
- 多换位思考:不要用技术的角度去看业务,要思考产品的用户是谁,核心是解决用户什么问题,有没有解决,反馈如何?
- 用公司视角:你负责的业务上下游依赖业务是哪些?在部门中处于什么角色?在公司层面处于什么地位?站在不同视角看待业务就会获得不同的看法。
- 关注行业竞品:行业趋势是什么样的,竞品的优势在哪里,我们的优势在哪,对行业要保持一定的敏感性。
协作能力
- 找到共同目标:通过良好的沟通能力,寻找到共同目标,放大共同价值会很容易达成合作。
- 多换位思考:多站在别人的角度考虑问题,多问对方的难点是什么,多问对方需要我如何协助,了解诉求之后再针对性提出解决办法,而不是上来就说我要做什么,而是我可以给你带来什么。
- 反馈能力 提高意识:事事有反馈是非常非常非常重要的意识,想象一下:1.你负责的开发任务如果需要负责人每天都问你一次到什么进展了,有没有做完,不问你也不说;2.群里有人反馈你负责的页面出了问题,而你已读未回,其实你可能已经在排查了,或者有更要紧的事去处理。但是你没有回,别人就会觉得你不负责任,甚至认为整个团队没有Owner 意识。如果当时回一个 “在看”,“开会中,5 分钟后看”效果就会不一样。
规划能力
- 定目标:没有目标就没有坚持的动力,做之前要先定好目标。目标可以有长期目标,中期目标和短期目标。
- 定周期:所有的目标都要有明确的时间节点,没有时间节点,很难进展下去。
- 做拆解:目标拆解的粒度越细,执行的效果就会越好,一直拆解到不能拆解为止。
总结能力
- 多练:很多开发人员会做不会说,会说不会写。我的经验就是多练,练的多了就会有感觉。上学那会作文都写不到 600 字,现在一口气写上几千字停不下来。平时多写业务文档,技术文章总结,也能锻炼你的总结能力。
- 逼自己:总结不是记流水账,要化繁为简,很多人会说不能再精简了。我的经验就是逼自己,比如 5分钟总结一下上半年的工作亮点、只选择一件事你认为是最需要给老板说的、总结字数不超过 100 字等,慢慢就会清楚如何做总结。
如何寻求突破
技能能力的提升,能够让我们在Andoid开发这条路上越走越长,那么我们如何才能突破现在的技术瓶颈到下一个阶段呢?小编结合自己的学习经历整理出了一条从Android初级工程师到Android高级工程师甚至是资深架构师的学习路线和对应的学习笔记,供大家参考。
1.Android基础知识体系
- 架构设计(泛型和注解)
- 动态架构编程原理
- Android虚拟机指令
- 虚拟机垃圾回收
- 虚拟机类和对象的结构
- 并发内存模型
- synchronize机制
- 深入并发原理之线程池
- 高效IO与数据序列化
对应学习笔记:
2.Android性能优化知识体系
- UI优化
- 启动优化
- 崩溃优化
- 卡顿优化
- 安全性优化
- 弱网优化
- App深度优化
- 开发焦点问题优化
- 编程效率优化
对应学习笔记:
3.Android framework内核
知识点:
- framework通信
- framework底层服务
- framework系统资源
- framework事件机制
- framework ui机制
对应学习笔记:
4.Android前沿技术体系
- 自动化构建App
- 前沿编译插件技术
- Compose
- JetPack
对应学习笔记
5.Android常用开源框架
- 架构师通用技能,分别是:数据结构与算法,代码设计准则,设计模式的综合运用。
- 网络访问框架
- 图片加载框架
- 数据库管理框架
- 进程通信框架
- Rx响应式框架
- 注入解耦
- 组件化框架
- 热修复框架设计
- Shadow插件化框架设计
对应学习笔记:
以上就是我整理出来的从Android初级到高级工程师的学习知识体系,还有对应的学习笔记供大家参考。
学习笔记获取地址:
docs.qq.com/doc/DWHFqVHBMVEJPWUx1
总结
成长就像爬山一样,一开始大家都在同一起跑线,有说有笑并肩出发,过程中有人坚持下来到达了山顶,有人停在了半山腰看着别人陆陆续续超过自己,有人选择了错误道路也许永远到不了山顶,有人选择了适合的道路很快就到达了山顶。成长的过程中肯定存在很多坎坷,但是每一次突破自身所带来的的成就感会成为你坚持下去的动力。坚持加上选择再需要一点运气,回报自然就会水到渠成,加油吧,打工人。