读书时,学霸的特点就是能够找到一个非常巧妙的办法把最难的题做出来。我读研究生时,想当然地以为科技也是这样、并用这种心态看待“牛人”。然而,自从开始做实际工作,发现过去学的知识很少有“表现的机会”:或者问题太简单、只要很简单的数学工具;或者是问题太复杂、很难找到理论上好用的办法,只好“试出来”;或者有成熟的数学方法,没多少发挥的空间。
我个人的体会却是:如果技术上有困难的话,用的常常是“聪明人看不上的笨办法”:
l 苹果公司要做精度特别高的测试线。供货商都说做不出。苹果就自己来解决:先做了2000根,从中挑出2根符合标准的。
l 机器人上的零件精度很高,转配时遇到麻烦。为此,需要把零件放在冰箱里冻一段时间。“冻小了”再装。
l 我花了12年,建立了一个涉及到几十个变量的复杂模型。解决的办法就是从单变量模型开始,再两两研究变量之间的关系,直到得到基本满意的模型。
l 我做控制软件的时候,最大的体会就是要把绝大多数的精力放在防错和特殊问题处理上。原理很简单,难点是细节太多。
在几十年的技术生涯中我多次反复思考:读了20多年的书、学了那么多的理论,难道真的没用吗?仔细琢磨一下,还是有用的。
1、避免牛角尖。当一个问题复杂到一定程度,我大体就能判断这个问题基本上无解、不用花太多不必要的时间去看书、查资料或请教别人,直接根据感觉去试那些“聪明人看不上的笨办法”了。这样可以避免钻入理论的牛角尖,省下很多时间。
2、方法的选择。能从根本上理解各种数学方法有什么优点、有什么缺点,根据需要选择合适的方法。比如,我就喜欢选择精度略差而稳定性好的算法,用于实时控制。
3、对奇怪现象的合理解释。比如,做数据分析时,有些系数可能会令人感到非常奇怪。我用简单的推理知道了“误差最小的模型”可能是不合适的,从而避免走入误区。
总之,好的理论基础更多的是能帮助我们少犯错误,而不是告诉我们应该怎么解决问题——因为解决问题的方法往往是成熟的,但我们可能不知道该选择什么、注意什么。
前面提到我曾经多次反思自己的观点。也就是说:前面的这些观点是不是片面的?凭心而论,有些朋友的实践和我说的不太一样。换句话说,他们取得了不错的成绩,而这些工作是在我“预料之外”的。这些“预料之外”大体上有以下这么几种情况:
1、技术人员过度相信自己的经验;而这些经验的合理性并没有经过数学模型的计算。这些经验其实也没错,但当企业或用户追求变高时,就有许多价值空间可以挖掘。这时,某些有意思的理论方法可能会取得意想不到的效果。
2、隐藏的价值空间。我经常发现别人用技术上非常简单的办法就创造了不少的价值。这些方法真的是非常简单。既然如此,过去为什么没有人做呢?我发现:这些价值会由于各种原因被隐藏起来。如果我反思自己的话,就是深入实际不够、不了解这些问题。
3、综合性知识和技能。有些专家能够取得不错的成绩,原因是他们掌握很多综合性的知识和技能。别人觉得无从下手的问题他们也知道怎么做——而知道怎么做的本质,是知道怎么做不会出事。而这些知识和技能,往往来自于丰富的实践。
总之,与这些朋友相比,我自己的不足本质上还是实践的不足。创新的机会往往是可遇不可求的。但在实践的过程中,很多机会会自动地找上门来。很多人做的成绩比我好,一个重要的原因是他们比我更乐于争取实践的机会。