S/L 大法 —— 平凡人的做事方法

博客和公众号改名了,改成了同一个。

这事儿值得说一下。

最早在网上写字儿,得从 06 年 QQ 空间算起。中二少年,为赋新词强说愁。

在其他少年努力花钱让 Q-ZONE 更炫时,我想办法让它不那么晃眼,别抢文字的风头。后来百度空间出来了,支持自定义样式(CSS)。不花钱,风格却有更大自由度,于是逐渐挪了过来。高中为此专门自学 CSS 。大学时的师兄据说因为我会 CSS 把我招进 团委网络部,又是一段经历;可惜后面一直做后端,基本再也没有做前端 。

然后专门开了一个新的百度空间叫『片言断章』放那段时间酸腐的 诗词,开了一个新浪博客写游戏,在辩论队搞了一个网易群博 …… 毕业前搞了一个 Octopress 。

然后微博来了,没那么多人写博客了;再往后是微信,然后公众号。潮流一波一波来了又走,每次都是狂欢;而我,别说写出个名堂,那点字数,对自己都没法交代。对了,后来我也开了公众号。

Octopress 托管在 Github pages 上,后来生成工具换成了 Hexo (插一句,如果你现在弄的话,推荐 Hugo),绑了自己的域名 https://jaycechant.info 。在主动关了 Q-ZONE,百度空间 服务被下线之后,这里是写字最多的地儿了。因为源码在自己手,别说 Github 很难关门,就算它关了 pages 服务,静态页面放哪不行,这儿写的东西,能一直留住。

这个内容最多的博客,叫 『Jayce 的技术博客』,直白得没有解释的需要。之所以这么叫,除了当初想名字时偷懒,可能还存在一点人设幻想,希望读者有清晰的主题预期,好吸引同好:这里 Geek 风写技术,那里文艺风写诗(彼时『片言断章』还在),这个语言活泼写游戏 …… 当然,事实证明想得太多,都是挖坑不填。

应该先尝试写好一个博客。如果有一天,某个主题的文章已经多到和原来的博客格格不入,让读者发生困扰了,这时还有余力,就可以考虑新开一个,相关主题都挪过去。文章没几篇,既没有形成自己的风格,也没有读者群体,瞎操心。过早优化 都是瞎折腾。

不过就算是专注于写技术,这名字也没提供任何信息量。

公众号的名字叫 『JayceIO』。 Jayce 是我名字,IO 是 Input / Ouput ,原意是 『以知识的输出促进输入』。当然,也可以事后诸葛地说,IO 像 1 和 0 ,IO 是致敬 Google I/O 的 『Innovation in Open』(开放中创新)。

公众号上只有 6 篇文章,而且都是旧文,没有一篇是专为公众号写的;就这样,排版就费了老大的劲,在 10 天冲刺拿到了原创认证之后,就泄了气,一停更就是一年。

写得这么少,懒,时间管理又差,当然是首要原因,得认。公众号出于它自身的考虑,功能做了很多限制,也给新手制造了一些难度。

如果早些年,发现自己这么不争气,大概会给自己定一系列目标,列个详细计划,自灌几碗鸡汤,打几针鸡血。短期内狂飙一波,然后无法坚持,慢慢松懈,甚至比原来更糟。不仅写博客这样,很多事情都是这样运动式反复 —— 码字只是困境的一个缩影。

这些年过去,开始跟自己和解,不再跟人性作对。不再简单地强迫自己,开始去思考:做这件事初衷是什么? 为什么没能做下去? 阻力来自外部还是内部? 是内心不愿意,还是害怕些什么?

问初衷,是看这件事在当下是否依然有价值。

阻力来自外部,那就想办法绕过它,降低它;绕不过,降不了,就跟价值比较一下,是否值得,是不是时机不对。

这些都相对容易理清。难测的是心魔。

如果潜意识不想做这件事,或者害怕些什么,靠鸡血也许可以勉力『坚持』着;但这种坚持,需要消耗额外的注意力,去不断提醒自己。时间已经够宝贵了,注意力则是比时间更宝贵的资源,人没办法一直保持清醒,而即使是清醒时也未必能一直保持专注。有一天你太累了,或者突如其来的意外打乱了计划,那脆弱的『坚持』就会不堪一击。

如果是喜欢做一件事,本身是不需要坚持的。想想那些在被窝里打灯看小说的日子,想想年少时半夜翻墙去游戏厅、去网吧。

玩过单机游戏的大概会知道 S/L 大法。

