三年前我还在工地上拿着水准仪对着图纸发呆,钢筋绑扎不合格要被监理骂,混凝土浇筑前要通宵盯着泵车。那时候我每天走两万步,鞋底永远粘着水泥浆,手机里存的都是节点详图和材料报验单。后来我转行写代码了,坐在写字楼里,摸着冰凉的机械键盘,突然觉得——这玩意儿比混凝土难糊弄多了。
在工地,混凝土标号不够,塌落了,你能看见裂缝,能听到声音,甚至能闻到那种潮湿的腥味。甲方来了指着裂缝骂你,你只能低头抽烟认了。但代码不一样。它塌的时候悄无声息,你以为功能上线了,数据也跑通了,直到凌晨三点用户打电话说页面白了,你查了两个小时才发现是循环里一个 i++ 写成了 i+1。这种塌方你找不到责任人,只能自己一个人对着屏幕发呆,连烟都没处抽。
工地的规则很粗粝但直接:干得好不好,量一量、敲一敲、看看垂直度和平整度。但代码的验收标准是玄学,产品说这个按钮要“高级感”,测试说这个报错弹窗“有点生硬”,架构师说你这样的设计“扩展性差”。我在工地学到的本事,比如怎么跟包工头要钱、怎么用挖机斗给混凝土块压实,在这里全废了。唯一有用的,是当年在烈日下站着等搅拌站的时候练出来的耐心——现在用来等编译和看日志。
最讽刺的是,我在工地测坍落度的时候,手里拿的是一截铁皮尺,误差半厘米都不行。现在写代码,一个数字类型用 int 还是 long,差了几个字节没人真在乎,可偏偏就是这种没人较真的地方,最容易出事故。我曾经以为转行是逃离体力活,后来发现只是换了一种更隐蔽的体力——颈椎疼,腰痛,眼睛干,偶尔加班到凌晨,看着窗外工地上还有灯光闪烁,那些工人可能还在打灰。我不知道他们累不累,但我知道,如果当初我没转行,现在可能正站在那栋楼顶,往下一个钢筋笼里灌浆。
现在我偶尔还会翻出当年的安全帽,放在显示器旁边。同事问那是什么,我说是纪念品。其实不是,我是想提醒自己:混凝土塌了你还能跑,代码塌了你只能坐下来,一行一行地把它拆了重来。工地教会我敬畏材料,代码教会我敬畏逻辑。两者都不轻松,但至少现在下雨天,我不再需要站在泥坑里排水了。