大家有没有感觉有了 AI 编程能力没变菜,反而变强了

113 天前
 pluvet

一开始也有点担心 AI 会让程序员变笨,代码能力下降,但用了一段时间后,尤其是最近几个月,发现完全不是那么回事。感觉自己的代码能力,反而是不降反增了。

其实挺反直觉的。按理有人帮你写代码,动脑子的地方就少了,能力自然就退化了。但实际是想让 AI 写出 能用 的代码得先把需求描述得清清楚楚。你得精确地告诉它上下文是什么,输入输出是什么,不能有任何歧义,尤其是 3.5 的时代。就逼着你把问题想得更透彻,这种表达能力得到了很好锻炼。以前我容易有个思路就闷头就写,不知不觉现在习惯是先细化列点再写。

而且 AI 生成的代码,你敢直接用吗?反正我不敢。你总得去读去理解它的思路去检查有没有坑。有时候 AI 会用一些你没用过的库,或者一些比较刁钻的写法。这个过程中你就被迫去阅读大量的、不同风格的代码,尤其是写一些系统级的程序。有时候还不得不去看上游代码,修 AI 造的 bug ,看多了感觉阅读代码能力飞升。

另外 AI 的上下文能力是真的捉急。稍微复杂一点的项目是没法把代码全放进去的,更遑论有很多小众外部依赖的情况。比如我最近在搞的 mo 编译器 (moinfra/mo),这东西的编译流程复杂,而且没有用 LLVM ,想让 AI 帮我写个复杂点的 Pass 几乎不可能,因为它完全不知道上下文,只会当成基于 LLVM 写。没办法,只能自己硬着头皮去梳理,把接口、依赖关系梳理清楚,整一个专门的知识库给 AI ,才能让 AI 写点局部的辅助函数。换句话说我需要反复梳理相关的上下文,提取给 AI ,代码阅量++。不过有了 gemnini2.5 感觉这个又变了。

就是 AI 写的代码里有多少 bug 真的无花八门,写点前后端还行,如果是比较冷门的(比如写 ZK ) AI 就会乱编,这种情况它自己基本修复不了这些 bug ,在一个错误的逻辑里反复打转。最后得靠人去 debug ,你去调试 AI 写的代码,往往比调试自己写的代码更费劲,因为它的逻辑可能跟你习惯的完全不一样。这个过程,对你理解代码、定位问题的能力,绝对是高强度的训练。

最有意思是,有些以前没完全搞懂的原理,现在反而因为调试 AI 写的烂代码而搞懂了。就说我那个 mo 编译器里的 LSRA 分配。原理大致知道,但实现细节,特别是 spill code 怎么插,还有多个 interval 的处理一直有点模糊。我让 AI 帮我写了个基础框架,结果 bug 一堆,逻辑硬伤也不少,但大方向的原理是对的。我就对着这个半成品,一点点调,一点点改。在这个过程中,反复琢磨寄存器的分配策略、活跃区间、冲突解决、溢出代码的插入时机和位置……最后,硬是把所有分配细节给彻底搞明白了。这个过程,调试 AI 写的 bug ,反而不断强化了我对底层原理的理解。

现在感觉,写代码的心态也变了。以前很多时间都浪费在查 API 、写各种样板代码、纠结一些语法细节上。这些琐碎的事情,现在大部分可以丢给 AI 。感觉编程这件事情变得更有趣了一点。我能把更多精力放在更宏观的层面,比如算法设计、整体架构的权衡。看代码的速度也快了很多,以前可能要一行一行地看,现在一大段代码扫一眼,基本就能瞟出来它的实现思路和核心逻辑。相比起来,面试还要一个白框手搓代码,筛选的到底是什么人?背诵仙人?

我另一个个人项目,一个大模型客户端 ,几乎全是 AI 开发的,UI 审美比我好多了,大家可以看看自己的组能不能一天内设计出这个水平。这种模式下我基本上不写代码,纯读然后修细节,更专注于功能和架构。对我来说,结论就是这样:AI 没让我变菜,反而让我变强了。

