过去我和许多人一样,认为工程师无非调库调包、把产品做出来最重要,其余大可不必关心。但 AI Coding 兴起、这学期学了数学模型、参加了第二届中国算法能力大赛之后,我不得不停下脚步,重新辩证地思考研究和工程的关系。

二元对立的过去

我曾觉得研究与工程之间存在一道明显鸿沟——有些理论脱离实际,在工程中连影子都看不到,就像纯粹的空中楼阁。

后来我发现这个直觉犯了以偏概全的错误。理论和工程之间有大量交叉地带,算法便是典型。不论是滑动窗口、贪心算法,还是各类树形结构,它们的诞生都有明确的实际问题背景。

学完数学模型之后,看到数学理论在数学模型中的应用,我意识到自己还是保守了。算法与工程几乎一体两面、对立统一。工程本身就是通过解决问题来达成目的,调用现成框架也好、设计算法也罢,都是解决问题的手段。算法则是工程求解过程中产生的副产物,或者说,就是工程的工具。

辩证地认识

数学模型和算法本质相似,都是解决现实问题的技能。问题源自工程实践,模型和算法正为求解这些问题而构建。因此在算法与模型领域,工程与研究本就一体两面——研究工程问题需要算法能力,钻研算法问题也离不开工程能力,最终到头来两种能力都要有。

沿着这个思路想下去,模型和算法在层出不穷的工程问题中无处不在,算法能力对工程方向的我们也大有裨益。就像很多微分方程已经被提出并求解过一样,现存算法也已浩如烟海。我们不必非要去发明或挑战新的算法,只要能意识到「这个算法能应用在那个问题上」,本身就已经是算法能力的体现。

就个人而言

认识的改变不一定立刻改变现状,但它能让我们在问题出现时解决得更清醒。

目前的情况往往是拿更高工资的人在遮风挡雨,多数底层人员更像是执行。对于不面对算法难题的执行者来说,锻炼算法能力或许带不来直接改变。但如果有一天要迈入个人开发者的行列,算法能力就绕不开。

这不是说个人开发者必须有顶尖算法能力,而是说这条路注定会遇到算法考验——或难或易,但无可回避。对抗这种不确定性的最佳方式,就是提前锤炼它。

人也许一生都不会迈入研究的殿堂,但在 AI 掀起风浪的当下,提升自身的认识也许会是一条未来的路径。