S/L 是 Save & Load 的缩写,就是存档 / 读档大法。在艰难的关卡、BOSS 之前存个档,如果输了或者结果不好,读档再来。甚至在一些随机事件之前存档,譬如一个抽奖事件,本来只有 1% 的机会可以得到最好的奖品,用了 S/L 之后,只要你愿意耗,理论上一定能拿到。有些游戏一个选择能影响后面很久远的结果,那就存很多个档,不覆盖旧档;发现选错了,总能读到一个做选择之前的。

做到这种程度,在游戏设计者眼里,大概算是作弊了(所以才会有些游戏只许存一个档,而且重要事件过后自动保存覆盖)。努力提升游玩水平,一口气通关的体验多好。如果不慎进了糟糕的剧情分支,那就重头再来嘛,设计者鼓励你多体验不同故事线。

可我游戏水平不高,又没有那么多时间一次次重头再来,只好用这种办法,尽量往希望体验的游戏结局靠拢。

生活与游戏有相似的地方。

我当然希望自己是个天选之子(难道你不曾想过?)。我也说过『长大要当科学家』,也曾烦恼过将来长大了应该报清华还是北大。新手村太容易,让我以为可以 一命、无伤、全成就收集、满分 拿到 Best Ending 。

然而世界服从正态分布,大多数人都是普通人,很快就卡关了。这时偷瞄一下周围的人,却有人遥遥领先,甚至已经通关——还很轻松的样子。

你身边也总能找到这些人,他站在了你无法想像路径的悬崖峭壁之上。

不,我没有强调悬崖的高度,我强调的是险,是无路可达。再高的山,只要给了路线,给了阶梯,山顶就是可以想像的,无论是笨鸟先飞,还是愚公移山。可他好像省略了过程,直接出现在无路峭壁顶上。你会想, 这种事情,我大概是做不来的。 我只会走,又不会飞。 大概是天赋的差异。

有些事情,我到了后来才慢慢懂得。

那些惊世的画作,看 X 光扫描,原来也是打了草稿,反复纠结,反复修改。

那些浑然天成,没有半分修改余地的句子,等到公布作者原稿,原来也是在你我都能买到的普通稿纸上,涂涂抹抹出来的。

那些功能无比强大的开源软件,如果你愿意翻看提交历史,原来也是这么一行一行改了又改,偶尔重写把某块推倒重来,从很可能只是原作者的一时兴起,变成了今天的庞然大物。

……

他们从来就不是突然出现在崖顶。只是走过的路,他们反反复复试错的痕迹,被隐去了。

大多数人无意隐藏这点,只是他们没有机会说起,你也没有机会问,没有近距离去看。

这是生活中的 S/L 大法。

Q: 写博客初衷是什么?

A: 记录
后来可能逐渐冒出诸如 与人交流、博得名气 等等越来越不靠谱的想法。
但最初,只是想记录走过的路,给未来的自己,提供一个坐标。
这个出发点,现在仍然具有意义。(或者说,随着儿子的出生,更有意义了!)

Q: 为什么没能写下去?阻力在外部还是内部?

A: 初期遇到困难,容易归结为外因。譬如说工作忙,譬如说工具不好用。但当把这些外因都改善乃至解决掉之后,事情仍然僵持,我就知道原因不在外部,起码不是关键。

Q: 内心在抗拒记录吗?还是在害怕什么?

我不抗拒记录。在回顾过去的时候,还往往遗憾当时做的记录太少。
准确地说,我在焦虑。

我在害怕自己写得不够好。明明只是写给自己看的记录,却过早萌生了杂念。明明并没有什么读者,却总觉得有眼睛在看着我,有着作者的包袱。

我是一个缺乏安全感的人,总是感觉只有这一次尝试机会,而我很可能会把事情搞砸。于是总是处在一种『做好万无一失准备』的状态中——仿佛只要不轻易地开始,就没有人可以宣布我失败。

具体到生活中,就会表现为 完美主义、强迫症、拖延症。出门前要数几次随身物品;在重要事件前很可能会失眠;会梦到人生中经历过的人生节点,然后在梦里把它搞砸了——最常见的是考试,醒来之后庆幸自己不用重新经历。

具体到码字上,明明还在写,却忍不住冒出想象中读者的评价,去打断作为作者的思路。害怕『半成品』展现在他人面前,害怕会因此自我降低标准,或者让大家觉得你水平不过如此;但另一方面,也不知道『成品』该是什么样子,如果成果一直漂浮不落地,就如同从来没有过成果,大家、以及未来的自己,也无从去判断,没有记录,也就没有了进步的基线(Baseline)。

