夜里十一点半,屏幕还亮着。惨白的光打脸上,照得跟刷了层绿漆似的。键盘缝里,卡着半块早该扔的饼干渣。项目计划表被我划了又写,第三遍了。本来以为顺着大纲走能一路绿灯,偏在犄角旮旯里撞了南墙。盯着待办清单,脖子一硬,整个人像泄了气的皮球。咱们是不是总把日子过成代码?非得一次跑通。逻辑要严丝合缝,步子得踩准,少个标点符号,生怕整个系统直接崩盘。可现实哪有那么丝滑。
前阵子瞎翻《可编程控制器》的实验教程。满篇工业控制、梯形图、基本指令、硬件接线,看着就犯困。以为又是本冷冰冰的说明书,结果“调试与检验”那一章,倒把我给说醒了。作者说话特实在:按工艺条件把程序编好,下载进设备,接着就上手调。不动车,先查逻辑。时序不对,改参数。人家压根没指望“第一次就能完美运行”,全是在泥地里摸着石头过河,一点点抠。调试哪是啥边角料?那是真把机器“叫醒”的劲儿。很多人觉得调试就是打补丁、找退路,我倒觉得,机器这时候才算真正活过来。别老想着一次成型。允许它卡一下,你反而能摸清它的底细。
说真的,我以前特烦“调试”这俩字。总觉得透着股补救的狼狈劲儿,像是计划赶不上变化时,硬找出来的退路。咱们打小被灌输了太多“规划人生”的大道理。好像前期逻辑铺得越厚,人生这条流水线就能哐哐加速。我干过最蠢的事,就是把未来五年拆成季度目标。结果呢?第一个季度就跑崩了。现实哪是实验室。它是个信号乱飞的现场。你按下启动键,电机偏喘不上气。已知变量排干净了,系统照样拉警报。这时候人最容易钻牛角尖。觉得自己选岔了道?还是压根就不够格?我觉得吧,真不是能力不行。是咱们对“控制”的执念太深。真逼到那份上,谁不是一边咬牙一边硬着头皮上。
但你换个角度想想呢?搞PLC实验,最熬人的根本不是写代码那几个小时。是盯着指示灯狂闪,一遍遍核对触点、改步进、记异常的那些长夜。调试这活儿,说白了,就是在跟真实的物理世界死磕。我记性特好,有回为了调个0.5秒的延迟,硬熬到凌晨三点。手指头按键盘按到发僵。你代码写得再漂亮,也得顺着电流的脾气、机械的惯性来。咱们总迷信“输入对了,输出必然稳”。可人与人打交道,跟机器差着十万八千里。人家没精准的传感器,也没有标准化的反馈回路。你话都说到这份上了,对方突然就闷了。你使足了劲儿往前推,处处碰软钉子。这时候非要“修正”对方,或者硬拽节奏,矛盾只会越拧越死。有些时候吧,不调试反而更好。留点模糊地带,关系才能喘口气。非得把每句话都抠出标准答案,反倒没劲了。
过日子,大抵也是这个理儿。谁不想提前画好一套严丝合缝的梯形图?可日子压根不认预设的指令。它冷不丁给你扔个干扰信号。或者在你以为彻底顺了的时候,突然卡在一个不起眼的继电器上。不如把调试的那套脾气带进来。先睁眼瞧瞧,再动手微调。给彼此留点喘息的劲儿。允许代码带bug,允许计划跑偏。这不是认怂,是给往前走腾出缓冲的地儿。这事儿未必非得死磕“修正”。有时候允许它卡在那儿一会儿,你反而能看清问题到底出在哪儿。硬拽?只会把线扯断。
再往深了想,这不就是咱们自己吗?刚出校门那几年,谁不急着证明自己能“一把过”?投简历、换城市、啃项目,弦绷得死紧。一碰钉子,第一反应就是懊恼。急着把错误抹平,当它从来没出现过。后来才咂摸出味儿来。真推着你往前走的,往往不是当初定下的调子。是出错之后,你蹲在地上,一个个排查、重新接线的那段死磕时光。调试不是举手投降。它只是现实在敲你脑门:这块的逻辑,还得再磨合磨合。有人觉得这样太磨叽。我倒觉得,能接受“反复横跳”的人,反而走得更稳,路也宽。
屏幕上的光标还在一闪一闪。我把那个改了无数版的文档一关。不拽了,待办事项明天再说。窗外的城早就静了。偶尔有车碾过路面,声音闷闷的。明天估计还得碰上新的信号干扰。但也许,真不用急着去修正什么。人这一辈子,本来就没法把所有参数都拧到完美。能在某个卡壳的节点上,耐着性子等一等。再按一次启动。就已经挺够了。这事儿大概就是这么个意思。不完美点,才像人过的日子。