来聊聊自己手动写代码和AI写代码,到底哪个才是最好的一条路?

2 须道菩提一剑斩天 6小时前 119次点击

如果把问题说得直白一点:“自己手写代码”和“让 AI 写代码”,现在已经不是二选一了。真正比较好的路线,是人负责理解、设计、判断,AI 负责大量实现。

我甚至觉得,未来学编程最容易走偏的有两种极端:

第一种:完全不用 AI,什么都自己敲。

这种方式当然能练基本功,但效率太低。比如你要写一个 Android 功能,自己花两个小时查 API、试参数、改语法,AI 可能几分钟就能给你一个初版。把大量时间消耗在“查怎么写”上,并不一定是在提高真正的编程能力。

第二种:完全不会代码,只会让 AI 生成。

这个反而更危险。因为代码一旦出现问题,你不知道问题在哪里;AI 改了一处,又可能把另外三处弄坏。尤其是你以前碰到的那种 Lua、AndroLua+、Android 工程问题,单纯复制 AI 的代码很容易出现“看起来合理,运行直接报错”的情况。

所以我更推荐第三条路:

自己学懂代码的基本原理 + AI 负责实现大量代码 + 自己负责检查、调试和决定最终方案。

可以把它理解成:

以前的程序员:

我知道怎么写,所以我写代码。

现在比较理想的程序员:

我知道我要做什么,也知道代码应该怎么工作,所以我让 AI 帮我写,然后我能够判断它写得对不对。

这两者看起来差不多,实际上差别非常大。

比如你说:

“帮我写一个单指拖动控制角色移动的 Lua 程序。”

AI 可以直接写出来。

但如果程序报:

attempt to perform arithmetic on a nil value (global '竖')

如果你完全不懂代码,你只能继续问:

“AI,帮我修。”

然后 AI 可能改一版,又报另一个错误。

如果你知道 Lua 的变量、作用域、全局变量、函数参数、运行环境这些基本概念,你看到:

竖 = 竖 + 1

就会马上想到:

“这里的竖根本没有初始化,或者当前执行环境里根本没有这个变量。”

这时候 AI 就真正变成了你的程序员助手,而不是你的黑盒代码生成器。

其实现在学编程,重点已经变了

以前学习编程,经常强调:

语法 → API → 数据结构 → 算法 → 项目

现在我认为应该更加偏向:

逻辑 → 程序结构 → 调试能力 → 阅读代码 → AI 协作 → 语法/API

因为语法和 API 本身,AI 确实已经非常擅长查。

例如你不记得 Java 怎么创建线程。

以前你可能要翻书、搜索、看教程。

现在直接问 AI:

“Java 21 给我一个安全的后台任务示例,并解释每一部分。”

这非常正常。

但如果 AI 给你的程序出现:

NullPointerException

你至少应该知道:

“这是空对象引用问题。”

这就是必须掌握的东西。

我觉得真正不能交给 AI 的,是这几个能力

第一,判断程序到底应该怎么设计。

例如你要做一个游戏。

到底应该:

触摸 → 判断手势 → 改坐标 → 检查障碍 → 播放声音

还是:

触摸 → 创建移动事件 → 游戏循环处理 → 更新坐标 → 碰撞检测

这不是 AI 替你决定就一定正确。

第二,读代码。

现在很多人犯的一个错误就是:

“我不会写代码,但是 AI 会写,所以我不需要学。”

其实恰恰相反。

AI 时代最重要的能力之一就是看懂 AI 写出来的代码。

你不一定需要能够从零敲出 5000 行代码,但你最好能看到 5000 行代码之后知道:

这里负责输入。

这里负责地图。

这里负责网络。

这里负责保存数据。

这里可能产生空指针。

这里修改了全局变量。

这里是程序启动入口。

这已经非常强了。

第三,调试。

我甚至认为:

AI 时代,调试能力的重要性会上升,而不是下降。

