25年前,我和同事争论了一个问题。我认为,技术人员应该坚持问题驱动。也就是说:首先学会寻找合适的问题,然后再去找合适的方法去解决。同事主张方法驱动。他认为:技术人员应该学会一种绝活(如预测控制),然后找把它用在合适的问题上。当时,我顽固地坚持自己的观点,同事却做了妥协:两种情况应该都有。
25年过去了,我感觉或许要完善一下自己的观点。
我们争论的问题,本质上是知识的广度和深度哪个更重要。科技人员的知识体系,既要有术业专攻的深度,又要有一定的宽度。这种“宽度”应该有多宽呢?要适合社会分工的需求:如果你的主要精力用于解决你的专业问题,你就可以专注于你的专业问题;如果你的多数时间用来发现和提炼问题,你就不能过于专注于自己的专业,而是需要拓宽专业的范畴。比如,你在某个技术领域的知名度很高,经常有人找你,你就可以专注于自己感兴趣的领域;再如,你从事某个领域的科学探索,不用关心这些知识的应用。
按照我的经验,企业技术人员的主要问题是宽度不够、主流应该是问题驱动而非方法驱动。
企业遇到问题时,往往是跨专业的。比如,涉及到管理、工艺、设备、控制、检测等多个方面的因素。企业最需要的专家,首先是能把问题定位准确的人、能够准确提出问题的人。在这样的场景下,即便你对某种方法特别擅长,如果专业面太窄,就会“英雄无用武之地”。
对于搞数字化的人来说,好问题几乎永远是稀缺的。因为需求往往是隐藏的、潜在的。而解决问题时,往往是采用“复杂问题简单化”的方法、尽量避免过于复杂的算法。所以,技术人员除了要了解自己的专业,还需要了解自己的用户、自己用到的工具,也就是要跨越上下两个专业。另外,按照我的经验:如果没有遇到合适的问题,没有必要花很多时间,对自己领域内的某个特殊方法钻得太深。这样往往是浪费时间:而且,如果你是个优秀的技术人员,往往也没有那么多时间。正确的做法是对这个方法有简单的了解,必要的时候能够迅速把专业问题搞清楚。也就是说,要培养学习能力,用灵活性解决知识不足的问题。
最近,ChatGPT很热。于是,我就想到了25年前的这次讨论。