首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >不懂计算机科学的人用好 AI 编程是妄想

不懂计算机科学的人用好 AI 编程是妄想

作者头像
人月聊IT
发布2025-08-06 18:31:07
发布2025-08-06 18:31:07
4500
举报
大家好,我是人月聊 IT。今天分享对王垠发布的一篇《不懂计算机科学的人用好 AI 编程是妄想》的文章的读书笔记。

我准备根据原文内容来简单谈下自己的一些实践后的看法。供参考。

现在网络上真是太多误导了,说 AI(LLM) 编程太厉害,一行代码没写完成了项目之类。根据我之前用 ChatGPT,Claude,Copilot,最近用 Cursor 的大量实际经验,不懂编程的人想要用 AI 做出成功的项目,几乎是妄想。

这句话没有毛病,完全同意。现在鼓吹零基础学AI编程的人太多,包括很多自媒体文章或视频的演示给他人极大的误解。大家可以看下大部分人演示的什么玩意?

帮我写要给贪食蛇游戏?或者 帮我写一个俄罗斯方块游戏?

然后大家会感觉AI啪啦啪啦写以几千行代码很厉害。但是里面的问题点在哪里呢?这里场景叫做已知具备标准解法的通用问题。问题足够标准无变化,不管AI是记忆住的还是内容生成的,都很容易解决。但是真到了我们真实需求场景,问题就复杂了。

我们举两个小例子来说明。

第一个例子让AI帮我清理微信桌面版文件存储目录里面的重复文件。好了如果你提示语是帮我清理微信重复文件,AI能够很好处理吗?大部分时候AI无法处理。你需要的提示语是哪个目录下,判断文件是否重复的规则全部在提示语说清楚,告诉AI,AI才写出准确的程序给你。经过我最近2-3年的观察,大部分的不懂计算机科学,或者不具备基本的理工科思维的人,基本无法把这么看似简单的事情说清楚,写清楚。

第二个例子我让AI帮我写一个爬虫程序 ,爬取我的知乎专栏文章,然后将其存储为本地文件。你们自己可以试下AI能否很好完成。这个除了要给出一些类似反爬虫要求的提示语约束外,最好还是懂html基础知识,告诉AI精确的是取哪个DIV,哪个Table里面的内容数据。通用道理,这个没有基本的编程知识的人基本也没法做。

你想下上面的提示语,实际没有基本的编程知识基本没法写出来。你不懂AI,AI也不懂你,然后就是双方在那反复试验,浪费时间,最终可能还得不到你期望的结果。

会编程,但不懂真正的计算机科学,不懂如何写出极其简单,逻辑精密的程序的人,想要靠 AI 写出“王垠级别”的代码,当然也是妄想。

好了,如何才能够让AI写出逻辑紧密,高质量和高健壮性的代码。实际道理很简单,就是你要又足够精确的提示语。所以王垠说的是懂计算机科学,懂编程,而没有用精通编程或精通算法。这里面的差异点究竟在哪?

我的理解AI写出高质量代码很简单,就是你要又足够结构化,足够精确的提示语需求。不要让AI去猜测你的意图,不要让AI自主去从多种可选方案中自己去选择。所以这里的懂计算机科学我想将其换为懂业务和懂需求,加懂计算机科学和编程。不是说你要精通编程,而是你要真正写过代码,了解代码是如何编写出来的,你才能够更好的去驱动代码。

懂编程到什么程度?

很简单,就是要让你能够在没有去编程的时候,给出精确的提示语需求和精确的结构化规则和业务逻辑描述定义的程度。你做不到这点,就代表不懂编程。你编程懂得太多,对于你输出精确化需求没有帮助,那么这些编程内容属于可选范畴。

