668 字
3 分钟
元技能(二):技术拆解十问——如何深入理解技术模块
当需要深入了解某个技术内部的具体模块和细节时,可以用以下十个问题。
- 职责是什么?——它在整个系统里负责什么?边界在哪里?
- 没有它会怎么样?——系统具体会在哪里失败?
- 输入输出是什么?——它接收什么信息?产生什么结果?
- 主链路是什么?——从输入到输出,中间经历哪些核心步骤?
- 有哪些实现方案?——每一步有哪些不同做法?各自为什么存在?
- 最难的问题和核心 trade-off 是什么?——准确率、成本、延迟、复杂度、安全等之间如何取舍?
- 它自己会怎么失败?——有哪些典型的失败样例、边界条件和异常情况?
- 怎么评价好坏?——指标是什么?怎么设计测试和 Benchmark?
- 最小版本怎么实现?——如果不用成熟框架,我最少需要哪些数据结构、函数和流程?
- 工业级为什么更复杂?——真实生产系统还需要解决哪些 Demo 没遇到的问题?
唠唠嗑,在我总结了整体认知五问之后呢实际上我在学具体某个技术的模块细节的时候,我还是在试图套用元技能01里面的整体认知五问,但是我感觉它其实不是特别适用。上面这些问题其实是我在参加了一些面试之后,发现面试官他其实喜欢问,大概就是这些东西。我原本很在意代码的细节,比如某个具体的代码本身怎么写?但是发现,其实面试的时候也很少去问具体的代码细节。与此同时,我发现就算我自己写了代码,但是没过几天,其实代码细节完全就想不起来了。而且感觉好像也没必要去了解的特别清晰,代码本身。现在有了AI写代码更是特别方便。
与此同时,我还有一个发现。我就发现,其实技术不是最重要的。我觉得技术本身没有什么价值,只有当技术能够服务于具体的现实世界,具体的业务,这时候它才是最有价值的,否则天花乱坠,花里胡哨的技术,都是没有意义的。后来通过和AI交流,然后总结出来了这个具体学习技术模块的一个方法论。
元技能(二):技术拆解十问——如何深入理解技术模块
https://jiqingjiang.github.io/posts/thinking/元技能02-技术拆解十问/