有些书买回来,供在书架上吃灰。有些?直接上手搓。当初翻开《Borland Delphi2005C#Builder精彩编程实例集锦》那阵儿,我心里直打鼓。寻思这回又得啃几块硬骨头。封面黑压压一片,字挤得跟沙丁鱼似的,明摆着就是专治各种“理论派”的硬核教材。结果呢?真坐电脑前打开,反倒意外地顺溜。不跟你扯什么底层架构,更没长篇大论的语法推导。作者估计是个实在人,反手就甩过来两百个现成零件。话都不多,就仨字:“接上试试。”

“拿起来就能跑”这干脆劲儿,刚开始真把我整不会了。平时敲代码,非得先捋清“凭什么这么干”,才敢落下第一个字符。突然让你去调界面、连数据库,手指头悬在键盘上,半天摁不下去。咋整?硬着头皮上呗。直到屏幕里,第一个GDI+文字特效慢悠悠浮出来;ADO.NET查出的第一行数据,严丝合缝填进列表。那股踏实感,才顺着胳膊肘一点点爬上来。代码这玩意儿,哪是什么悬在天上的大道理?你按下回车,屏幕回你个动静,这事儿就算成了。有人肯定要撇嘴:这法子太野,不讲究循序渐进。可拉倒吧。对咱们这种天天被需求追着跑的人来说,能先跑起来,比背烂任何设计模式都管用。

书里专门劈出一章,讲注册表操作和网络通信。头两页扫过去,说实话,挺催眠。那步骤枯燥得,跟当年在学校机房对着示波器一遍遍拧旋钮一个德行。或者更直白点?对着报错日志一行行改。我那时候也没参透它到底图啥,就傻乎乎地照单全收,往下敲。后来才咂摸出味儿来。咱们总迷信学习得是个“先宏观后微观”的优雅流程,真那么讲究?扯淡。你总得把手弄脏。在那些冷门的文件读写、端口监听里摔几个跟头,才晓得系统到底是怎么喘气的。作者没在这儿搞什么诗意升华,就是干巴巴把步骤摆那儿。不哄人,反倒让人能沉下心往下翻。技术这码事,看一百篇原理文章,真不如自己把注册表键值改崩一次,来得深刻。

这味儿太熟,一把就把我拽回几年前改内部系统的那档子事。当时我也犯轴,非要在脑子里画张滴水不漏的架构图。结果呢?调研资料堆成山,手指头就是动不了。被逼到墙角,只能先搭个最寒碜的框架,把最基础的模块硬跑通。剩下的路,这才像剥洋葱似的,一层层露出来。这书里的两百个实例,骨子里教的,不就是怎么迈出第一步吗?每个小程序都挑不起大梁,全是零碎的边角料。可就是这些边角料,把咱们从老版开发环境往.NET新框架上挪的过程,照得明明白白。工具换代快啊,Delphi和C#Builder现在估计连GitHub上都不一定搜得到全版本。可那种“先跑起来再说”的愣劲儿,从来没换过。要我说,这大概才是程序员最实用的生存法则。

配套光盘里塞的源码,我后来确实扒拉过。没敢直接Ctrl+C、Ctrl+V,而是像拆旧收音机那样,把人家代码拆得七零八落。看看螺丝拧在哪个槽,线头怎么接的。写代码跟过日子,其实是一码事。咱们老盼着有个万无一失的万能模板,现实给过吗?压根没有。它只把一个个具体场景,劈头盖脸甩你脸上。让你自己填坑、打补丁、跑流程。能跑通?接着往下走。弹窗报错?盯着那串代码发会儿呆,改完再试。事儿就这么个意思。别总琢磨一步到位,代码这摊子事,本来就是边跑边修。

书合上的时候,外头天早黑透了。显示器上的光标还在那儿一格一格地闪,跟催命似的,等我下指令。我琢磨着,图形特效、数据库连接、Web服务这些招数,过两年估计得扔进垃圾桶,或者被什么新框架顶替。但那种愿意耐着性子,把一坨大难题拆成两百个小步骤,然后一个个去抠、去试、去盘明白的轴劲儿,估计能陪你挺久。咱们普通人,不就是在一个个具体的“实例”里,把自己一点点磕出形状的吗?以后用不用得上那些具体语法?未必。但那份动手的底气,应该够咱们再折腾一阵子。