晚上十一点半,光标在屏幕上闪,跟心跳漏拍似的。我顺手摸过那本边角都卷成波浪的《从零开始:Visual Basic中文版基础培训教程》。扉页上印着句话,现在看真挺轴:“循序渐进地介绍了基本概念”。那会儿搞编程,哪有一键生成?哪有什么现成框架?全得靠手指头硬敲。DimAsEnd Sub。少打一个字母,程序立马甩脸子。报错。没招,只能自己蹲在那儿找毛病,一行行抠。说实话,那破教程排版丑得一批,连个像样的目录都没有。但偏偏就是这种笨办法,逼着你把内存地址和变量作用域摸得门儿清。这事儿大概就是这么个意思:你越嫌它慢,它越给你兜底。

“从零开始”。这四个字印在纸上,轻飘飘的。落到日子头上,可沉了。以前总觉得“零”就是啥也没有。推倒重来,一片荒凉。直到我盯着那些得手动编译的窗口发呆,才咂摸出味儿来。哪有什么真空白啊。不过话说回来。这“零”,真能攒出耐心吗?搞不好只是把之前的坑给填平了。下次照样摔。但仔细想想,那点“零”,大概早就把之前踩的坑、绕的远路、甚至一些看着没用的死记硬背,全给攒着。塞进下次点“运行”时的那点耐心底下了。

去年秋天搬家,纸箱把客厅堵得水泄不通。我刨出一本旧日记,里头记着刚换城市那阵子的抓狂。怕被落下,怕在新地界显得土里土气。那时候的我,眼巴巴就盼着个“成品”。跟现在不少人学东西一个德行。基础语法嫌慢,恨不得直接跳过,上手就调库套模板。我懂这心态。现在随便搜个“Python 快速入门”,教程标题恨不得带“三天精通”“零基础月入过万”的钩子。可过日子哪是代码自动补全?你没法一键把人际关系给部署了,也编译不出什么从容淡定。

书里翻到窗体设计那章,有个细节挺逗。控件往哪儿摆、多大个儿、啥颜色,全得在属性窗口里自己一点点捏。作者写得跟个老教师递粉笔似的,不端不装。我一下子就被戳中了。想起前阵子硬着头皮干陌生事儿。比如重新拾起画笔,或者去新小区硬跟邻居搭话。头回上手,那叫一个僵硬。手抖。线歪。话堵嗓子眼儿。有回我想给阳台那盆快枯的绿萝换个盆,结果土洒了一地,花盆边缘还磕掉了一块。咱们都怕那种“不熟练”的窘态,好像一卡壳就是废了。但写代码最实在,它不跟你来虚的。敲错字符,编辑器直接红一片;逻辑拧巴,程序当场给你死机。它非逼着你认怂,承认自己就是笨,然后在一次次改错里,把那些生硬的线头慢慢捋顺。

以前我总犯轴,觉得人长大了、成熟了,就该跟“从零开始”彻底绝缘。后来才琢磨过味儿,咱们其实一辈子都在重复这出戏。只不过后来的“零”,底下垫了层旧底子。你不再是空着手进虚无,而是揣着以前的教训、踩过的雷,甚至点放不下的执念,重新坐回电脑前。书里每章最后的练习题,解法从来不是死板的。有人写得干脆利落,有人非爱绕弯子。老师批卷子从不打叉,就甩一句“能跑就行”。不过“能跑就行”这话,我后来琢磨出点毛病。代码要是为了赶进度全堆补丁,后期维护能让人脱发掉层皮。但放在生活里,未必不是好事。咱们老盯着最优解。想一步登天。可多少事儿压根没标准答案。能跑通,能接着往下溜达,就挺好了。

读到这儿,我手里的书差点没拿稳。原来咱们死扛的,根本不是“从零”。是压根不肯认自己还得从头学起。

合上书,窗外的路灯早就暗了大半。我掐了编辑器,瞅着桌面上摊开的乱糟糟的文档和笔记。毛病一堆,有些逻辑还接不上茬。可我心里有数,明早太阳一出来,我照样会打开它,接着往下敲。指不定明天又蹦出个新报错,或者死磕某个细节半天动弹不得。随它去吧。其实吧,电脑屏幕反光里那张脸,看着是有点憔悴,但手放键盘上,居然不抖了。

“从零开始”压根不是一种摆好的姿势,它就是个动手的活儿。它不跟你打包票能成,只管把你按回那张桌子前,逼你敲下第一次运行键。至于程序会不会崩,窗口会不会跑偏,那是后话。你能坐在这儿,还愿意再试一把,这就值了。反正日子是过出来的,不是写出来的。报错就改,卡壳就歇会儿,明天太阳照样升起。这事儿,大概就这么个意思。