高级开发者一般指能够独当一面的开发者。他应对日常需求在Android平台上的实现方式均有所了解,能够对一些复杂的需求进行合理的设计和拆解,同时能够兼顾扩展性和性能。此外,这也要求其在项目协作方面有比较强的能力,可以积极组织协调各个职能部门的同事,推进项目落地。高级开发者一般需要3~5年工作经验。
高级开发者的判断标准如下。
● 有比较多的项目实践经验。
● 能够独立处理比较复杂的项目需求,合理地将其拆解并实现。
● 实现需求的同时注重效率和项目架构。
● 能够指导团队内的实习生和初中级开发者。
● 能够成为项目某个模块的负责人,评估相关业务需求的合理性和迭代规划。
高级开发者需要具备如下技术能力。
● 掌握Android Framework的常见原理和具体工作,比如事件循环机制、Activity/Fragment启动流程、生命周期、布局的绘制流程、事件分发等。
● 掌握Jetpack常用组件的实现原理和适用场景。
● 熟悉跨进程通信的基本使用,了解多进程的使用场景。
● 掌握常用的设计模式,了解常见的架构模式的优缺点。
● 熟悉常用的第三方框架的原理和设计思想,能够根据场景选择合适的框架。
● 熟悉Android App构建过程,了解常用的字节码处理三方库,能够实现通用的编译时修改插件。
● 了解常用的性能优化工具,有性能优化意识。
高级阶段的Android开发者一般是团队里的核心成员,需要具备丰富的实战经验,除了会用Android的相关技术,还要明白不同技术的优缺点和使用场景。另外由于其有独立负责的模块,在开发任务繁重的时候,可能会有初中级开发者一起协作,那高级开发者就需要承担起指导的责任,合理地拆解和分配需求,带领伙伴既快又好地实现项目需求。
一般公司在招聘高级开发者时,更偏向于有复杂项目工作经验的人,“复杂”的判断标准如下。
● 业务复杂,涉及技术多,比如音视频、Hybrid(混合模式)相关。
● 日活高,比如百万、千万甚至更高。
● 开发时间长,团队成员多。
面试时除了项目复杂度,个人在其中承担的角色也应非常重要。比如有独立负责某个复杂模块或者开发底层组件经验的人,一定比只处理开发列表页等简单业务的人有优势。
一般公司在招聘高级开发者时,会通过一个业务需求使用的技术,引出实现细节、底层原理进行考察,比如从网络框架一路问到三次握手。所以如果你是初中级Android开发者并想要晋升,或者是高级开发者并想要变得更强,可以从这些方面深入学习,做到对项目里使用到的技术,深入理解其原理和设计思想,同时能将其和计算机基础结合起来。