说了这么多其实关键就是,以前是读代码占 6 分,写占 4 分,现在感觉是读占 9 分,写占 1 分。而读代码的重要性一直以来被很多人低估了,读代码真的特别提升理解能力。以前一半时间写初版,一半时间修 bug ,现在基本上除了 C/V 就是修 bug ,也是相当锻炼人。以前一个团队干的活,现在一个人就能搞。遇到别人的大项目也敢去看代码提 PR 了。感觉程序员正在朝更牛逼的工种进化,可能以后反而不会失业?但是分化可能会越来越明显。

9981 次点击
所在节点    程序员
89 条回复
arloor
113 天前
有一些同感的
penguinWWY
113 天前
有没有可能,你说的这些其实不需要 AI 也能实现?
比如反复梳理上下文,可以类比为小黄鸭调试法或者结对编程,或者。。。老老实实先写设计文档和测试用例。。。
再比如看代码,LRSA 在 LLVM 、Hotspot 、GraalVM 里都有实现,只要想啃不需要 AI 也能搞定。。。

比起看 AI 生成的代码,明显还是读优秀的开源代码更靠谱一点
当然你要说有什么优势,那可能是 AI 的代码相对比较烂,你能一眼看出问题。某些开源代码反而因为设计比较好,单纯看意识不到存在这些某些问题
mumbler
113 天前
vibe coding 中文翻译是氛围编程,AI 营造的一个高水平的技术氛围,人的模仿学习能力被激活,学习效率大大提高,我也觉得自己厉害了不少,排斥 AI 的人会被远远甩开
FanyFull
113 天前
同感。AI 在提升我这种初级程序员的水平上很有帮助。所有它生成的代码我都是每行捋一遍,然后有疑问的地方再问或查文档,这一套下来确实能感受到切实的进步。而且,借助 AI 能够把某些知识理解得更透彻,写起程序来更安心。
MajestySolor
113 天前
我一直疑惑,ai 似乎会有意无意的反复输出错误代码,需要不断的纠正它提醒它🤣
xiaoranj
113 天前
其实就是“温故而知新,可以为师矣”,现在的 AI 逼你为师,倒过来温故知新
enchilada2020
113 天前
认同你的观点 但读优秀开源代码跟读同事和前人留下来的屎山完全是两码事。。后者太痛苦了 宁可自己埋头写 bug
MonikaCeng
112 天前
@MajestySolor #5
你具体用的是哪个模型?
msg7086
112 天前
从乙方进化成了甲方。
bytesfold
112 天前
没有 ai 前新的技术用起来很内耗,现在写起来就行,基本没有解决不了的
crackidz
112 天前
AI 对不同人的加强是不同的,要看你现在的位置。对一些人来说,AI 未必比自己手撸效率高
cherryas
112 天前
你现在还能进入那种人码和一,一敲一天过去了的那种状态吗?
sugars
112 天前
那当然,觉得变菜的都是以为 AI 给的代码只用复制粘贴就行了,好像不用过脑子似的。
C02TobNClov1Dz56
112 天前
至少 deepseek 的编程能力是实打实变强了, 最近使用实打实的体会
反而 chatgpt 我觉得它降智了
charlie21
112 天前
所以你永远不能变成写得比 AI 还快的人。
fredweili
112 天前
前几天 memory leak 的问题,没思路,copilot 全部丢进去问个几次,搞定了
copilot 就是辅助啊,会用的就能帮上忙
coolloves
112 天前
个人感觉:
不是变强了,而是感觉自己变强了,因为以前不懂的,不知道的知识点,ai 都写出来了,你就了解了,学习了更多的知识
prosgtsr
112 天前
1:脏活都是 ai 给你干了
2:有一个思维方式和你不一样的人在和你针对同一个功能在结对编程,你从对方身上学习,同时也会反思自己的编程方式。
HENQIGUAI
112 天前
看得出来 OP 是真的用 AI 辅助敲代码的人。
heftyMan
112 天前
说明你认真看了 ai 写的东西

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://ex.noerr.eu.org/t/1127404

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX