读技术文章最常见的问题,不是看不懂,而是看完之后什么都没留下。
我以前读技术文章的习惯,和很多人差不多。
看到一篇标题不错的文章,先收藏;哪天想起来了,再打开看一遍;读的时候感觉自己好像懂了,合上页面之后,脑子里只剩一个很模糊的印象:好像讲了个挺厉害的架构。
后来我慢慢意识到,问题不在文章本身,而在我的读法。
我以前的读法更像”浏览”,不是”解读”。看了很多,真正留下来的却不多。直到后来,我开始强迫自己每次精读完一篇文章,都至少产出一点东西,情况才慢慢变了。
现在我读技术文章,大致会按 6 个步骤来。它不算复杂,也不是什么正式方法论,但对我来说很有效。至少它解决了一个很实际的问题:读完之后,我能复述文章在讲什么,也知道哪些东西值得带回到自己的工作里。
第一步:先判断这篇文章值不值得精读
我现在不会一上来就从第一段看到最后一段。
通常我会先花 5 分钟,快速回答 4 个问题:
- 这篇文章是谁写的?
- 它是什么时候发布的?
- 它到底在解决什么问题?
- 这个问题和我现在的工作有没有关系?
这一步看起来很简单,但能帮我过滤掉很多其实不值得投入精力的内容。
比如一篇文章写得很热闹,讲了一堆架构升级、系统优化、全球部署,但如果它讨论的问题和你当下的工作完全不相关,那你大概率只是读得很兴奋,转头就忘。
再比如,有些技术文章发布时间已经很早了,里面的方案在当时很先进,但今天再看,可能只是了解历史,不适合直接借鉴。
所以我现在更在意的,不是”这篇文章火不火”,而是”它跟我有没有关系”。
如果这 4 个问题里有两个都答不上来,我通常就不会继续精读了。
第二步:先抓住文章的主干,而不是细节
一篇技术文章真正值得记住的东西,通常没有那么多。
很多文章篇幅很长,里面会有背景介绍、组织演进、旧方案问题、架构图、指标结果、上线过程、经验总结。如果从头到尾平均用力,很容易读完之后只记住一些零碎概念。
所以我现在会先抓 3 个东西:
- 他们遇到了什么问题
- 他们做了什么关键决策
- 最后结果怎么样
只要这三件事抓到了,文章的主干基本就出来了。
前阵子我读了 bytebytego 转发的一篇 DoorDash 文章,讲他们怎么把新国家上线时间压到一周内。我点进去的时候,第一反应不是”这个团队真强”,而是想知道:他们到底改了哪一层系统,才能把上线时间从数月压到一周。
如果按我现在的习惯,我会先把它整理成下面这样:
问题:国家相关逻辑硬编码,上线新国家需要数月决策:改成模块化架构,拆成编排器、工作流和步骤模块结果:波多黎各 1 周,新西兰几乎零开发就这三行,已经比抄一大段原文更接近”真正读懂了”。
因为你不是在重复作者的话,而是在提炼作者真正想表达的内容。
第三步:把架构图翻译成自己能复述的话
很多技术文章最容易让人产生错觉的地方,就是架构图。
看图的时候很容易觉得自己懂了,因为每个框、每条箭头都好像能看明白;但真让你合上页面重新讲一遍,大多数时候又讲不出来。
所以我读到架构部分时,通常不会只盯着原图看。我会逼自己做一件事:把它画成一个更简化的版本,或者至少用自己的话复述一遍数据是怎么流动的。
还是拿 DoorDash 的例子来说,如果我把它重新画成最简版,大概会长这样:
请求 → [编排器] → [工作流定义] → [步骤模块 1, 2, 3...] ↓ [Status Map 统一状态]原文里的信息可能比这复杂很多,但如果连这个程度的简化版都画不出来,那往往说明我还没有真正理解它。
这一步我还会继续问自己几个问题:
- 每个关键组件到底在解决什么问题?
- 这种拆法的代价是什么?
- 如果换成我来设计,会不会做出一样的取舍?
- 这个方案和我现在维护的系统,到底差在哪?
很多时候,真正有价值的收获不是作者写出来的内容,而是你在对比自己系统时产生的判断。
第四步:不要只看作者说了什么,也要看他没说什么
技术文章天然会省略很多东西。
这不是说作者故意藏着掖着,而是因为一篇文章能呈现的,只是最终能讲清楚、也适合公开讲的那部分内容。至于中间踩过什么坑、试过哪些失败方案、花了多少成本、做了哪些妥协,往往不会写得那么完整。
所以我现在读文章时,会刻意做一点批判性思考。
我最常问自己的几个问题是:
- 作者省略了哪些约束?
- 这个方案的缺点是什么?
- 如果规模缩小 10 倍,它是不是过度设计?
- 如果规模放大 10 倍,它还能不能撑住?
- 这个思路在我的团队里能不能落地?
继续看 DoorDash 那篇文章,我当时就会顺手记下这些:
作者没说什么:- 这次重构到底投入了多少人月?- 迁移过程中有没有出现业务中断?
可能的代价:- 小团队照搬会很重- 模块和配置一多,管理复杂度会上升
对我的意义:- 我们不做跨国上线,这个场景暂时用不上- 但“状态集中管理”这个思路值得借鉴这种笔记的价值,不在于你是否得出了一个标准答案,而在于你开始把文章从”别人家的成功案例”转成”我该怎么判断它”。
第五步:逼自己写一份简短笔记
我后来发现,判断一篇文章到底有没有读懂,最简单的办法不是继续看第二遍,而是看自己能不能写出来。
所以我现在读完一篇值得精读的文章,通常都会留一份很短的笔记,不求完整,但至少会包含下面 5 个部分:
- 一句话总结
- 背景问题
- 关键设计
- 我的收获
- 待验证的问题
比如我自己的笔记,经常会写成这样:
## 一句话总结
DoorDash 用模块化架构,把新国家上线时间从数月缩短到一周。
## 我的收获
1. 状态集中管理比分散在多个表里更稳2. 编排器应该尽量“笨”一点,只负责路由,不塞业务逻辑
## 待验证
- 我们的订单流程有没有必要继续拆模块?- 当前状态跟踪是不是太分散了?写成这样已经够了。
重点不是把原文重新抄一遍,而是用你自己的语言,留下真正进入你脑子的那部分东西。
如果写不出来,通常说明理解还停留在”看过了”。
第六步:把洞察变成一个后续动作
以前我读完文章,最常见的结束方式就是:看完,觉得不错,然后关掉页面。
后来我发现,这种读法最大的问题是,文章里的洞察没有进入现实工作流。
所以现在我会在最后多做一步:给这篇文章配一个很小的后续动作。
不需要很大,哪怕只是下面这几种都可以:
□ 下周试一个小改动□ 找时间补查一个相关技术点□ 在团队里分享一个值得讨论的设计□ 先把一个想法放进 backlog因为只要没有后续动作,这次阅读带来的印象通常很快就会淡掉。
而一旦有了动作,哪怕只是很小的动作,这篇文章就开始和你的实际工作发生关系了。
不是每篇文章都值得走完整个流程
这套方法还有一个前提:不要对每篇文章都这么读。
我自己的习惯大概是,十篇里七八篇只做快速扫描;一两篇会认真做笔记;真正值得完整走完 6 步、最后还落到行动上的,可能一个月也碰不到几篇。
这很正常。
技术信息太多了,真正稀缺的不是文章,而是你的注意力。
与其把每篇文章都读得很累,不如把精力集中在那些和你当前工作真正相关、而且确实可能影响你判断的内容上。
最后
我现在越来越觉得,读技术文章这件事,关键不在于读了多少,而在于有没有把其中一部分变成自己的判断。
如果只是收藏、划线、看完点个赞,那你收集到的更多只是”我看过”的感觉。
真正有用的,是你能不能说清楚:
- 这篇文章解决了什么问题
- 它为什么这么设计
- 这个思路对我有没有用
- 我接下来打算做点什么
能回答这几个问题,文章才算真的读进去了。
下次再遇到一篇看起来很厉害的技术文章,不妨别急着一路往下刷。先停 5 分钟,判断它值不值得你认真读;如果值得,就把它拆开,写下来,再带一点东西回到自己的工作里。
这样读过的文章,留得更久,也更有用。