概述
客户端工程师进阶知识图谱
计算机工程领域中,入门一个技术的门槛其实不高,甚至有些开发者笑称自己是CV工程师,有不会的,搜一下就可以了。在搜索引擎可以帮我们解决大部分问题的时候,为什么还需要自己去记忆?正是为了积累,知识是一个不断累积的过程,有积累才会进步。
几乎所有的开发者都有学习积累的意识,绝大多数人会在工作之余浏览技术文章,一部分人会自己写技术文章,但是时间久了之后发现,很多知识没有成体系的累积,在看过之后又很快忘记了。所以这里从一个Android开发者的角度出发,分类对一些知识点进行总结,从几个大类上形成自己的知识树。
Android基础
作为Android应用工程师,对Android相关知识的掌握是不言而喻的,至少关于Android相关的知识,我们都能知其然亦知其所以然。需要掌握的知识包括但不限于:
- 常见控件、组件的用法
- 消息、事件、窗口、绘制等原理与源码
- 工程架构相关
- jetpack和compose
- 系统源码
- 性能优化
- 常见第三方库使用、原理与源码
- Android虚拟机
- 工程构建工具相关
Java基础
虽然Java已经不是Android开发的首选语言,但是Android离不开Java,只要Android framework中还有Java代码存在,作为Android开发者就必须掌握Java相关知识,包括:
- 基本知识点
- 注解、范型、反射、异常、IO等
- 面向对象与设计模式
- 常用的包源码,如集合、多线程与并发
- Java新版本的特性,如lambda,stream等
- Java虚拟机相关
- AOP技术等
Kotlin基础
从2017年起,Kotlin已经成了Android开发的官方语言,没理由不掌握Kotlin. 对于Kotlin需要了解的技术包括:
- 基础语法
- 范型、反射、注解等
- 协程
跨平台技术
跨平台技术如今已经成为了一种趋势,所以每一个客户端工程时都应该掌握至少一种跨平台技术,了解其他跨平台技术的原理与优缺点等,目前主流的跨平台技术包括:
- React Native
- Weex
- Flutter
- Kotlin Native与Kotlin MultiPlatform Mobile
- 小程序,快应用
- Hybrid应用
- 其他跨平台技术原理(Qt等)
CS理论基础
计算机科学理论基础是基本功,也是必须要掌握的,作为客户端应用开发工程师,不必掌握的那么底层,但是一些基本的知识点,还是必须要掌握的,含:
- 数据结构与常见算法
- 操作系统
- 网络通信
- 安全相关
- 数据库基础
- 数学理论
工具与工程化
常用的开发工具,项目工程化在每一个开发者每天的工作中都会接触到的,熟悉常用工具和工程能带来成倍的效率增加,也可以处理一些疑难的问题,这些工具和工程化相关的知识点包括:
- Gradle与Maven
- 打包相关
- Git、SVN等项目协同工具
- CI与CD