最近在做《生财有术》的 Cursor 教练,很多同学都是从产品经理、运营等各种工种开始写代码。这时候大部分人都是让Cursor 进行开发,然后一路 Apply All 就成功的开发出来一个产品了。这就是典型的“写代码”
而真的编程,一定是在已有的基础上一个一个功能添加,然后代码就生长起来了
当最初被写出来的代码需要增加功能时,自然也要从写代码转变为生成代码
和 AI 的协同关系
我认为人和 AI 的协同关系如下
-
人是需求方,Cursor 是外包团队。编码工作,Cursor 主导,听 Cursor 的 -
人和 Cursor 是结对编程,编码工作人和 Cursor 主导 -
长期维护、添加功能,人主导,Cursor 是工具
最初阶段,人提需求 Cursor 外包
最初,我们希望 Cursor 或AI工具能够生成所有代码。我们作为需求方,与AI编程工具的关系就像是与一个外包团队合作。这个外包团队根据我们的需求生成代码,而具体生成了什么,甚至使用了什么语言,我们并不清楚。
在使用外包团队中可能遇到的问题:
-
对当前的需求是否理解一致 -
对新需求/Bug如何处理
需求是否理解一致
最大的问题在于双方对需求的理解是否一致。当理解不一致时,是否有有效的方法进行需求对齐?在需求对齐后,是否能够快速对接并查看版本更新?这是第一个问题。
当需求理解不一致的时候,就容易出现 Cursor 怎么也无法写出来我们期望的内容。这时候要求我们要把需求尽可能的写的清晰明了
可以提的需求的种类
-
功能需求,这个也是最常见的 -
技术选型需求,大家可以明确的告诉 Cursor 我用什么技术,是 Python 还是 Java;是前后端分离,还是 Server 一体;是 Web 网页产品还是小程序还是 iOS 程序;数据库是 sqlite 还是 mysql 还是我就用一个文本进行存储 -
部署需求,告诉 Cursor 部署环境是什么,是自己得服务器,windows/linux ;还是使用 Vercel 这样的平台;使用的是 AWS,aliyun 还是自己弄
如果你是一个编程小白的状态,可以先死记硬背然后再尝试理解
-
记住一些最常用的技术选型 -
后端 -
Python (可以后端,也可以前端后端都有) -
Sqlite 数据库(基本上不用任何外的配置,拿来直接用) -
前端 -
Vue / tailwindcss (如果需要自己写前端) -
Vite 进行管理 -
管理相关 -
Git / github -
部署相关 -
Vercel -
问 AI 啊 -
Cursor 本身就是 Claude-3.5-sonnet ,有些同学还充值了,充值了往死里问啊 -
devv.ai / 秘塔 / perplexity.ai -
ChatGPT / Claude / Kimi / 豆包
然后积累出来自己一些常用的脚手架文档或者代码
和 Cursor 外包的关系,反馈 → 运行 → 反馈 → 运行
对新需求/Bug如何处理
新需求,我们一定是要完整的进行描述,我们人需要加入到 修改 的这个过程。提需求,就需要把完整的上下文、错误提示、情况描述等,完整的告诉 Cursor,然后 Cursor 才好知道如何进行工作
我们可以很方便的把错误信息传给 Cursor

一定要给出完整的上下文,AI 的工作原理就是在新 Chat (不管是 Cursor 中还是 ChatGPT 中新 Chat)都是没有上下文的。他不知道我们脑子里面想的内容,所以一定一定要把完整的
-
上下文 -
场景 -
需要解决的问题 -
要避免的情况 -
最好举几个例子
一起告诉 Cursor,然后才能比较好的给你一个修改
到这里,其实我们就已经不完全是让 Cursor 写代码了,人开始介入编码工作了
和 Cursor 是结对编程
很多有经验的程序员都不会让 Cursor 写代码自己啥也不管,一定是和 Cursor 一起编程
最关键的是,人会对整体项目进行一些设计,比如代码结构、技术选型、甚至是架构的设计。虽然看上去人参与的并不多,但足以给 Cursor 指明方向,Cursor 就可以更加精准的生成代码
这就变成了人和 AI 协同的过程
在将想法转化为代码的过程中,需要持续地进行沟通验证与 review。我与 Cursor 之间有着双向的代码审查机制,我仔细检查 Cursor 生成的代码,同时也依靠它来审视我的代码。
从写程序的劳动投入维度来看,可大致分为体力劳动与智慧劳动。
-
在体力劳动方面,例如当我提出 “我现在要实现一个快速排序,你帮我把这个代码写出来。” 这样的任务时,Cursor 大约能够解决其中 90% 的工作量。 -
在智慧劳动领域,诸如 “我应该如何去设计一个消息队列,到底要不要一个写缓存?我的分布式 ID 应该如何设计?” 这类涉及深度思考与设计决策的问题,Cursor 大概能解决 30%。
我会将诸多思考与 Cursor 深入交流,获取它的提示并让其审查我的代码,携手推进工作。这种合作模式带来的效率提升极其显著,因为它成功消除了大量以往我在开发中不确定的环节。
在未采用这种与 Cursor 结对编程的方式之前,这些不确定环节占据了我总消耗时间的约 1/3。而剩余 70% 至 80% 的时间,往往都耗费在如字面意义上的敲代码这类重复劳动之中。在这种情况下,借助 Cursor 帮忙生成代码自然毫无问题,它让我们能将更多精力聚焦于更具创造性与挑战性的智慧劳动部分,从而大幅提升整体开发效率。
和 Cursor 的结对关系,修改 → 运行 → 反馈 → 修改 → 运行 → 反馈
长期维护、添加功能
人主导,Cursor 是工具
这里暂时就不展开了,想也知道人是主导
总结一下
如果你是一个编程小白,要写的也是一些小工具,小脚本什么的,让 Cursor 去写代码就足够了,我们就把他当外包团队使用
如果想要让自己的工具、产品一直迭代更新,那学习一些编程是必要的,因为这时候你想让 Cursor 写也做不到了,只能你带着 Cursor 让代码生长了