Cursor 这个月给我生成了 6 万多行代码,猜我接受了多少行?不到 5000 行。经常走偏方向,大量重复同样的逻辑而不懂合理抽象,甚至把我经过反复手动调整本来正确的部分改错,把我给它纠正过的地方又改错,写一大堆复杂的测试把自己套进去,最后无法明白为什么测试“不通过”…… 几天前创建的一个新项目,耗费我 20 多个小时的“口舌”,最后生成 2 万多行代码,复杂到无法修补,我不得不决定完全推翻重来,它居然还在欢呼“成功了!” 并列出一项项的“成果”,对完全没道理的基本错误视而不见。一遍遍地给它指出问题没解决,然后它一次次的回答“哦,我知道了!”,“这次我找到问题的根源了!”结果全是画饼…… 因为实在没法改对了,只能自欺欺人吧? 你说目标不要定太高太快了,要有策略。我们一点点的从最基本的小函数开始写,一步步的进行,它就能做对吗?我发现它连小块的代码也不一定写的好。有些几行的小函数都要我纠正多次,它才能改对。然后说不定将来什么时候它又把它们改错了,所以你得盯着它,你得懂什么代码看起来是对的。

对于这个问题,全部把锅丢给Cursor,Cursor不背这个锅。

我先来给大家举个例子,如果我们当前新入职一个员工到团队,这个人已经有3,5年的编程经验。那么他是不是马上就可以投入到实际项目复杂功能的开发呢?

实际上答案是大部分时候都不行。

原因就是这个员工需要花时间去了解你做的项目,你的业务背景和业务流程,你们团队已有的开发框架,开发规范,开发约束,包括那些你们团队没有形成在标准的纸面规范文档上面的那种大家心照不宣的通用团队词汇表,做事情的方法等。只有这些都熟悉后才能够进入正常轨道。

和AI和Cursor的沟通协同同样的道理,如何让AI更加懂你,这个是需要花费前期不小的协同沟通工作量逐步总结出来的,将这些共性规范约束,做事情方法流程,团队词汇表等提前预置到AI工具里面,让AI越来越懂你,能够按你的思路和通用规则做事情。

如上图,为了更好的应用好AI工具,实际我们在前期需要做大量的规范模板,提示语模板,有些形成上下文工程的md文件,有些配置到类似Cursor的Rules规则里面。这个才是你能够真正应用好AI工具的一个关键前提。

类似我原来谈到。实际AI编程的第一步往往就是通过Markdown结构化的写文档,但是程序员天生不愿意写文档,总是想到哪里写到哪里,这个思路实际是不适合快速转换到AI编程上面来的。

来看下面的截图:

我们做一个简单的学生选课系统,一开始不要去生成代码。先构建一个DesignDoc的子目录来编写文档,至少包括如下几类:

  • 总体系统介绍,技术架构和选型说明
  • 数据库和对象设计
  • UI/UE界面规范约束
  • 各个功能点设计(拆分为多个md文件)

好了,再回来2万多行代码的问题,越改越乱的问题。

这里实际本质都是上下文长度,AI记忆能力的问题。实际解决方法是两点。第一个大项目要拆解为小项目,小组件,然后按架构里面的分而治之的思路来做这个事情。第二个就是沟通几轮后要注意及时让AI归纳总结,将前面输出内容先做归纳总结,这个归纳总结是你后面要用的内容,哪怕前面细节内容忘记了也不影响你后面的推理和输出。

所以当前很多问题不要一股脑认为是AI的问题,除了长下文记忆长度外,实际当前AI大模型在AI编程上面没有明确的硬伤,我们不是去找AI问题,而是应该考虑如何调整我们传统开发编程的模式,转变和探索一种更好的和AI协同的方法。

但知道什么样的代码是好的对的,这就是最难的事情。没有深入的研究和很多的经验,是无法知道的。是的 AI 现在成了码农,我成了 VP。但一个不懂计算机科学的 VP 领导着一群写面条代码的码农,能做出什么好东西?呵呵,我看着一个个的公司里存在的类似现象,就明白了。不知道手下的人在做什么,不知道谁说的是对的,不知道下一步该做什么。有多少 VP 是在瞎蒙乱撞,坑蒙拐骗,我都是清楚的。 所以有了 AI 还是没用,因为你没有能力驾驭它。你没有资格做 VP。

使用AI编程的时候,关键是你能够更好的驾驭AI,这个观点完全赞同。

