开发人员能力要求涉及到人才培养、团队搭建

一、技术能力

1.1 基础知识

1
2
3
4
5
* 计算机原理:对计算机组成有整体认知、了解 CPU/内存/磁盘等设备的结构和工作原理、进制转换等;
* 操作系统:对操作系统有整体的认知,进程管理、内存管理、文件系统、网络通讯、用户界面、驱动程序;
* 数据库:对数据的组织有整体的认知,掌握常见的数据库操作,比如增删改查、索引、SQL语句;
* 网络:对网络交互有整体的认知,掌握常见的网络基础知识和原理,比如七层模型、常见网络请求方式、HTTP、TCP/IP协议;
* 算法与数据结构:对算法和数据结构有整体的认知,熟悉常见的算法(排序算法、查找算法)和常见的数据结构(数组、堆栈、队列、哈希、树、集合)。

1.2 语言

1.2.1 主流语言

1
2
3
1. 初级:熟悉语言基础知识,达到能够辅助完成应用开发的标准;
2. 进阶:掌握在应用开发中实际运用的知识点以及常见 API 的实现原理,达到能够独立高效完成应用开发的标准;
3. 高级:掌握常见 API 的利弊以及核心知识点,达到能够主导开发优秀用户体验应用的标准。

1.2.2 辅助语言

1
熟悉C/C++/脚本语言/前端技术栈,达到能够通过辅助语言解决第一语言无法解决/解决不够好(效率、工作量、跨平台等)的标准。

1.3 iOS/Android

1.3.1 基础知识

1
2
3
1. 初级:熟悉 iOS/Android 常用系统 SDK API, 达到能够辅助完成应用开发的标准;
2. 进阶:熟悉 iOS/Android 官方文档介绍的各种知识,达到能够独立高效完成应用开发的标准;
3. 高级:掌握常用 API 的原理和利弊,达到能够主导开发优秀用户体验应用的标准。

1.3.2 进阶运用

1
2
3
4
5
1. 适配:掌握常见的机型适配方法,达到能够完成主流机型适配;
2. 动画:掌握各种动画 API 的使用和实现原理,能够高效实现实际开发过程中的动效效果;
3. 自定义控件:能够独立完成应用交互和视觉上的定制化效果;
4. NDK:达到能够阅读和理解 NDK 代码, 能够实现 NDK 开发的标准;
5. 框架:熟练使用主流的开源框架并了解各库的工作原理和利弊,达到高效率开发的标准。

1.3.3 原理理解

1
对 iOS/Android 常用组件、系统常见 API、主流开源项目的实现原理的理解。

1.3.4 iOS/Android 系统

1
了解和应用应用强相关的各个知识点的实现原理和流程(进程间通信、应用启动过程、编译和打包以及安装过程等)。

1.3.5 新技术

1
熟悉 iOS/Android 各个 API 版本的新特性,达到在实际项目中能够灵活运用、规避陷阱、高效开发的标准。

1.4 工程能力

1.4.1 程序设计

1
2
3
4
1. 设计模式,熟悉并掌握常用设计模式(单例、Builder、模板方法、抽象工厂、策略模式、观察者模式等)的原理及使用场景,能够将设计模式运用到实际项目中解决代码结构的问题;
2. 框架设计,方案设计的能力,框架图、流程图、类图等设计方案的输出能力;
3. 框架运用,方案运用的能力,熟悉常见架构(MVC、MVP、MVVM)的使用场景及利弊,能够将架构运用到实际项目中解决程序结构的问题;
4. 代码重构,接口优化调整能力。

1.4.2 编码规范

1
代码具有良好的可读性(结构、排版、命名等),具有自说明功能。

1.4.3 调试技能

1
能够独立通过调试工具和方法定位、跟踪、解决工作中遇到的各种问题。

1.4.4 自测

1
通过测试方法保证交付测试的版本相对稳定,保持程序可测。

1.4.5 性能优化

1
熟悉常用性能优化工具(Android Monitor、TraceView、MAT、Systrace、DDMS、Hierarchy Viewer)的使用,掌握常见的性能优化方法,能够独立、有效解决实际工作中遇见的各种性能问题,保证程序良好的用户体验。

1.4.6 工具使用

1
2
3
1. 构建和交付:熟悉编译流程以及编译过程中所涉及到的各种工具和技术(编译、链接、执行、Ant、Gradle、签名、代码混淆、多渠道打包、持续集成、提测、发布等),达到能够在实际工作中自如地完成应用开发的标准;
2. IDE: 能够使用主流 IDE 提高工作效率,完成日常编码、调试的工作;
3. 版本管理:掌握版本管理工具在实际工作中的使用(协同工作、代码备份、版本管理)。

二、综合素质

2.1 合作交流

1
2
3
* 团队合作:对工作流畅度和团队氛围的影响;
* 沟通表达:能够清晰地表达自己的观点、能否准确地理解他人表达的意图;
* 团队融入:在工作上的存在感、在团建时的存在感、对企业文化的认同感(是否有抱怨)。

2.2 工作态度

1
2
3
4
* 解决问题的效能:工作效率、工作质量;
* 风险识别及应对:是否靠谱;
* 钻研精神:愿意为提升工作质量/个人能力有更多的付出;
* 建议接纳:愿意为让团队/自己变得更好而倾听他人的建议并做出改变。

2.3 自我成就

1
2
3
* 工作之外的贡献:工作安排之外的产出,包括但不限于对团队的效率、氛围、价值和影响力的提升;
* 持续更新:学习意愿、视野、技术能力/综合素质的提升;
* 自我反省:工作总结并作出改变的能力。