书架最里头,那摞旧书压得死死的。《Dreamweaver MX2004与ASP动态网页设计实训教程》就蜷在角落。封皮黄得发脆,书角卷得像炸糊的薯片。周末翻箱倒柜,本也没指望挖出什么大道理,就是图一乐,想扒拉扒拉老前辈当年怎么搭网页。翻开。好家伙。里头那些板正得有点呆的代码,配着箭头乱指的截图,倒好死不死把我硬拽回了十几年前。翻旧书嘛,本来没想那么多,结果先被那股子笨劲儿绊了个跟头。
这书排版,轴。一步踩一步,从网络底子摸到数据库,再死磕ASP环境。不整虚的,满篇都是示例和指着按钮的箭头截图。真翻到配服务器环境那章,我手都停了。那会儿的台式机,风扇一响跟直升机起飞似的,机箱盖震得指尖发麻。弹窗摞着弹窗,漏装一个组件,整个环境直接罢工。书里抠得细,连“下一步”得摁几下都标得明明白白。看着看着,我反倒觉得这种死磕挺对味。现在呢?拖拽组件,“啪”一下页面就出来了。可当年死盯屏幕、等刷新键亮起来的那股子焦躁,还有终于看着静态HTML跟数据库连上话、能跑起来时的那口踏实气,现在确实找不回来了。说实话,我现在连自己电脑的IP地址都懒得记,全靠路由器后台看。工具太省事,反倒把那种“摸清脾气”的实感给磨没了。
书里反反复复就蹦跶一个词:“实训”。每啃完一个模块,必须上手撸一遍,然后“亲眼瞧见自己的学习成果”。听着像老教材里的官话吧?搁那会儿,分量是真重。我琢磨起自己刚碰网页那阵子,就为调通一个表单提交的跳转,在本地机器上能死磕十几遍。代码里漏个引号,或者数据库连接字符串里多敲了个空格,页面直接给你回敬一片惨白。那时候哪懂什么“报错调试”?只能拿放大镜似的眼睛,一行行扒书里的示例,一点点抠。现在咂摸过来,这事儿大概就是这么个意思。把一堆散字符慢慢拼成能跑的东西,跟过日子有啥两样。大伙儿都急着要现成结果,反倒忘了死磕的过程本身就在磨人。我觉得可能未必是现在的人不行,只是现在的编辑器太聪明。顺手就把试错的耐心给省了。把人的脑子,给外包了。
不过话说回来,这书毛病也明显。它纯纯就是个操作说明书。只教你怎么配环境、怎么敲对象、怎么绑数据。压根不带你琢磨页面底下的门道,或者设计上的权衡。它默认读者只管照猫画虎,别问“为啥”。我懂它这么写对新手多友好。可网页能真正“活”起来,靠的从来不是背语法。是你在坑里摔多了,自己蹚出来的手感。书里没记的那些熬大夜调bug的夜晚,为个标点符号急得摔鼠标的烦躁,才是搞技术的人最真实的底子。这事儿吧,未必全是好事儿。但至少让人知道,代码不是变魔术。你得自己下场挨骂。
书皮一合,外头天早黑透了。我顺手点开现在的网页编辑器,敲下两行代码。页面“唰”地一下全渲染出来。快得连个回味劲儿都没有。我忽然就有点馋那本旧教程了。馋那种慢吞吞的、非得亲手戳一下才知道行不行的节奏。技术换代的轮子转得太猛。我们连一个工具的脾气都没摸清,就被赶鸭子上架推到下一个版本去了。可有些东西,比如死磕的耐心,比如看着东西从空屏幕里蹦出来时的敬畏,倒一直没挪窝。有时候真琢磨不透。咱们到底是图个上线快,还是纯粹怕盯着空白屏幕发呆?说不清。但就在这个下午,我耳朵里好像又响起了当年那台破电脑风扇嗡嗡转的声音。