读《六年安卓开发的技术回顾和展望》的收获

文章讲述了从事安卓开发6年的大佬的成长经历,从写博客沉淀知识,到参与项目提升架构能力,再到专注性能优化和软实力的提升。大佬强调了技术广度和深度的重要性,以及与领导沟通的技巧,并分享了未来学习规划,包括Linux内核、Android虚拟机和跨端技术等领域。
摘要由CSDN通过智能技术生成

     这是一位从事安卓开发工作6年的大佬,他对软件开发每年都有更深的认识。作为一名大一小白,看完他的文章我收获良多,以下是我的感悟输出:

大佬的成长路线篇:

     1.大佬说开始写博客,记录自己的所学所得是一个在他现在那种层次也非常重要的决定。在工作学习中有什么新的知识,他都会尽可能转换成别人看得懂的方式,这让他有了解决问题以后及时沉淀分享的习惯,这让他受益匪浅。

      2.大佬先看了一本《Android从入门到精通》,又参加了一些地方性的比赛,安卓开发所见即所得很快有了正反馈,让大佬坚持了下去。

      3.大佬在实习的时候,发现自己之前都是拍脑袋写一些简单的功能,没有开发规范,发布规范,也没有工程结构设计,系统设计,更没有考虑性能是否有问题。真正去开发一个商业项目要考虑的太多了。

       4.掌握项目流程后,大佬开始提高复杂项目的架构能力与做事意识。在2017年大佬开始做喜马拉雅直播项目,因为公司技术积累深厚,在架构设计,编译加速,快速迭代上都做了很多工作,让大佬大饱眼福。

       5.在喜马拉雅直播业务上,一个界面会集成IM,推拉流(我没听说过)等功能,还有大量的消息驱动UI刷新操作(也没听说过),大佬要保证业务迭代和用户体验会下很大功夫。

       6.大佬为了提升技术,学习公司内外很多框架的源码,通过分析这些框架的优缺点,核心机制,架构层级和设计模式,大佬对如何开发一个框架有了基本的认识,也输出了一些文章。之后大佬再去做复杂业务需求,内部SDK和优化就容易很多。

       7.学习优秀框架源码后,大佬在面对需求和复杂问题时会先想想之前的三方框架和系统源码有没有类似的问题,是怎么解决的。比如开发PK功能,这个需求的复杂性在于业务流程很多,分很多状态,但如果了解状态机模式,就会很简单。

       8.大佬在进入字节做基础技术后,眼界再一次被打开,常常需要深入到操作系统和库。比如帮业务方解决一个内存问题,除了要了解内存指标监控方式,还要知道分析不同类型内存使用的工具和基本原理。

       9.大佬说软件开发的第一个阶段是用某个技术方向的一个点完成业务需求,只要学习一些官方文档和书即可胜任。以后端为例,刚接手一个小项目,日常工作就是使用spring等库开发简单的接口,不涉及上下游通信和数据库优化。

       10.大佬说软件开发第二个阶段就是把这些点连起来,给出一个更体系化的解决方案,这算是一个高级工程师,除了一个模块,还可以负责一个具体细分方向的工作。比如在自定义布局时,发现界面很卡顿,要解决这个问题的话,你就要去了解这个自定义 View 的哪些代码流程影响了这个页面的刷新速度。这就相当于是从一个点到另一个点。怎么连起来呢?你需要去研究渲染的基本原理,分析卡顿的工具,找到导致卡顿的原因,进行优化。这个过程会对流畅性有整体的认识,能够对相关问题有比较全面的分析思路、解决手段,从而可以开发相关的分析工具或优化库。

       11.大佬说软件开发第三个阶段就是掌握某个技术方向的通用知识,有多个线的实践,能够连线成面,给工作做中长期的规划。对大佬而言就是实现了一个性能监控平台。拿安卓开发来说,刚才通过解决卡顿问题,在流畅性这方面有了比较多的实践;然后又发现内存有问题,去了解了内存分配、回收原理,做出内存分析优化工具,这样就也有了内存的一个体系化的实践。再加一些其他的优化经验,比如启动速度、包大小等。把这些线连起来,就得到了一个性能监控平台,这就是有把多条线连成一个面。

       12.大佬说软件开发的第四个阶段需要从业务出发。首先要明白公司业务的核心指标是什么,比如说拿一个短视频应用来说,它核心指标除了常规的日活、用户量,还更关注视频的播放率、停留时长、页面渗透率等。了解这些指标以后,大佬思考做什么可以有助于公司提升这些指标。结合业务指标反思当前的项目哪里存在优化空间。有了这个思路并且知道可以做什么以后,可以做一个较为全面的规划,然后拉领导去讨论可行性。这时不能再局限于某一端,不能说只是个安卓开发,其他部分都找别人做。一般在项目的价值没有得到验证之前,领导不会轻易给资源,因此第一个版本迭代肯定是要靠自己,从前到后独立完成,做一个 MVP 版本,然后让领导认可了这个系统的价值,才有可能得到更多的资源做这件事。

       12.大佬在领导一个10人小组时,负责跟进需求的提出,开发,测试,上线,运营各个环节,要保证项目及时交付和快速迭代。大佬在写代码时总是被产品需求评审,测试bug反馈,运营反馈线上数据有问题和开会所打断,后来明白了代码只是中间产物,最终还是要拿到对客户有价值,给公司能带来收入的产品,除了代码还要关注很多。

大佬的未来规划篇:

         1.大佬的目标是技术上达到一专多能,软实力上持续提升。如果是安卓开发,最好在某个有细分领域很擅长,比如音视频、跨端、动态化、性能优化。大佬目前主要是做优化,他后面需要继续补充的知识是Linux 内核原理,Android 虚拟机原理,项目从开发、编译、发布、数据分析各个流程的效率提升方式。

         2.在多能上,大佬可以具备独立完成一个系统从前到后的能力。大佬目前已有的经验是使用 TypeScript + React + Electron 开发桌面端软件,使用 SpringMVC 开发简单的内部系统。后面需要加强的点是熟练掌握前端的 js、打包、优化等知识,后端技术达到中级。大佬说还有这些点需要长期关注:Flutter 更新频繁,有一些尝试效果还不错,一套代码多端运行,节省开发成本,掌握 DevOps 理念及实践。最终目的是具备独立完成一个有价值的系统的能力,具备对研发整个流程的完善、优化能力

          3.在软实力上,大佬想要增加同频对话的能力。比如说在和领导汇报的时候,你要去讲你做的一个系统,你就要从他角度去表达。他可能关注的是整体流程、系统的难点、瓶颈在哪里,带来的收益是什么。那你就不能只讲某个模块的细节,而要从更高的层面去思考和表达。为什么要提升呢?随着工作年限的增加,市场对工作人员的要求是越来越高的,除了写代码,对表达能力的要求也是越来越高的。一开始刚入行,你就是做一个执行者,只要多动耳朵、眼睛、手,实现别人要求你做的功能。后来你的能力逐渐提升以后,有机会设计一个模块的时候,你就需要多动脑力去思考,去复设计这个系统的输入输出、内部数据流转等。再往后走的话,你可能会有一些资源,那就需要能把你的想法完整地表达出来,让别人帮你去贯彻落地。这其实是一种比较难得的能力。大佬今年计划通过多分享、多与不同的人交流等方式,提升自己的这种能力,争取做到满意的程度。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值