一 计算机基础

  1. 计算机
  2. 软件
  3. 编程语言
  4. 网络

二 开发基础概述

  1. 客户端
  2. 服务端
  3. 前端/Android/iOS/桌面软件/小程序/快应用/
  4. 跨平台/大前端
  5. 计算机大概是怎样跑起来的
  6. 程序大概是怎样运行起来的—从编码,编译(解释),汇编到运行
  7. 语言,平台,类库,框架,脚手架

三 互联网产品

  1. 开发&上线&迭代
  2. 开发协作方式(App,开放接口APIorSDK)
  3. github

四 语言基础(java/js)

五 平台实践(Android/小程序/RN)

  1. 熟悉平台提供的API以及功能实现
  2. 实现某仿客户端—达到开发通用App的能力
  3. 对第三方库的使用
  4. 对第三方SDK如推送SDK,IMSDK,地理定位SDK,后端云SDK的使用
  5. 对常用功能模块的拆解和需求的把握
  6. 对代码习惯的养成和调试bug解决问题的能力

六 常见三方库解析与实现

  1. 代码改进和封装技巧
    2.design pattern的引入及合理认识
  2. IOC DI
  3. 结合语言特性分析推导design pattern
  4. 拆解第三方库及实现(网络库,注解库,ORM库等)
  5. library与framework
  6. 如何设计较好使用的库(封装,功能复用与应用解耦)

七 常见SDK解构及设计实现

  1. 熟悉常用SDK
  2. 成为SDK开发者
  3. 如何设计API
  4. SDK如何保证对外好用,对内好维护
  5. 对常见IM,推送,后端云SDK的分析和设计实现
  6. SDK与技术支持
  7. 具备开发SDK周边辅助衍生工具的能力
  8. 编写技术文档的能力

八 手游渠道SDK & 聚合SDK 拆解与实现

  1. 手游行业特性
  2. 手游渠道SDK的实现(Android/iOS)
  3. 聚合SDK的产生背景和实现
  4. App打包流程
  5. 聚合打包工具的实现
  6. 常用游戏引擎接入SDK遇到的常见问题
  7. 具备了解手游行业的业务流程和胜任手游公司SDK开发的能力

九 基础逆向能力

  1. Android/iOS 反编译 二次打包 重签名
  2. 工具:Apktool baksmali.jar smali.jar jarsigner
  3. 实现一个简单的解析和逆向Apk包工具

十 组件化 插件化 or 热修复

  1. 常用方案使用与接入
  2. 在SDK内实现热修复
  3. 手写热修复实现

附:

  1. 快速学习并上手新语言,新平台
  2. 程序员的能力(定位,分析&解决问题)
  3. 工作经验交流分享