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

185 天前
 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 了。感觉程序员正在朝更牛逼的工种进化,可能以后反而不会失业?但是分化可能会越来越明显。

10615 次点击
所在节点    程序员
89 条回复
DigitaIOcean
184 天前
有点像智能驾驶:

老司机:我不放心把方向盘交给计算机,命运要把握在自己手里,哪怕是我在睡觉
新型人类:自动驾驶真香
me1onsoda
184 天前
没错,用 ai 像打了 PEDs
nenseso
184 天前
有,我现在描述需求都是结构化描述
edisonwong
184 天前
说点不好的:代码靠看不一定能看出来 bug ,因为思路会跟着看到的代码走。但自己敲的话,代码则跟着自己的思路走。所以用 ai 的代码,找 bug 会费劲点。api ,通识,能预见到的网络教程多的问题,通用函数,我都是用 ai ,其余不用 ai
WispZhan
184 天前
决定这个概率模型的上限的是使用者的认知。

认知水平越高,对事物本质理解越深,用大模型的效果越好。
MoneyWasUseless
184 天前
AI 只是打打下手,思路和方向还是自己的,只是脏活累活,重复的工作交给 AI 去做了。
pkxutao
184 天前
@aikilan #27 查了下,貌似起飞还不能完美自动驾驶,但是降落基本是依靠自动驾驶了,巡航就更不用说了
cnrting
184 天前
是你厉害了,还是 AI 厉害,这是个问题
fahaocuihua
184 天前
我是一个基本没有程序的一个人,自己靠 AI 写了一个微信群抢东西脚本,就是触发某三个关键词,然后就发送 1 。
首先就是安装 python 遇到一些问题,一个一个解决,然后装一些库,一个一个解决。
再然后就要找识别文字的库,代码 AI 写好了,刚开始是触发某一个关键词就输入 1 发送,第二个我要求他必须满足 3 个关键词,所以其中的 in text or 要改成 in text and ,有时候关键词识别不准确,就再换关键词,刚开始识别的时候不显示识别的文字,后来让 AI 给我加入了显示检测当前文字,一看检测的乱七八糟。
再然后就是固定区域,只检测这个区域出现的文字,不影响我干其他事。
然后我就抢到了一些价值 200 块的电脑椅子,不过也就持续了几天就没了。
但这让我体验到了一些“乐趣”和程序员的调试“繁琐”,以及现在 AI 的强大。
SamLacey
184 天前
工具越先进,工作越累
null05121
184 天前
我觉得 AI 对我们的影响不止在编程能力方面,用好 AI 的人和不会用 AI 的人差距会越来越大。AI 给有好奇心、有想法、有创造欲的人提供了更便捷快速的手段来实现他们的目的
luckyrayyy
184 天前
目前 AI 最大的作用还是问答,非常有助于提升个人知识面
vaas
184 天前
@mumbler 虽然我理解你的意思,但 vibe coding 真的不是这个意思😂这个词不太好翻译,硬要说,就是一种放弃对代码的控制,信任 LLM 的输出,一边 vibing (跟着感觉走?)一边 coding ,有点随波逐流的意思。
mumbler
184 天前
@dustynight #73 我也明白你的意思,氛围其实翻译得很好,这种感觉是高维度的人机互动,就像课堂上学 10 年英语都结结巴巴,把你扔到美国去,不用专门学英语,在那个环境里半年就很流利了
LPJD
184 天前
[感觉程序员正在朝更牛逼的工种进化,可能以后反而不会失业] 这个推论违背经济逻辑。从古至今,生产力一直在提高,有哪次生产力会让工人的工作更加稳定,收入更高?以前人力拉车一天能只跑 20 公里,现在开出租车一天能跑几百公里。30 年前的程序员做出来的网页那么样式难看,为什么他们收入那么高? AI 能提高生产力,无非是换一个工具而已工作而已。失业不失业,是市场决定需求决定的。当工人一天能干两天的活时,公司并不会给工人付双倍工资,而是将工人减少一半
layxy
184 天前
懒得看开源项目源码,费时费力,用了 ai 编程有时候他的代码很受用,学习了不少
W4J1e
184 天前
有时候 AI 会陷入死循环,对于终端输出的错误日志理解到一个可能不想关的方面,继续报错,它也继续执拗地改它认为存在的问题。
LPJD
184 天前
程序员是工人。只是软件开发技能就是程序员拿出来卖的商品。换成商品就好理解了,手机也是商品。10 年前的手机性能那么差,卖 2000 。现在手机性能都涨 10 倍,但还是买 2000. AI 提高生产力是同样的经济逻辑,程序员能力提高了,失业不失业就难说了
sakumiya
184 天前
我用 GitHub Copilot 智能补全和 chat 我会认真的看它的实现方法 ,再修修改改放到自己的代码中.一段时间过后自己还记得.
但是我用 cursor agent 模式.AI 实现的功能,只要没报错.一把梭.事后根本不记得有这段代码
levelworm
184 天前
不行啊,写代码是为了满足我的创造乐趣,所以不能让它代我写代码。如果长期这么下去,水平肯定下降的,除非你每次都自己先写,然后让 AI 评审。但是 cursor 是嵌入到 ide 里的,有几个人有这个毅力。还不如不用 cursor 这种嵌入 ide 的东西,只用 ChatGPT 这种就好了。

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

https://www.v2ex.com/t/1127404

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

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

© 2021 V2EX