答案是否定的。

这些竞赛在LLM出现后,已经没有任何意义,编程竞赛都是有套路的,他考验的是你能不能在现有算法知识库中,以规定时间内找到复杂度合适的算法来解决问题,出题的人肯定是知道算法答案的,LLM只要暴力搜索,并发量达到一定程度,总能弄出一个正确答案出来的,人类的问题在于人脑搜索并验证的速度太慢了,这些竞赛并不考验人对复杂性的处理,与现代软件工程师的要求完全相悖的。

而且这些竞赛的算法代码最终的实现的代码行数都不会太多,因为是竞赛,代码量会控制在1000行以内,其本身的代码复杂度并不会高,而且很多都是套路题,递归回溯这些都写了千百遍了,对于新手来讲,处理这些点是有复杂性的,但是对于老手来讲,基本上就是信手拈来,很多复杂性对于老手已经不存在了,根本难题在于在大脑里面搜索找到 符合时间复杂度要求的算法。
老码农大多不喜欢做算法题的根源就在于此,甚至我觉得在LLM出现以后,做任算法题都是在浪费生命,在码农几乎不需要的知识库里面检索一种可行的答案简直就是对软件开发者的一种侮辱,类似翻转二叉树等问题。


码农包括码架师 要处理的是现实世界的问题,它包含了太多的随机性跟不确定性,光是一个仓库出入库以及报表管理流程,1000家企业就有1000家运行逻辑规则,大多时候不是企业去适应你这一套软件业务规则,除非你达到世界级的体量,你说我们的标准就是业务流程操作标准,即使强如SAP,也大量入驻企业,给企业做定制,买方是大爷,强推自己的标准只会吃瘪。

C端软件消费的目标群体是大众,就算是一坨屎大众也都吃了,推荐算法就算很垃圾,也不会存在个人用户逼逼几句让做算法推荐码农给你个人化定制适配一套,而企业内代码的逻辑是完全相反的,软件工程师需要去适配各种乱七八糟的业务规则,甚至非标流程。


而现实中的业务代码跟编程跟这个竞赛完全是两回事,大量的企业代码库极其庞大,业务模块的边界性是极度失控的,代码库里面夹杂着大量无效信息,bug,以及各种业务规则的随意性,而且还有大量的随机复制,它的信息熵其实是极大的,而且有效信息熵占比极少,甚至以修改了一个地方,会在遥远的另一个模块里面引发大量的bug,这也是为什么软件工程师只要工作了多年,基本上对代码修改抱有慎之又慎的态度。

这其中又包含了软件系统本身业务要求带来的复杂性,以及编程人员管理失控带来的附加复杂性,类似随意的代码复制,模块业务规则大量耦合,等等一系列的问题,
现代软件工程并不要求你解一个难题,因为穷举导致计算复杂度过高而搞不定问题的时候,你就去算法库里面找就是了,而且这些需要算法实现来降低计算复杂度的问题,都有专门的部门来处理,他们也有自己专用的套路跟算法库来解决这些问题。


而且早就有大佬都说了,拿不准就穷举,其实跟LLM有一定的相似性,LLM也是拿不准就穷举,只不过它穷举的办法是把知识库里面的所有算法模式给你匹配一遍,而人类的拿不准就穷举只能是蒙特卡洛树搜索。
我个人觉得编程达到AGI的一个标志性,就是能把上千万行代码的狗屎业务系统代码能梳理得井井有条,且这一过程完全不需要人工介入,并且达到原先的效果且包含bug,因为很多东西就是靠bug运行的,你改了它反而会引发更多的问题。


最后,LLM的能力高低 应该是以其能处理复杂度多高且无法轻易验证的事情为准,而不是以其在轻易验证的领域中应对复杂度极低的问题为准。

标签: none

评论已关闭