前言
很多程序员在工作时,以为是调用开发框架的API,实现业务需求就可以了。我看过安晓辉老师说的一句话:
想要有不断有成果的职业生涯,为了应对不断变化和发展的工作,除了要不停提升职业发展基础的专业能力,还要精进制定计划、沟通协作、说服他人等通用技能。
我朋友的经历是挺符合这句话的。
先简单介绍一下我的朋友,他叫Sheldon,一位大学学化工专业,却选择转行安卓开发并从业七年,或许他的经历会给各位带来一些启发。
朋友的故事
2015年,Sheldon从安卓编程培训班学成毕业。由于半路出家且毕业院校一般,作为编程菜鸟,并没多少公司愿意给面试机会。只有一家硬件设备小公司愿意给工作机会,于是他在这家公司,开始从事安卓开发工作。
入职后,看着那如同乱石堆的代码,他内心的表情是这样。
Sheldon对这些旧代码有了动手改造的想法,但苦于没找到合适的机会。在工作时间,努力搞清楚业务逻辑;在下班时间,通过阅读经典书籍和学习相关课程,积极学习代码重构,以及设计模式等知识。
到了2018年,当时老板想开发新应用以开拓新市场;还想把公用的读写卡代码抽取成SDK,供第三方对接使用;还要支持新版本通讯指令。
当时他已在公司工作三年,身边的安卓开发同事来来去去,结果资历最老的是他。
机会到来,他向部门经理(也是工作了十多年的老员工)提出了重构代码的设想,跟经理说明了重构代码的好处后,经理同意了后向老板争取;了解到提高研发效率的好处后,老板同意了他的设想。于是开始了基础模块代码重构。
在重构代码的过程中,他争取到部门经理提供技术支持;根据业务现状,制定重构代码计划。
实际开发中,重新设计安卓端的读写卡代码并形成文档;还有支持两套通讯协议的指令组装拆解代码;顺带引用开源框架,解决了通讯指令黏包的问题;作为资历最老的安卓开发,带领公司其他安卓开发,一起完成了重构工作。
忙活了三个月后,新的基础模块代码(读写卡,指令组装)终于上线了,开发新的基础代码没有拖慢新产品的研发速度,基础模块既能抽取出来作为SDK,还让新来的开发人员能迅速定位问题,专注于业务代码开发。
老板对重构后的基础模块代码表示
后来,Sheldon凭借着这段重构代码的经历,还有持续学习,争取到一个在大厂工作的机会。
结论
掌握软件开发的底层能力越多(设计模式,代码重构,写文档等),越积极主动,想办法推动并改进手上的代码,更容易发展得更好。
我准备了一套安卓进阶资料,方便大家继续精进安卓开发技术