@axb 的自我修养:最近在做 ai 辅助开发方面的工作,经常会遇到一个避不开的问题:有了 ai 以后需要什么样的程序员?
我大概总结了三条。
首先,模型在超长上下文状态下精度会显著下降,因此需要使用模型的人具备任务拆解的能力。
这里说的任务拆解,不是单纯的按照时间顺序把任务拆解成具体步骤(这也是大多数人执行任务的方法),而是把任务拆分成互不影响的子任务。
“互不影响” 这个概念非常重要,在没有 AI 的时代,我们常说的 “高内聚、低耦合”、前些年风靡一时的 “微服务” 等等,本质上都是在表达这个概念。只有把任务拆解成 “互不影响” 的子任务之后,才能真正的降低任务的复杂度,从而实现团队化、工程化的开发。没有解决耦合问题,那么任务的复杂度本质上并不会降低,也不会有拆解任务的收益。
到了 AI 时代,传统软件工程的任务复杂度限制演变成了 AI 的上下文限制,复杂度的问题并没有消失,只是换了个形式。
但是绝大部分程序员,并不具备这个能力:在没有 AI 的时代,他们写的代码就充斥着耦合、支离破碎和各种丑陋的东西,这些东西会严重拖垮软件的可维护性。AI 可以提升解决问题的效率,但复杂性带来的问题还是一样复杂。
其次,模型存在幻觉,因此程序员需要知道 “什么是正确的”。
在推广 AI 辅助开发的过程中,我发现很多人第一反应是打开 “全自动” 模式,然后跟着 AI 的幻觉在代码库里漫无目的的游荡。
这有点像是《性能之巅》里提到过的 “随机变动法” 的升级版,至少在 AI 的幻觉问题仍然没有被解决的当下,幻觉始终会出现,并随着推理过程逐渐传播。这有点像是在爬一条没有路的大山,如果你不能给大模型很好的方向上的引导,大模型就会不停的被眼前的景色迷惑,并且不断的指出一条不存在的道路。
这种 “方向感” 可能来自于知识、经验或者纯粹的直觉,而可悲的是,大部分程序员,也并不具备这种能力:他们职业生涯的绝大部分时间只是在 “代码” 这座山里乱转,有了 AI 以后,只是让瞎转的速度变快了而已。
第三,模型没有目标,需要程序员提供有价值的问题。
最近看了一些访谈,大多数人在提到当前的软件开发行业里,更希望招有主动性,能够具备洞察能力的人。
这其实本质上跟 AI 无关,在任何行业里想要做的好,都需要具备这种特质。但是前些年软件行业坐火箭式的发展让人员需求背离了规律:很多人并没有任何职业上的闪光点,只是误打误撞坐在了风口上面,然后就被带上了天;还有一些人只是在电梯里猛做俯卧撑,就获得了成功。
行业下行时,之前大量的冗余人力不可避免的会被淘汰掉,AI 只是加速了这个进程而已。
如若转载,请注明出处:https://www.zhangzs.com/526782.html