Feisky 让 AI 成为你的第二大脑

AI

AI 时代程序员成长指南:为什么有人越用越强,有人越用越弱?

Anthropic 研究发现用 AI 学编程的人成绩反而低 17%。差距不在用不用 AI,而在怎么用。本文剖析答案机与老师两种使用模式,给出 AI 时代程序员保持成长与代码手感的实用建议。

前几天跟一个朋友吃饭,聊到 AI 编程,他突然来了一句:“我现在离开 Claude Code 写个 for 循环都要想半天。”

我当时笑了,回来路上越想越不对劲,这说的不就是我吗?

上周有要改个小脚本,我习惯性地打开 Claude Code,然后意识到这玩意儿就十来行,犯不着。于是关掉,自己写。结果卡在 Python 语法格式上,愣是想了快一分钟,最后还是搜索了一下才知道怎么写。这要搁一年前,闭着眼都能敲出来。

一个反直觉的研究发现

Anthropic 前段时间做了一项挺有意思的研究。他们找了 52 名软件工程师(都是刚入门的初级工程师),随机分成两组做关于学习 Python 异步编程库 Trio 的对比实验。一组用 Claude Code 辅助学习,另一组保持传统方式。

结果挺意外的。用 AI 辅助的那组,对新知识的掌握程度显著下降了,测试得分比传统方法组低了 17% 。

这个数据一出来,估计很多人的第一反应是“AI 让人变笨了”。但真相没这么简单。

研究人员深挖了一下,发现 AI 辅助组内部不同人的差异其实很大。有些人用 AI 学得特别好,成绩甚至超过了对照组的平均水平。造成这些差异的根源不在于用不用 AI,而是怎么使用 AI。

两种截然不同的使用模式

再把 AI 辅助组分成不同的人群,低分群和高分群的 AI 使用方法明显不同:

低分群有个共同特点,是把 AI 当成了“答案机”。遇到问题就扔给 AI,等答案出来直接复制粘贴,就完事了。整个学习过程基本就是 AI 写代码,他们在当搬运工。

而高分群则不同,他们的 AI 用法完全不同:他们会让 AI 解释代码,追问为什么要这样写,有没有其他方案。有时候故意先自己试着写,写错了再让 AI 指出问题在哪。AI 在他们手里不是代工,更像是个老师。

调试能力的差距最大

再进一步分析,还有个细节值得注意。在代码阅读、问题调试以及概念性问题这三个测试维度中,调试能力的差距最大。

这也挺好理解的。问题调试对人的要求最高,需要真正搞明白代码在干什么、为什么出错、怎么修复等。这些能力只能通过自己动手踩坑来练,靠 AI 代写根本不行。

我相信很多人都有类似的体会。对于自己一行一行敲出来的代码,出了 bug 之后凭直觉就能很快定位问题的大概位置;而对于别人或者 AI 写的代码,即便之前在合并的时候做过 Code Review,也需要花更长的时间去理解和定位。

巧合的是,AI 大神 Karpathy 前几天也说过类似的话。Karpathy 承认,他已经注意到自己手写代码的能力正在逐渐退化。生成代码和理解代码在大脑中属于两种不同的能力。主要原因在于编程涉及大量语法细节,虽然手写代码变得困难,但阅读代码依然没有障碍。

问题不是 AI,是使用方式

聊到这儿可能有人会问了。照这么说,AI 编程工具还能不能用了?

当然能用,并且必须得用!但关键是怎么用。

我总结了几个我自己在用的方法,希望能够给你提供一些参考。

1. 让 AI 多解释,少直接给答案。 每次 AI 给出代码后,不急着复制粘贴。先问它为什么这样写,有没有其他方案,这样写的优缺点是什么。把交互模式从“AI 给答案无脑接受”变成“AI 提供思路,你做决定”。Claude Code 有个 Learning 模式就是专门为学习新技术设计的,可以利用起来,开启方法是 /output-style 然后选择 Learning。

2. 定期关掉 AI,自己动动手。 每周抽一点时间,不借助 AI 辅助,自己写点代码,重温之前掌控代码的感觉。

3. 把 AI 当结对伙伴,而不是外包。 结对编程的核心是两个人一起思考,一个写一个看,交替角色。用 AI 编程也可以跟 AI 一起做设计、一起编程。AI 写完你审查,发现问题你来改,或者让 AI 解释为什么这样写。当然,这种模式比纯委托累多了,但学习效果和最终代码质量要好很多。

4. 遇到问题先自己想一想。 遇到问题时,不要马上就去问 AI。先自己想一想,有了初步思路之后,再让 AI 帮你分析和完善。这几分钟的思考/挣扎非常重要,适度的挑战有助于加深记忆和理解。如果总是让 AI 直接给出答案,大脑就没法经历“挣扎-顿悟”的过程,学习效果会大打折扣。

写在最后

最后,给程序员们提几个小建议,希望对你有所帮助。

刚工作没几年的同学,老实说风险最大。基础还没打牢呢,就开始全用 AI 写代码了,很容易变成知其然而不知其所以然。我的极客时间课程留言中也看到很多类似的情况,很多很简单的问题不知道怎么排查,明显就是没有掌握背后的原理。所以,在用好 AI 编程的同时,也要注意借助 AI 积累经验。

工作几年之后,情况不太一样。基本功有了,用 AI 反而能加速学习新东西。我自己是后端出身,前段时间居然也搞起了一个前端的 VSCode 插件,靠着 AI 确实省了不少踩坑的时间。不过原来擅长的领域,倒也是真的退化了,这个需要以后注意。

至于干了很多年的老程序员,我觉得可以更大胆地把重复劳动交给 AI,腾出时间做架构设计、技术评审这些事。但话说回来,Karpathy 那种级别的大神都说自己手写代码能力在退化,咱们也别太自信。偶尔脱离 AI 写写代码,保持一下手感,没坏处。


相关资源


欢迎长按下面的二维码关注 Feisky 公众号,了解更多云原生和 AI 知识。

Feisky 公众号二维码

相关文章

目录

本页目录