你当前有一个小系统的需求,你交付给你的一个开发团队来开发实现,实现完成后你实际没有太担心,你也不需要去理解设计思路和代码实现逻辑。原因是即使上线的软件出现问题,你知道团队里面的张三能负责修改和维护,你对开发团队天然的基础信任关系。包括即使张三离职你也不用担心,因为张三走了李四还可以借助维护和修改变更。

那么这里就带了一个灵魂发问。

如果当前一个企业的完整业务系统开发需求,也假设AI编程能够完成基于你的需求开发和实现出来,测试也全部通过并部署上线。那么现在的关键问题就来了,你作为驱动AI帮你干活的人,你需要不需要去完全理解和懂得AI输出的代码?

你如果不去读这些代码,你是否能够做到对AI代码足够的信任和放心,不仅仅是上线后运行的稳定性,也包括出现问题故障后,AI还具备进一步扩展变更和智能修复的能力。那么对我们的程序员来说,当前多少人敢完全不懂AI代码,将代码打包上线生产环境?

这个就更加容易理解前面谈到的懂计算机科学,懂编程。其一是你要能够精确的写出提示词需求,其二是虽然代码不是你写出来的,但是你要能够完整的读懂和理解代码。如果达不到这个要求,你自己玩玩AI编程,写点自己用的小工具没有问题。但是你说要通过AI做个大系统上线企业生产环境,那么有几个人敢于这样搞?

或许这个问题在不久将来会解决,但是至少现在不行。

因为世界上绝大部分的代码都是平庸的面条代码程序员写的,训练数据都是那样,所以 AI 几乎没法写出“王垠级别”代码,也是意料之中的。我发现把我写好的代码给 AI,它确实能进行一些有用的分析和改进,但完全从头开始写的话,AI 真是寸步难行。几乎每一个小的函数都需要我反反复复多次的纠正,才能达到我期望的简单和可理解程度。 我的计算机科学班里的代码,全都是极其精辟的代码,跟普通公司的代码有着天壤之别。所以上我的课的同学,是没什么希望使用 AI 来完成练习的。因为数据量太少,没有训练数据啊,所以 AI 恐怕永远也无法达到这种精辟程度。当然毕业之后,同学们的水平都远超 AI,也远超作为 AI 训练数据来源的那些平庸程序员。 这就是为什么我的课程叫做“计算机科学”,而不是“编程”。计算机科学家和程序员/软件工程师是有巨大差别的。AI 也许能取代普通程序员,却永远无法取代计算机科学家。它只能被计算机科学家利用,作为他的工具。

大家可以思考一个问题。我拿我思维专栏文章举例。

我思维专栏写了很多思维,学习方法模式,事物认识,问题分析解决,实践复盘的文章。包括其他人也写了很多思维类,认知类的文章。这些就是AI的训练预料。那么现在所有人都不再写思维类的新文章了,那么让AI来撰写思维类的文章,你感觉AI能够真正推理创新出新的思维理论,思维实践类的文章吗?

答案显然不行。

我个人的理解可以简单总结为,AI可以更好的完成对于已知世界知识和内容的重构,但是无法完成对未知世界的创新和突破。AI所有的输出来源于提前训练的语料。包括类似AI写小说这些场景,我理解都是无法跳出固有模式,形成新的创新。

所以后续AI时代,整个人类社会和整个科技要发展,一定存在前沿知识探索和创新的人。所有的人往往也会分为两类,大部分的人将成为应用AI的人,只有少量的人仍然具备创新精神,实践和实验精神,能够给AI提供新鲜的新的语料。否则就是AI越往后越平庸,就是这个道理。

别误会了,我其实觉得 AI 是很好的东西。使用它们的时候,显然我解决问题的速度加快了很多,很多烦人的事情不用我亲自去管了。这就是为什么经历了这么多次失败我仍然继续使用它们。但你必须明白,AI 只是把人的能力翻倍了而已,如果你的能力是 0,无论乘以多少都仍然等于 0。

完全同意这个观点,再补充一句话:AI让强者更加强,让弱者更加平庸。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2025-07-31,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 人月聊IT 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档