全部文章

职场之锤

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

“我真不是不努力,但一天下来,怎么总觉得没做成什么事?”

如果你也有这种感受,可能不是你不够专注,而是你太多线程了。

我们总以为效率低是拖延,其实更多时候,是认知资源在任务切换时被悄悄耗尽。和电脑的线程切换一样,我们的大脑也有“上下文切换成本”(context switch cost)。一次开会、一个 Slack 弹窗、一个被打断的思路,都会像 CPU 的线程切换那样——清空缓存、保存上下文、恢复状态,再进入新任务。而这一连串过程,会持续消耗认知能量,让我们一天忙忙碌碌却毫无产出感。

这不是做得不够多,而是切换得太频繁。


01. 多线程大脑的切换开销

在工程世界里,线程切换是有代价的。CPU 在多个线程之间切换时,需要做上下文保存与恢复,中断执行流,再重新加载指令与数据。即便这些动作发生得极快,累计起来仍然会带来可观的性能损耗。

同样地,我们在处理工作任务时的多线程行为——比如写一会代码、刷一下消息、回个邮件、进个会、再回来继续 debug——就是把自己当成了上下文频繁切换的处理器。

问题是,人脑没有那么强的调度机制。你并不会像操作系统那样精准记录状态,而是需要靠“重新想一遍我刚才做到哪儿了”来手动恢复。而这个恢复过程,本质上是一种认知重构。

这就是切换上下文带来的“认知疲劳”(cognitive fatigue)。你的注意力每次切换,都会在新旧任务之间产生摩擦。不是精力不足,而是被分散得太彻底。


02. 拖延不是懒,是认知残留

很多程序员自我怀疑的那句“我是不是太拖延了”,其实背后往往是一种注意力残留(attention residue)。这是心理学家 Sophie Leroy 提出的概念:当我们从一个任务切到另一个时,注意力并不会立刻完成转移,而是部分留在原任务上,造成新任务处理时的效率打折。

比如,你刚看完一个需求文档,准备切去写代码,但大脑其实还在消化刚才看到的“为什么要做这个”。你以为你已经进入了执行状态,其实你的认知还卡在分析模式上。

久而久之,这种卡顿感就变成了“我好像总是开始得很慢”、“为什么明明有时间,却总做不进去”。我们误以为是拖延,结果越着急越焦虑,越焦虑越没效率,陷入死循环。


03. 单线程任务模式:拯救注意力的解法

我们不可能彻底屏蔽干扰,但可以主动建立单线程任务模式来减轻切换惩罚。

它的核心并不是强迫自己只做一件事,而是在每一段时间里只允许自己拥有一个主要上下文

具体做法包括:

  • 一天只设定3个关键推进事项,避免“今天我要完成8件事”的虚假规划;
  • 用上下文一致性安排日程,比如上午只处理需求类任务,下午只写代码;
  • 安排预留时间处理零碎请求,把响应式任务集中处理,而不是随时打断;
  • 设定任务缓冲段,避免任务紧接任务,给认知预热与冷却的空间。

这些策略并不是为了把事做完,而是为了让注意力在正确的位置上生根


04.《The Twelve Week Year》的思路也值得一试

很多人对年度目标、季度复盘早就麻木了。与其一年立一次大目标,不如每12周做一次小冲刺。

《The Twelve Week Year》这本书提出了一个简单又高效的思维模型:把一年压缩成十二周,每个周期就是一次完整的“目标设定 → 行动 → 回顾”闭环。

它的价值不但在于压缩目标范围,让我们更清晰当下最重要的事,而且能够缩短反馈周期,让我们更快看到结果,从而维持动力。更进一步的是强化执行优先的思维,让计划真正落地,不被打断稀释。

在我们的工作中,这种方法特别适合面对那些没有明确截止时间但很重要的任务,比如技术提升、知识梳理、内部工具优化等,也就是那些最容易被多线程打断、被日常琐事掩埋的目标。


05. 我们需要的不是更多努力,是更少切换

很多职场人其实已经够努力了。我们缺的,不是更卷,而是更聚焦。

想象一下你写代码时的状态:进入状态前总要先看一遍旧代码,理一遍逻辑,再打开 IDE 调试。这个过程里,每一次打断——开会、通知、Slack、同事敲你——都会让你重新开始一遍。你不是不努力,而是你的线程被抢占太多次。

用工程的语言说,我们要减少上下文切换,提高 cache 命中率,延长线程运行时间段。用人的语言说,我们要给自己搭建稳定的注意力场域,让思考长出来

别再用拖延给自己贴标签,也别再相信忙得团团转就是效率。真正的高效,是让自己从多线程混乱中逃脱,重新找到那个专注的自己


结尾的一点提醒

有些事我们不得不多线程,比如当 TL,要调度多个项目,要回应多个干扰。但即便如此,我们仍然可以用结构化方式保护认知空间:把“切换任务”也当成任务,把“中断处理”也放进计划里,安排缓冲时间,减少认知跳跃。

我们不是机器,无法像线程调度器那样精确无误,但我们可以设计更适合人脑运行的工作节奏。

别再责怪自己怎么又拖延了,那不是懒,是系统设计出了问题。