公众号的规则(每天只能发一篇,发了之后不允许修改)强化了只有一次机会的恐惧。这也是为什么虽然还是很少, Github pages 还是有几十篇水文,而公众号发旧文勉强坚持到拿到原创认证就放弃了。

码字不过是烦恼的一个缩影。

从不开始确实躲开了失败——但机会有其时效,成功的可能也随之流逝。

我并非一开始就想明白这些,而是过去的十多年,经历了一些事情,发现自己有轻微的强迫症,而且很容易焦虑。
中间经历过各种与自己、与父母、与爱人的对话,有过冲突、不解、歇斯底里,从对抗、到尝试接纳、和解。其中滋味,不足为外人道,只道天凉好个秋。特别感谢一直陪伴我多年的女友——现在是妻子和孩子他妈,在最艰难的时候,都没有放弃过我。

与其简单粗暴地当自己的暴君,下达永远不可能完成的 KPI,不如好好跟自己谈谈,对症下药。

  • 尽量在固定时间抽空写一小段,先不要求多少,养成习惯。
  • 用 Markdown 写原稿,用排版插件自动排版,不搞花里胡哨,不增加排版负担。
  • 既然原稿是纯文本,版本控制必须有,写乱了甚至全删了都可以读档重来。
  • 先发 Github pages 再转到公众号,给自己修订的机会。
  • 改名

既然害怕搞砸,与其跟自己对抗,不如在技术手段上让自己不会搞砸——起码不可能全部搞砸。S/L 大法任意折腾的资本,在于那个存档。感谢 git ,起码在电子文档上,给了我们 S/L 大法的利器。

技术上做到了,名字也很重要。名不正则言不顺,言不顺则事不成。 有句话说,命名是程序员最头疼的两件事之一(变量、函数、类 等等,都要命名)。我认为这不是一句玩笑——命名是概念模型的外在体现,命名不对,意味着还没想透彻。

我花了一些时间梳理想法,也和朋友讨论过。一开始想就叫 『S/L 大法』,但是在很多地方,斜杠都是一个麻烦。最后定了现在的名字 『存档 Save & Load』。

  • 首先明确了博客的性质, 这是我的一份存档 ,是回头看时的路标。不再以内容区分。无论是技术上的记录,让我不用解决重复的问题;还是生活记录和感悟,让我日后记得。在存档的意义上,并无差别。

  • 其次用博客名提醒自己, 做事有存档,搞砸了不过回到上一个存档 ,不是清零重来,不必焦虑。

  • 第三层意思,是希望以此为契机,摸索出一套易于遵循的做事方法,让像我这样资质平庸而又焦虑的人,减轻注意力负担——包括但不限于码字和写代码——姑且称之为『S/L 法』。以目前我的理解,可能会以纯文本文档记录 + 版本控制 作为技术基础,日后可以尝试梳理这方面的内容。

既然我在这个问题上纠结过思考过, 以蚌之痛,育彼珍珠 ,能结出一些成果当然最好。 不过第三点只是一个延伸,是更长远的事情,留个可能性,不强求。没什么野心,不要想太多,单纯的记录,反而更有可能做好。

希望以博客为起点,我能在做不同的事情上,掌握(各种意义上)存档的技巧,出错了读档重来。时间和注意力放在『新关卡』的尝试上,胜过耗在对清零的恐惧上。既然时间不多,能前进一点是一点。


P.S. 此文发端于 2019 年 3 月 5 日博客改名前,结果后面因为 赶项目、娃早产、家里装修,一直拖到现在。如果你读完了,你会知道,我并不责备自己,而是感激自己还能继续写完——用正面情绪激励,而非用负面情绪惩罚。我并非思路清晰了,才开始落笔;恰恰是行文至此,思路才算逐渐清晰,后续不排除继续修改,或另起一文。

P.S. 2 再次感谢我的爱人一直以来的理解和陪伴。她其实是个容易不耐烦的暴脾气,正因如此,在那些艰难时刻超乎寻常人的耐心,显得更加难能可贵。


知识共享 “署名-非商业性使用-禁止演绎” 4.0 (CC BY-NC-ND 4.0)”许可协议
本文为本人原创,采用知识共享 “署名-非商业性使用-禁止演绎” 4.0 (CC BY-NC-ND 4.0)”许可协议进行许可。
本作品可自由复制、传播。如有以上需要,请留言告知,在文章开头明显位置加上署名(Jayce Chant)、原链接及许可协议信息,原文引用(不可发布基于本作品的二次创作),不得用于商业用途。谢谢合作。
请点击查看协议的中文摘要。