凌晨两点半。屏幕上的红色报错又蹦出来,跟赶不走似的。我盯着那行提示,手指头悬在键盘上,半天没落下。自己都觉得挺逗。都这把年纪了,还能为了一个漏掉的括号熬到眼皮打架?这事儿大概就是这么个意思。顺手拉开抽屉,那本《C++ 语言例题 习题及实验指导》就搁在那儿,书角都磨毛了。说实话,这书真不讨喜。排版死板,翻起来一股子老教材的味儿。但没办法,踩上去才知道,它垫得挺稳。

刚拿起来那会儿,我压根没指望它能多好看。计算机辅导书嘛,大抵都透着股冷冰冰的规矩劲儿。分章列点,配着习题。可看着看着,那股子冷硬里倒渗进点人味儿。它不跟你扯虚的。函数咋定义?指针咋指?类咋继承?掰开揉碎了放眼前。例题解析那块我最爱看。作者非得留个不起眼的小钩子,等你自己钻进去再绕出来,才“哎哟”一声拍大腿。这路子,说像老工程师带徒弟可能有点矫情。但道理差不多:不直接塞答案。非得让你自己撞一回墙,再自己把墙拆了。我觉得吧,现在太多书恨不得把饭喂到嘴边还帮你嚼碎,反倒少了点自己啃硬骨头的痛快。

后来卡在我这儿反复琢磨的,是“虚函数与多态性”那一节。书上写得规规矩矩,基类指针指向派生类对象,动态绑定啥的。我盯着那几行代码发愣。忽然觉得这玩意儿说的不就是咱自个儿?见客户得端着,陪家人得松弛。关起门来?呵,又是另一副德行。多态哪是什么装模作样。分明是日子在不同场合里的自然切换。当然,拿代码硬套生活未必严谨。但那种“一套接口,多种实现”的劲儿,确实挺像成年人的生存策略。这时候再看屏幕上的红字,居然觉得没那么扎眼了。倒像是编译器在好心提醒我:别瞎猜了。按规矩来。

书的后半截全砸在练习题和上机实验上。说实话,这部分最熬人。它不给你走捷径。就扔给你一堆得自己敲、自己跑、对着黑框框干瞪眼的死活儿。前阵子我自己捣鼓个小脚本,为了调一个文件流的读写顺序,硬生生耗掉一下午。当时火气直冒,心想自己是不是压根不适合碰这行。甚至怀疑这破书是不是故意在刁难人。可瞅着书里密密麻麻的实验步骤,我突然回过味来:人哪有那么容易“一次跑通”?真把本事学扎实了,全藏在那些改来改去、试错试错的缝隙里。编译器报红,压根不是针对你。它只是在跟你较真:这儿逻辑没兜住,那儿边界没卡准。别把报错当绝症。当个体检报告看就行。

这书排版死板。十章,每章四个部分,一步一印。不带你天马行空,也不整什么花里胡哨的骚操作。但偏偏是这股死板劲儿,给新手兜住了底。现在什么都赶着出结果。短视频教编程三天速成,AI 写代码一秒钟生成。肯陪你把基础一块块垒实、把内存和对象的关系掰扯清楚的东西,真不多了。它不画大饼说能让你立马成大神。只认死理:你踩过的每一步,都得落在实地上。就算你中途想撂挑子,它也会把歪掉的路标给扶正。这路子慢是慢了点。慢有慢的好处。至少地基打牢了,楼塌不了。

搁下书,外头天光已经泛白了。我重新点开编辑器,把昨晚卡壳的那段代码又敲了一遍。这回,终端里顺顺当当地吐出了结果。没喊没跳。就是长长地吐了口浊气。日子大概也这么回事。咱们都在不停地编译自个儿这版程序。偶尔报错,偶尔闪退。但总能在一次次调试里,摸到那条能跑通的线。可能吧。生活也没个标准答案。跑通了就继续往下走,跑不通就加个断点,慢慢找。

语法更新换代快。库文件也换了一茬又一茬。但那种愿意沉下心,把一个大问题拆成几行,一行行去对答案的笨功夫,估计才是能陪咱们走到最后的家伙。明天要是又冒出什么新bug?随它去。先灌口热水,接着敲。毕竟,代码是写给人看的。顺便让机器执行,对吧?