有些东西吧,你越催它出结果,它越跟你装死。这本《C++程序设计》就瘫在我桌角。封皮灰扑扑的,边角卷得跟炸薯条似的,看着像哪个旧工具箱里翻出来的。掀开扉页,连句“本书适合初学者”的客套都不给。干巴巴。上来就是“程序设计语言的特点”和“编译环境配置”。起初我真没抱指望。纯粹是想扒开IDE里那些乱码似的报错,瞅瞅底下到底踩着什么逻辑。翻着翻着,倒被那股死磕基础的笨劲儿给整不会了。现在谁还愿意花这么大功夫教人打地基啊?你别说,还真就有人写。
讲数据类型那节,把int、float、char扒得连底裤都不剩。不跟你玩虚的。整数归整数,小数归小数,字符嘛,就老老实实当字符。初看像车轱辘话。可你实际敲代码的时候,不也在这儿栽过跟头?上次我非要把一个浮点数硬塞进整型变量里。小数点后面全丢了。调试了大半天,才反应过来是类型不匹配。编译器可不吃“差不多就行”这套。对不上,直接甩你一串红字。看到书里那句“分析问题的透彻性”,我手指头在纸面上停了停。我觉得吧,它指的估计不光是敲代码。而是碰到一团乱麻时,先把手里的键盘放下。把线头,一个个挑出来,顺清楚。人总爱把情绪压缩成“我没事”。可数据格式不对,就是不对。没得商量。
谁不觉得循环和条件语句那几章枯燥?刚啃的时候我直打哈欠。for、while、if-else。翻来覆去就那几招。跟每天打卡上班似的。后来我实在手痒,在编译器里瞎敲了一段。故意漏了个分号。程序立马罢工。盯着屏幕上那行红得扎眼的提示,我反倒松了口气。生活里的事儿,大多糊里糊涂。吭哧吭哧忙活半天,连自己到底差在哪一环都摸不着北。可代码里不骗人。当然,前提是变量名你没起得跟天书一样。错就是错。漏了分号,补上。逻辑要是写反了,再掰回来。它就这么硬邦邦地戳在那儿。逼着你认账。毛病就出在这儿,躲是躲不掉的。
翻到指针那章,书上写它是个指向内存地址的变量。读到这儿,我脑子里莫名蹦出个画面。指针这玩意儿,自己不装东西。就负责指路。告诉你货在哪儿。像不像咱们记忆里的那些人和旧事?早都变了样儿了。可人还总爱顺着某根旧线头,往回拽。代码里指针指岔了,或者干脆忘了初始化,程序直接段错误崩盘。生活里指针老往回指,人也能把自己给绕死。作者没扯这些有的没的。光列着干巴巴的语法和内存示意图。可正是这种不掺水的写法,反倒把脑补的空间全留给了我。写技术书嘛,太煽情,反而显得不专业。
我挺吃它这套“不整虚的”。它不跟你吹什么“七天精通C++”。就老老实实教你怎么把地基夯实。表达式怎么算,语句怎么套,框架怎么搭,它都不绕弯子。一砖一瓦,老老实实往上垒。不过说句公道话,这书确实缺了点人味儿。写代码哪是光拼逻辑啊。大半时间都在跟耐心死磕。你会为一个空格缩进错得砸键盘。也会盯着终于跑通的绿色提示,长出一口浊气。书里压根没提这些破事儿。但也无所谓。它顶多给你递把卷尺。路到底多长,还得你自己拿脚去量。我觉得技术书嘛,能把基础讲透就算赢了一大半。剩下的情绪价值,还得靠自己在熬夜调试里慢慢攒。
书合上的时候,屏幕上的代码照样没跑起来。红字还在那儿闪。可我没像往常那样,烦躁地直接叉掉窗口。我挪回视线。一行行往下扫。抠括号。对拼写。捋逻辑。编译卡壳的时候,别急着掀桌子。把报错信息念一遍。修一处。再点运行。可能也就是这么个死理儿。总能跑通的。哪怕今天跑不通,明天接着敲也行。