全部文章

职场之锤

本文另有英文译文 · 阅读英文版 →

我们总说技术是易逝的,三天不写代码都能把自己写晕。

但让我真正焦虑的,是那种**“我明明看过、学过、还做过”的知识**,
在项目里一需要的时候,却脑袋空空、连关键词都想不起来的挫败感。

最开始,我以为是自己记性差。
于是开始用 Notion 建知识库、手写笔记、画思维导图、翻旧代码……
结果很快发现,再多的知识也挡不住“遗忘”这件事的发生,
尤其是隔了两三个月没用的技术点,仿佛从没见过。

直到最近,我才换了一个角度看这件事:

也许我们不是“记不住”,而是太用力想记住了。
但技术知识不是背诵竞赛,而是一套不断演进、随场景切换的动态系统

真正重要的,不是你记得多少,而是——
你有没有一个“主动遗忘”和“技术版本管理”的机制。

这才是我从一个忘了无数次正则表达式的后端工程师,
一路摸爬滚打出来的生存之道。


01. 技术记忆的真相:不是懒,而是没用的太多

我们以为学完了就应该记住,于是拼命写笔记、做总结、背 API。
但问题不是记性差,而是——我们学得太多,忘得太正常

技术世界和学校教育最大的不同是:
这里没有统一教材,知识本身就是流动的。

今天你刷了一遍某个数据库性能调优,
两个月后业务场景变了,整个查询结构都不一样了。

你认真研究的 CI/CD 工具,三个月后已经被团队换成新的方案。

你当初花整整一下午研究的 YAML pipeline 写法,
只要半年没动,重新打开就像没写过一样。

而这,根本不是你的错。

脑科学也告诉我们:

人的大脑不会“永久记住”信息,
它更擅长处理频繁使用的知识、意义清晰的结构
其余的,都会被主动清除,以减少干扰。

所以,比起痛骂自己没记住,不如先承认这件事:

技术的遗忘,不是 bug,是 feature。


02. 那什么才是永不过时的技术“基础款”?

不是所有的知识都会过时。
我回头看,真正留下来、一直在用的,是这三类:

一类是长期稳定的经典基础。
比如时间复杂度,空间复杂度、HTTP 协议、SQL join 原理、排序算法、数据结构。
这些像是你的“技术肌肉”,不会因为框架变化就被淘汰。

第二类,是跨语言跨平台的通用模型和理念。
比如SOLID原则,高内聚低耦合,幂等,事务边界,延迟加载,限流,缓存击穿,幂等重试这些概念, 不还有一些不同的架构设计模式。 不管是用 Java 写后端,还是搞 DevOps,几乎都用得上。

第三类,是你亲自踩过坑的工程经验。
尤其是那些你真的被坑惨了、优化过、复盘过、做过总结的点。

比如我现在一看到数据库锁,就能自动联想到:
是不是有行锁 → 有没有慢查询 → 是不是高并发写入 → 要不要考虑 queue。
这是你花过痛苦去换来的知识,它已经和你脑海中的“问题模式”连上了。

这三类,才是值得用结构性方式长期保留的内容。

而那些只看过教程、没深度理解、很久没用的知识,
才是需要你建立“技术版本管理”机制来处理的。


03. 别再强记知识点:建立你的技术“版本管理”系统

技术不是静态的清单,而是一套不断演进的系统。

我们却常常用“静态储存”对抗“动态变化”:

  • 把所有学过的都存在 Notion,舍不得删

  • 笔记越积越多,翻也翻不动

  • 明明两年没用了的技术,还在纠结要不要补复习

结果反而形成“过载性焦虑”:
我们不是不知道,而是不知道“哪些还值得知道”。

我后来用了一个方法帮自己解压——做知识的版本管理

它大致包括三个动作:

1)主动标记:有生命周期的知识要设“过期提醒”
比如我学过 GitHub Action 的某种触发机制,三个月没用了,
我就会在知识库旁边标一句“Last used: 2024.12”。
超过 6 个月,我默认它“未验证有效”,就不再试图记住它。

2)统一入口:知识入口统一,不反复搬家
我用 Obsidian 管主知识,Jira Page 记团队用法,Github Wiki 留公共标准。
不再纠结“我到底在哪记过”,而是约定:某类信息就放在哪。

3)刻意遗忘:删掉无效笔记,留下场景提示词
我删掉了很多复制自文档的 API 说明,只留下一句话提示:
“这个 API 在 async job 中 retry 会有副作用,注意 side effect。”
这样我能在搜索项目相关关键词时快速回忆,而不是靠死记硬背。

关键是:别再试图把所有东西“记住”,
而是要让大脑只记得“如何重新找到”它。


04. 成长真正需要的,是“认知能力”的更新机制

忘记知识不可怕,怕的是忘了自己怎么理解过它。

我现在更关注的是:我能不能复原自己理解知识的方式。

不是只记结论,而是:我当时为什么要学这个? 我是怎么判断它有用的? 我踩过哪些坑、用过哪些验证方法?我是用什么逻辑判断 A 比 B 好的?

这才是属于你的“认知能力”。

举个例子,有段时间我们在做一个数据库 schema 的重构,
我忘记了某个索引怎么写,但我还记得:

  • 是因为查询慢,分析了 explain plan

  • 发现 where 子句中用了某个字段,但没命中索引

  • 所以加了覆盖索引,但要兼顾写性能

这些认知路径,即使我忘了索引语法,
我也知道下一次遇到类似问题,能怎么重新走一遍。

所以比“记得更多”更重要的是——
建立你自己的问题诊断方式、知识验证方法、判断模型。


结尾:忘记不可怕,可怕的是你没有机制去重建

我们都会忘。正则表达式我忘了不知道多次,现在还是会忘。
但我知道我该去哪翻、该用哪个场景、会踩什么坑。

我不再把遗忘当作失败,而是把它变成一个信号:
要么知识过期了,要么你还没找到那个属于你的“记忆路径”。

技术人不是靠记性,而是靠一套:

  • 能判断什么是值得保留的基础知识,

  • 能管理易逝技术的机制,

  • 能建立自己理解系统的认知能力。

这三件事,才是我们在技术世界长出根系的方式。
愿我们都能忘得轻松,学得安心。