因为以后代码生成速度越来越快。

以前一个程序员一天写 300 行。

以后 AI 可能一分钟给你 300 行。

于是问题就来了:

这 300 行到底对不对?

所以真正稀缺的不是“生成代码”,而是验证代码。

那是不是意味着以后不用学编程了?

我认为不是。

反而应该学习。

但是学习方式应该变。

你不需要把自己训练成一个“人肉代码生成器”。

例如:

for 怎么写

while 怎么写

Java 的某个 API 参数是什么

Android 某个类怎么调用

这些东西不用死背。

但下面这些东西,我建议认真学:

变量是什么。

函数是什么。

参数和返回值是什么。

作用域是什么。

条件判断是什么。

循环是什么。

表、数组、对象是什么。

类是什么。

事件是什么。

异步是什么。

程序状态是什么。

文件、网络、数据库分别是什么。

错误为什么产生。

程序为什么会崩溃。

这些东西一旦理解,换 Lua、Python、Java、JavaScript、C#,你都能逐渐适应。

而且你这种情况,其实特别适合 AI 编程

因为你本身就不是单纯想学一个语言的语法。

你之前折腾过 Lua、AndroLua+、Android、APK、手势、TTS、游戏逻辑、工程构建这些东西。

这种情况下,完全靠自己一点一点查资料写,会非常慢。

但完全复制 AI 的代码也会非常痛苦。

最合适的模式其实是:

你提出需求 → AI 写第一版 → 你运行 → 把错误原样给 AI → AI 分析 → 你理解为什么错 → 再修改 → 最终代码进入自己的项目。

这个循环重复几十次以后,你会发现一个很有意思的事情:

一开始你可能是:

“AI,给我写一个。”

后来会变成:

“这里为什么是 nil?”

再后来:

“这个函数的执行环境不对。”

再后来:

“这里不应该直接改全局变量,应该传参数。”

最后甚至会变成:

“这个架构我自己已经想好了,你帮我实现这一部分。”

到了这一步,你已经不是单纯依赖 AI 了。

你是在使用 AI。

这两者差别非常大。

所以如果让我把这件事情压缩成一句话:

不要和 AI 比谁写代码快。让 AI 写得比你快;你要做到的是,比 AI 更清楚这个程序到底应该是什么。

未来真正厉害的程序员,很可能不是那个一天能手敲最多代码的人,而是那个能够把一个模糊需求拆成清晰系统,并且能够让 AI 快速实现、测试、修改和维护的人。

所以我不建议你走“纯手写派”,也不建议走“纯 AI 派”。

我更推荐:

30% 学编程原理 + 20% 自己写 + 50% AI 协作。

而且随着能力提高,这个比例还可以继续变化。

最开始可以让 AI 多写一点;等你越来越懂,逐渐变成:

你负责架构,AI 负责施工。

这可能才是现在学编程最有意思的一条路。

提示。这是我的真实经历

话再说清楚点就是。你不能什么皮毛都不会,就去让ai帮你写代码,ai也不知道他写的对不对,反正ai帮你写了他就是写了。之后,如果想让ai帮你做应用,就必须从网上找代码教程。本次讨论到此结束,评论区交给大家

共 3 条评论
陶醉 6小时前
很不错。不过现在的模型自身都不太稳定。你用的可能是比较高的推理模型。但是可能他后台可能给你用的低版本模型,尤其是在用的人多,算力不够的情况下。如果是中转,那就更不用说了,多了一层不可控因素。所以我从ai Coding改为了手动。
陶醉 6小时前
Ai还有一个问题,也可能是我不会用,就是补丁上打补丁,补丁上再打补丁,最后代码弄得特别臃肿。手动可能只需要100行就能解决问题,你丢给他,你可能1000行都打不住。还有重复造轮子。过度的防御性编程。
总结就是自己也要懂一些基础东西,剩下一些复杂操作全让AI帮跑就行了