抽屉最里头,摸出本旧习题集。纸边卷得跟浪花儿似的,泛黄,透着股陈茶泡透了的味儿。封皮上的字,早让手指头磨没了影儿。扉页上那句“参考答案附后”,当年瞅见的时候,嘿,心里那块石头算是落了地。那时候死磕题目,真没怕过题多绕。怕什么?怕翻到最后一页,选项字母跟自个儿对不上。错一个,行。错俩,前面熬的大夜、掉的头发,全喂了狗。咱们这人吧,天生爱往书后头找退路。总觉得只要背面那行对上了,前面折腾得再狠,也算没白忙活。道理是这么个道理。可现在回过头看,当年那点死磕答案的劲儿,说白了,就是自己哄自己。
后来才咂摸出味儿来。好多事儿,压根没地儿贴“参考答案”。毕业往哪座城市跑。头一回拍桌子辞职。甚至某个大半夜,突然不想再硬挤笑脸陪谁瞎扯。人呐,总爱到处打听。想从别人嘴里扒拉出一套“标准流程”,指望照搬过去,人生“啪”地弹出个“成功”弹窗。现实呢?现实连个报错提示都懒得给。就是干耗着。或者干脆甩你一脑子乱码。怕犯错,说白了就是心里发虚。总觉得步子踩得够标准,脚下就不会踩空。可真是这样吗?未必。有时候太按套路出牌,反而把自己框死。生活这玩意儿,本来就是张白纸,哪来的标准答案供你挨个核对?
那本Visual Basic习题集,里头全是选择题、填空题,还有补全代码。老编排版,图的就是个实在:课时不够,只能靠刷题硬补。VB这语言,脾气倔得很。少敲个分号,程序直接罢工。可人,哪是台冷冰冰的编译器?咱们很多时候,变量名还没想利索,就慌慌张张把破事儿往里塞。逻辑一跑偏,第一反应不是回头查查自个儿哪儿出了岔子。反倒怪环境不对,怪时机没到。甚至干脆把眼前这段日子,全用注释符号框起来。指望睡一觉,明天重启。说实话,这种“注释掉明天再战”的毛病,我最近也常犯。可日子,哪能暂停键一按就跳过?bug堆多了,迟早得自己蹲下来,一个个去填。
前阵子工作撞了南墙。死磕一个找不出毛病的bug。盯了快三个钟头,屏幕上那排红波浪线,越看越像这些年跟人打交道的方式。总琢磨着,按规矩输入正确指令,盼着对方给个预期反馈。可人心,哪是固定变量?你语法写对了,人家未必就乖乖照办。后来索性合上电脑,下楼,买瓶冰水。站在自动售货机前,掏钱,按键,接货。动作笨拙,但踏实。就在那一瞬间,通了。有些坎儿,本来就不指望“运行成功”。你亲手把代码敲完,接着吞下它吐出来的结果,就算完事儿。当然,这话听着挺洒脱。真落到头上,谁不疼啊?但硬扛着等个完美反馈,往往只会把自己耗干。
城里的夜,黑得贼快。下班挤出写字楼,路灯把影子拽得老长。手机震了一下。同事甩来条消息,问一段循环怎么又报错。我盯着那行字,发了一会儿呆。没回。不是装高冷。是心里门儿清,有些路,只能自己蹚。习题集里的填空,往往就抠出两三个空让你补。生活给的留白,却多得让人发慌。你压根猜不出下一步该塞什么词。只能摸着石头往下敲。写岔了?删了重来。写顺了?也不过是接着敲下一行。其实吧,这种“猜词”的过程,才是生活最磨人的地方。它不考你记忆力。专考你耐性。
如今碰上那种无从下笔的题,早不急着翻答案了。先敲第一行再说。就算报错。就算跑不通。那本习题集在我手里留下的印子,从来不是最后核对对错时的那声长叹。是草稿纸上,划掉又重写的纸屑。人成长这事儿,总以为是把空白一点点填满,直到人生严丝合缝。折腾一圈才懂。留白,才是底色。那些没写出来的岔路。调试失败的深夜。压根没给参考答案的路口。反倒拼成了最实在的底层逻辑。能自己把下一行代码敲出来,就已经挺牛了。当然,牛不牛另说。至少没把自己憋死。这日子,就算没白过。