Here in my place and time
And here in my own skin
I can finally beginArcade Fire @ Deep Blue
间接控制行为
当我说“我要做什么事”,我实际需要做的是让做这件事变得更轻松。因为人是不能直接控制自己的行为的(归根结底行为不是一个东西),能做的只有通过行动影响构成行为的要素。
B.J. Fogg(20201)这样描述构成行为的要素:,这里B代表行为(Behavior)、M代表动机(Motivation)、A代表能力(Ability)、P代表提示(Prompt)。动机和能力的水平在一段时间内可以认为是恒定的(动机不用多说,能力则需要通过长时间的重复来提升),那么我们能直接干预的就是提示。让与我们想要做的事情相关的事物、催促我们去执行的提示反复出现在视野里。让自己意识到有待完成的任务永远是第一步。
人脑是不够可靠的。脑子里似乎思考得完善的事情常常难以化为通顺的话语。记忆完全可能模糊得与实际情况大相径庭——这也包含在记忆里美化自己的情况。就像让大语言模型做单次的复杂推导,它很可能会出现幻觉,而让它步步为营记录下思考推进的成果,结果则会可靠很多。我不好说人脑和大模型是否在本质上相像,但它们似乎的确都是以复杂、模糊、不可靠的东西尽力拼凑似乎可靠的结果,用复杂的多功能、多参数、带有随机性的复杂系统来模拟给予固定输入会有固定输出的特化的专家系统。用建制来达成个体做不到的伟业。人还是需要一些形式化的东西,需要外部的记录作为标定,需要凭自己的意志来活得机械一些。
短暂的光芒
soles occidere et redire possunt:
nobis, cum semel occidit brevis lux,
nox est perpetua una dormienda.Catullus @ Carmen 5
太阳可以落下又再次升起,
但对我们来说,一旦这短暂的光芒消没,
就是一睡不醒的永恒长夜。
所谓“正常”就像卡图卢斯写的爱情一样,是稍纵即逝的东西。“正常”不是常态,正如秩序并非宇宙的常态——混乱才是。不要不切实际地期待自己保持理性、高效,因为这根本就是不可能的。接受这一点,接受不完美的自己,接受“不完整”本身就是人性的一部分,是好好爱自己的前提。活成自己。
也不要觉得自己浪费了太多时间。没必要用“还是有一些收获的”来安慰自己,没有收获也是正常的,浪费是我们度过时间的常态。学会接纳一种旁观者的视角,接受永恒的不完美和有限的能动性,这是运用好主观能动性的大前提。认清现实。
这也包括降低对“正常”的期待。安排和执行时尽量为可能发生的特殊情况留足余地,不要对将来的自己抱有太多期待而把事情留到明天。健康不是常态;一个“正常人”并不比残疾人或者常年患病的人更健康,就像科研人员并不比打螺丝的工人更正常。想象自己明天就出事故,想象自己确诊绝症时日无多,我应该如何继续生活?除了死亡,再无其他严肃命题2。作为自然现象的生命也是短暂的光芒。Assume nothing.
对他人也该期待更少些。不要假设别人能够理解自己,解释不嫌重复,不嫌事无巨细。重复若干次以保证信息成功传达、建立了基础的基于理性的互相理解,这和婆婆妈妈还是有本质区别的,有正常智力的人应当能够认识到其差异。不要轻易放弃理解和被理解,在这前提之上尽量不要太麻烦别人吧。不要强求。
就像理性并非与感性对立而是对感性的整理一样3,所谓“正常”只是稍经整理的本性混乱的自我。我们依旧向往正常、向往理性,这没有关系,只是既然认识到了这一点,就应该明白要得到理性和正常首先得拥抱感性和混乱的自我。还是活成自己和爱自己吧。对看起来不够完美的地方要做的不是清除,而是融解。
自我实现与自我的消融
想得越多,做得越少。自我越大,自己感觉似乎不可割舍的、用于定义自己的东西越多,自己的灵魂就越稀薄,自己真正能专注达成的东西就更少。称得上伟大的个体无不放弃了一些可以姑且称作琐碎的东西。人生短暂、时间有限、意志薄弱,这些都是可以视作不可逾越的障碍。也可以说期待越少失望越少吧,或者说爱自己也蕴含了不要溺爱自己,接受存在没必要做的事、更应该做的事、没法兼顾好的事、自己能力边界以外的事,然后过张弛有度而有目的的生活,从心所欲不逾矩。要活得精彩却无用,还是放弃一些东西来换取更高、更深的追求,各人有各人的选择。
Italiam non sponte sequor.
Aeneid 4.361
我逐往意大利,其实身不由己。
老掉牙一点的说法是适当的压力可以促使人成长。
活得有目标
Don’t waste what remains of your life thinking about other people, unless you do so with reference to the welfare of the state—I mean wondering what so-and-so is doing and why, or what he’s saying, what he’s thinking, what his designs are, and so on, which distracts you from paying attention to your own command center. You have to exclude everything purposeless and random from the sequence of your thoughts, but especially and above all anything prompted by idle curiosity or ill will. You must get into the habit of restricting your thoughts to those that are such that if you were suddenly asked, “What are you thinking?” you could answer, frankly and without hesitation, “X” or “Y,” and it would immediately be clear from your reply that all your thoughts are guileless and kindly, the thoughts of a sociable creature who disdains pleasurable or any kind of self-indulgent fantasies and is untouched by rivalry, malice, suspicion, or anything else that one would blush to admit one had in mind.
Marcus Aurelius @ Meditations § 3.4 (Trans. Robin Waterfield)
考虑太多他人的事情会妨碍好好爱自己。除非这是必要的(比如说,不如此让你的良心不安),除非这会有更高层面或更长远的好处,不要考虑别人所思所言所行。世上存在一些需要你的事情(即使不是非你不可),而这显然不包括替别人考虑周到他们自己的问题。放下助人情节,接受他人命运。活得更有目标一些,奥勒留提到衡量标准之一是想象自己被问及在做什么时可以自信大方地答上来。
Move fast, break things / Festina lente
比较通用的做法是,对于想要达成的目标先做大致计划,然后在具体执行时尽量不去思考可行性、意义等问题而专注于快速推进进度(把自己当成机器人),隔适当时间进行阶段性的反思来修正前进方向。一条路走到黑当然会出问题,而时刻想着保证最正确的方向只会导致无法出发。总之先跑起来再灵活调整,抢占先机然后快速迭代。在战略层面上尽量延迟决策,收集更充分的信息来优化前进方向;在战术上则果断坚决大胆地尝试和执行,要么能获取更多信息,要么能推进进度,只要战略没有太大偏差,总是利大于弊的。这是快中有慢。
但还需戒骄戒躁。具体执行上虽然要快,但不是像追求指标一样以完事就行的心态糊弄自己,不可丢了实事求是的本色。做太乐观的想象、在计划上天马行空也是大忌。应当脚踏实地、按部就班,以长远看来能够达成更多为目标。这是慢中有快,也是 sub specie aeternitatis,在永恒的视角下行动。
一切的前提还是对自己当下在做什么有完整的认识。时刻留意自己实际在做的事情和自己宣称在做或要做的事情之间有多大偏差。比如说,如果我要休息,那么我需要的就是结结实实地什么都不做,而不是到社交媒体上随波逐流,实际浪费了精力和时间。做你原本就想做的事情。计划和执行需要定力,临到执行了突然改变计划的情况应当避免——这不否定随机应变的价值,但一时的想法可能很多而未经沉淀,其必要性未经检验——真正重要的东西、真正需要、有必要完成的事情,会以这样那样的形式反复出现在你面前,反复提示你。如果我已经有很多这样的事情要做(事实上就是有的),那么我应当拒绝当下的新奇想法,依然像机器人一样执行本来要做的事情,在达成一定的进度后再来审视已经做了的事情和先前冒出来的想法。
不是所有反复出现的提示都蕴含着需要完成的事情:这个时代有可怕的信息推荐系统,能够轻易夺走你的注意力和时间。一个有效的基本取向是默认拒绝所有推荐给你的信息、提示,直到它多次出现才把它纳入考虑。
快与慢的哲学就是矛盾的哲学。很多时候当我们想要追求某样东西,看似直接的途径其实无法带我们到达目的地。这就是为什么我们要慢慢地加快脚步。
按部就班
混乱的对立面是秩序。秩序一词究其词源就是排列好顺序。在计划和执行的过程中,应当避免混乱,避免想一出是一出的情况,避免搞错重点;这就需要给事项好好排序。当然,计划得太死以致失去灵活性也是不理想的情况。要如何中和灵活和有序,取得动与静的平衡呢?
前面已经提到,一种好用的做法是执行时少想快做,计划和决策时多思考而慢慢来。但那还是假设了决策端对执行端的主宰,如果我们以自下而上的视角考虑呢?执行端要如何影响决策端,如何保证执行的过程中保持思考而不过度思考以至效率低下?
我的解答是:考虑当前正在做的事、下一件要做的事、下下件要做的事。时刻把这些概念挂在心头,随时修正;在下下件要做的事情之后要做什么,尽量不去想。心中记挂的“N、N+1、N+2”可以有多层,比如说可以有按事项来划分的,也可以有一件事情的不同步骤,又或者干脆以时间为单位的今天、明天、后天,又或者大到生涯规划的这一步、下一步、下下步。考虑到“N+2”似乎大多数时候真的足够了,在阶段性总结和做计划的时候暂时放弃效率而思考更多就好。就像,开车在路上正常行驶时在正前方若只留意前车的动态会有一定风险,在此之上如果再留心前车的前车的情况,对用于决策的已知信息而言就是质变——看得远一点,但不远到会分散对当下最紧迫事情的注意力。
够用的短视
There is no doubt that the holy grail of efficiency leads to abuse. Programmers waste enormous amounts of time thinking about, or worrying about, the speed of noncritical parts of their programs, and these attempts at efficiency actually have a strong negative impact when debugging and maintenance are considered. We should forget about small efficiencies, say about 97% of the time: premature optimization is the root of all evil.
Yet we should not pass up our opportunities in that critical 3%. A good programmer will not be lulled into complacency by such reasoning, he will be wise to look carefully at the critical code; but only after that code has been identified.
Structured Programming with go to Statements (Knuth, 1974), with bold added for emphasis (Cited from Effectiviology)
狂热追求效率是会上瘾的。很多程序员浪费数不清的时间思考和关注自己程序里不关键的次要部分的运行速度,可是从调试和维护的角度考虑,这种尝试提高效率的行为其实会造成很大的负面影响。大约 97% 的场合我们都应该忽略这种微不可察的效率提升:过早优化是万恶之源。
但我们也不能错过剩下 3% 情况里的机遇。一名优秀的程序员不会因为理解了这个道理而安于现状,他会保持机敏仔细研究关键部分的代码;但这一定是在分辨清楚到底哪些代码属于关键部分之后的事情。
世间的大道理总会说要看长远点、警惕短视。但我觉得很多时候如果我们看不清远处就不要瞎看了,乱脑补想太多不叫目光长远,专注于眼下能够确定有用的事情才有最佳的长远利益。同样地,我们可以推导出延迟决策的必要性。
这种短视和对眼前事情的专注等同于追求局部最优吗?是也不是,这取决于我们如何理解“最优”。把不重要的细节做到极致,这种雕花是缺少意义的。在微观上更应该追求的是进度上的最优吧,积攒更多的成果,有更多的资本可供宏观上的延迟决策来挥霍。
就像“想到就做”很多时候已经是比较高效的做法一样,短期利益常常已经是可能获取的利益中位于中上级别的。更重要的是短期获得的利益可以化为投入再生产的资本,通过延后避免的短期损失可以给人更充足的余地来弥补和挽回长期损失。力量是贪婪的——不如说贪婪本身就是力量(ipsa avaritia potestas est)。
似乎看得很远也追求了短期效益但实际收获寥寥的例子如父母给孩子报的花样百出的培训班,其他冲动之下进行的大宗消费。很多新奇或流行一时的事情会打着长远有益的旗号出现,我们还是应该从永恒的视角辨认事物的短命性,更加专注于真正长远看来有益的事情。活到成人了,还是有比较充分的社会经验来做一些判断的。
You ain’t gonna need it (YAGNI): “Always implement things when you actually need them, never when you just foresee that you need them.”
倒着做计划
当我自问今天要做什么,我往往会列出很多而最后只能达成一两项。即使我考虑每样事情要做的时间,试着留出余地,至今为止的尝试也多是失败的。我想归根结底,做计划就不该是从当下出发来考虑安排,而应该从未来的某个时间节点,从事情已经完成的模样来倒推应该在什么时候做些什么。真正拆分工作、塞到时间表里,有点像甘特图的思路。
把事情需要花费的时间看得更不可控,留足应对意外情况的时间,然后从期待这事完成的时间往前倒推。上班需要几点到、路上需要花多少时间、留多少时间应对紧急情况,考虑好这些就能知道最晚需要几点出发。再考虑好出发前要做的事,花多长时间洗漱、吃早餐,就能倒推出最晚几点必须起床。看看自己晚上正常情况下能够睡多久、睡得最多的情况是睡多久、睡前可能翻滚多久无法入睡,就能倒推出最晚需要几点爬上床。这些事情花费的时间都是可以通过统计预测的:睡觉可以带手环,上班可以开个导航看预估时间和实际花费时间。对于第一次做无法预测的事情,一方面可以通过(活了这么多年的)经验做些初步预估,一方面可以做pilot study,同时为不确定性留好充足的应对时间。以我自己的体验而言,这样一天安排的事情绝对会变少了,但时间却似乎越做越多,似乎这就是张弛有度的生活方式。
其实这应该是常识一般的最佳实践?但我此前真是对这样的做法毫无意识。虽然能意识到所谓的“deadline是第一生产力”,但没有理解其本质是把结束时间看作更首要的东西。未必是考虑事情的结束——有的事情永远不会结束——考虑一天的结束、一个月、一年的结束也行,想想在这之前要安排什么事情。从将来往现在,考虑重要的时间节点。
也许应该说,做计划时(或者说战略上)要在时间轴上从后往前考虑、把要做的事按时间倒序加入安排,执行时(或者说战术上)则要立足于现在,如前文所说的,考虑当前做的事、下一件事和下下件事。
以预计结束时间为出发点,也许与以希望达成的目标为出发点有重合。用各种事情填满时间,就像完成分解的事项来填满进度条。以目标为出发点,考虑其前提和前提的前提,一路推导到眼下可以做的事、此刻做什么事可以推进进度。
脚注
Fogg, B.J. (2020) Tiny Habits.↩︎
https://www.zhihu.com/question/660390375/answer/3547434226↩︎
https://www.zhihu.com/question/23169298/answer/3574190079↩︎