今天金山的刘鑫老师在邮件里谈到了“工程师思维”(工程师的思维能力,就是一种可以把想法实现出来,一步步的变成现实的思维和实践训练),借题发挥一下吧。

我上高中的时候,学校算是本市最好的中学,班主任物理老师也是特级教师,但我一直不是觉得,他讲课说不上多好,无非是循规蹈矩的套路,甚至有点死板——就拿受力分析的题目来说吧,多简单的题目,都要画坐标系,而且就只有那么几个力:重力、摩擦力、牵引力等等,来来去去地分解,真是麻烦,许多题目明明一眼就能看透的嘛。
到我大学快毕业的时候,辅导一个小朋友做高中物理题,忽然就让我改变了之前的看法:那是个很简单的问题,物体在斜面上的受力分析,我问他:这个题目要怎么想呢?出乎我所料的是,他胡乱画出了一堆力:扯力、顶力、拉力…
就在那一瞬间,我明白了,我们的物理老师的做法有多么高明:复杂问题是不能单纯依靠直观思维来解决的,我们往往需要从简单的情况中提炼出章法,再循序渐进,把章法练到纯熟,这样才有能力解决更复杂的问题。物理老师那看似繁琐的重复,其实就是在培养章法,把握问题的核心——做到了这一点,再复杂的问题,都可以一眼看到本质,而不会困扰、迷惑。

可惜的是,这样的思维和习惯,似乎还没有在我们身边扎下根基。我目力所及,看到的很多问题的解决方案,很多教育、探索和反思还只停留在对天赋、才气的吹捧和推崇上,而没有强调练习章法、探究规律、把握本质的工作。可是,才气、天赋等等都是太微妙的因素,难以把握,无法复制,也不易推广,甚至很可能遗失——研究中国古代科技史的李约瑟博士就指出,中国古代的发明有个特点是“重复发明”,前人发明了某件东西,后人不重视,于是失传了,直到许多年后,再由后人发明……
在这方面,西方似乎比我们做的好得多,他们会有人不满足于直观的思维,努力探究日常生活各种现象背后的原理,总结出不依赖“才气”、“天赋”的章法,再经由一代又一代的人传承、积累,结果知识与生产力就像滚雪球一样,越来越多,能量也越来越大。
再举个例子,小时候我做过不少“智力题”:比如几个人各说了一句话,其中几个人说了真话几个人说了假话,让你判断到底谁说了真话谁说了假话;又比如河上有一条船,河边有狼、羊、人、草等等,一次只能渡两样过去,要怎样安排顺序,才能全部安全渡过去。这样的问题,我有一段时间做起来很快,也尝试总结过一些思路,但还是碰运气、凭感觉的成分居多,而且,这样的习题书,也没有告诉我们应该怎么解这类问题,它的本质是什么。直到后来学了离散数学,我才恍然大悟:第一个题目其实就是真值表,第二个题目其实就是图算法。问题提炼到了这个层面,就有现成的章法(或者说“套路”)解决了,再不需要什么才气、天赋:天赋再高、才气再旺盛,也无法大规模推广,也快不过计算机。于是,普通人也可以解决这类问题,其他人(也包括我们)的精力就不用再耗费摸索这类问题的答案上,而可以探索更加深入、更加新鲜、更有价值的问题。

我们还可以再举一个身边的例子:西方的很多书中,一个简单的道理,往往要翻来覆去地讲,非要把各个细节、各种情况都涉及了,才善罢甘休;许多人觉得很罗嗦、很累赘,他们关心的是“正对我胃口的知识”、“核心的结论”。但是,如果有时间认真研究这些细节,了解了各种情况,往往可以站在一个更高的角度来审视这些“核心的结论”,对它的认识更加全面——不但知道价值在哪里,也知道局限在哪里。
其实,这也是我当年阅读《精通正则表达式》之后的体会,在细细阅读了整本书之后,我不但了解了各种功能,用正则表达式解题的一般套路,也知道了在什么情况下要使用什么功能,更知道了什么情况下不应该使用正则表达式——这样的知识,很多就来自书中那些“繁琐”的内容。

正是因为有了这样的体会,我也奢望为大家提供一些这样的便利:《怎样翻译更地道》系列文章尝试总结一些应对翻译难点的通用套路,希望读者遇到这类问题时,查到对应内容就可以解决;《正则表达式傻瓜书》希望重点讲明白的(也是本书的重点),不但有各种功能的应用场景和选择规则,还有正则表达式解题的思维步骤:归纳一个应用场景的文本特征(转化为对正则表达式的需求);照这些特征一一写出子表达式,合理组合起来;最后优化整个表达式。掌握了这三步,并有意训练,就可以熟练准确地运用正则表达式,解决各种问题。

希望我可以努力做到。