跟机器较劲?真扯不上什么高大上的逻辑。有时候,debug 到凌晨两点,眼皮都快粘一块儿了。最后呢?全指着一个漏掉的分号。说句实在话,这事儿大概就是这么个意思。
那阵子我正陷在老毛病里——焦躁。翻开《Java程序设计例题解析与实验指导》,这书挺“轴”。不整那些花里胡哨的排版,也不故弄玄虚。就老老实实把代码、习题、实验步骤码在纸上。头一回看第一篇典型例题,我眼皮直打架。代码排得齐,注释写得透,跑出来的结果也干净。读得太顺了,顺得我差点信了邪:编程,不就是件水到渠成的差事?心想着,照着书上敲,电脑总该乖乖听令吧?
手往键盘上一放。坏了。才知道“看懂”和“敲出来”中间,隔着条挺宽的河。光看觉得逻辑通顺,真一敲,NullPointerException 直接给你亮红灯。啪。一下打回原形。
书里把课后题答案和运行结果全列出来了。本意是帮新手避坑。说实话,有时候“抄近道”,反倒把人坑惨了。我对着标准答案琢磨了半天,自以为门儿清了。一开空白文档,手指头就僵住了。变量到底要不要先初始化?循环那个 i <= n 的等号,到底加不加?括号又少在了哪一行?那答案跟镜子似的,照出的不是我多聪明,纯粹是我心里急。后来我干脆干了件傻事:拿张草稿纸,把答案全盖住。自己从头敲。敲错,控制台直接爆出一堆红字。盯着发愣。改。再来。就这么死磕。直到屏幕终于乖乖吐出预期的那行字,我才回过味来:报错信息真没那么吓人。它们就是机器在笨笨地拽你袖子:这儿逻辑断了,那儿顺序跑偏了。说句实在话,IDE 的智能提示虽然爽,但可能也偷走了你记语法的过程。这书偏不惯着你。逼着你认全英文的报错堆栈。认就完事儿了。
往后翻。实验和综合实例陆续登场。节奏慢下来了,分量也沉了。十五个实验,四个综合案例。不再拿零散的语法题糊弄你。而是逼着你把碎片,拼成整张图。这编排,我觉得挺对胃口。它不催着你直接上天。先让你把螺丝一颗颗拧死。做综合案例那阵子,我不得不去扒前面学过的类、对象、继承、异常处理。知识点不再是目录里干巴巴的词条。全变成了手里得随时抓起来的家伙事儿。我这才咂摸出点滋味,“学以致用”压根不是等一整套学完了再上手。是在用的过程中,把散落的珠子,一颗颗串起来。过日子估计也这么回事。谁不是边干边补,边错边改?总想着万事俱备再出发,多半是把自己拖垮了。可能书里那套“先搭架子再填肉”的路子,未必适合所有急性子。但对我来说。够用了。
翻到附录。讲 JCreator 和 JavaSE 环境配置。现在看确实有点土。甚至透着股老派的笨拙。可偏偏是这股“笨”,留住了新手最缺的那点耐心。现在的 IDE 太精明了。智能提示、一键部署、自动补全。把底层门道全捂得严严实实。这书倒好。偏让你自己配环境变量。自己认路径。自己硬扛第一次 javac 编译失败时的懵圈。它就像教你系鞋带。而不是直接塞给你一双魔术贴。刚上手嫌麻烦。后来才懂,正是这些麻烦,让你真真切切知道鞋是怎么穿脚上的。说句反常识的。可能现在这帮孩子连环境变量是啥都不知道了。但没踩过那个坑,以后遇到个报错,真得抓瞎。
合上书页。脑子里没蹦出什么具体的语法点。反倒是一股久违的踏实感。现在这世道,AI 写代码、一键生成、速成班满天飞。愿意花工夫盯着屏幕敲代码,死磕一个分号,把一个实验从头到尾跑顺。本身就是一种安静的较劲。它不给你灌成功学。只教你怎么跟错误和平共处。怎么把一团乱麻理顺。怎么在连续“运行失败”之后,还能顺手按下 Ctrl+S。
现在再碰到满屏密密麻麻的字符。或者生活里那些看着就没头的难题。我心里大概也不至于打鼓了。毕竟,谁不是从漏掉一个分号起步?一点点把逻辑理顺。把眼前的世界搭起来的呢?这事儿。大概就是这么个意思。