1. 前言

[重学技术]系列主要是针对笔者自己的能力进行的针对性学习,不代表广大读者的情况。

2.为什么开始

自2021年至今,真正做iOS方面的开发已经有两年有余了,但是作为移动端开发者,我把太多的时间精力关注代码质量和琐碎的业务事情上,始终没能一窥底层的面貌,对底层的理解也一直停留在了初级阶段,没有深入到底层的实现细节。我慢慢的发现,我只会在应用层实现需求。

总结有几点原因:其一,没有养成探索意识,觉得实现需求就够了,但事实上只完成需求远远不够。业务开发大部分是在和产品的业务逻辑、数据展现、修复Bug和用户体验等打交道,这些都需要花费大量的时间精力,以至于没时间思考,没精力探索。其二,懒于学习,不愿意花时间去学习,而是把精力放在了业务的开发上,成为了无情的需求实现机。其三,没有把技术的学习当作一种乐趣,而是把技术的学习当作一种痛苦,因为技术的学习是一件痛苦的事。

我意识到这种情况已经有一年了,但是琐事缠身或者懒癌晚期,拖到现在。人无远虑必有近忧,这话是真没错,偶然的机会开始看看外面的机会,顺便检验下自己能力。很显然结果不太好,一些基础通过复习下可以理解的还👌🏻,但是深入下去,就突然尬住,不知道该说什么。还有些问题没接触过很难回答完美,我承认是自己背诵不到位,是我菜~。所以经过几天的思考,我希望能再之后的时间提升自己的技术能力,深入底层技术,把自己训练成一个技术爱好者,而不是一个需求实现机

嘀咕了这么多,我大概还需要深入理解以下内容。

3.需要探索的底层知识

1.iOS

  • 面向对象
  • 内存管理
  • Runtime
  • RunLoop
  • 多线程 && 锁
  • 网络
  • UI && 渲染流水线
  • 性能优化
  • 文件系统 - 沙盒
  • 数据库
  • 第三方框架
  • Swift
  • 动态链接器
  • 移动端技术架构
  • 逆向

2.计算机基础

  • 数据结构
  • 算法
  • 操作系统
  • 编译原理
  • 网络编程

3.编程语言

  • OC && Swift
  • C && C++
  • JS && TS
  • Python
  • Java
  • Dart
  • Kotlin

4.其他

  • 设计模式
  • 软件工程
  • 数据库
  • 图形学
  • 音视频
  • 浏览器
  • 跨平台

4. 参考