菜鸡程序员如我,是如何拥抱 AI 编程的?

前言

此文不是一篇技术文章,而是一篇笔者长达一年时间深入使用 AI 编程产品后的碎碎念随笔,嗯,闲聊。

主要是和大家聊一聊对 AI 编程的看法,分享分享一 nei nei 心得,也会谈到国内外一些出色的 AI 编程产品使用体验,最后还会谈一下 AI 时代下的程序员。

嗯,全文几乎都是文字,也没有链接,别问为什么,自己动手丰衣足食,真的想要了解相关内容,就自己动手检索体验吧!

为什么有人排斥 AI 编程

是的,你没看错,其实有很多人排斥使用一些 AI 编程工具,而我曾经就是其中一员。

去年年初的时候我其实还是比较排斥 AI 编程工具的,因为我个人觉得,大量常规性代码的生成会降低我的敏感度,会让我对其产生依赖,会让我编程能力退化。

所以,我当时在体验了一些 AI 辅助编程工具后很长一段时间都没有使用。

相信当时和我一样想法的也有不少,大家的心态都很类似,而排斥的原因无非就那几个:

不信任: 有些人觉得 AI 工具生成的代码可能存在逻辑错误或者安全隐患,对 AI 生成的代码缺乏信任感。

担忧: 有些人觉得 AI 工具的大规模使用会降低编程门槛,从而增加行业竞争,会有种威胁到自身的职业安全感。或者觉得 AI 工具的大规模使用后会产生高度依赖,导致自己编程技能退化,尤其是基础编程能力和算法能力方面。

局限性: 有些人觉得 AI 对复杂性上下文的理解还不够好,过渡依赖使用的话在某些场景可能会更浪费时间,因为需要大量的调整和重写,而一般方案生成都不是瞬间的。

习惯: 有些人可能也看到过铺天盖地的各种 AI 新闻,其中不乏一些编程领域的东西,也听说过,只是习惯了现在的开发方式,不想改变,因为改变意味着学习和适应。

隐私: 还有些人怕 AI 编程工具所使用的模型提供方会收集代码数据,造成敏感信息泄露的风险。

那我为什么又开始使用了呢?

为什么要拥抱 AI 编程?

其实很简单,当越来越多的人开始使用 AI 编程类产品辅助编程,这个时候我不用,你用、他用,你们效率随之的提升换个角度就等于我的效率下降,没错,也就是常说的你们 "卷" 到我了.....

试想一下,当别人利用 AI 快速完成你需要花费很长时间才可以完成的任务时,这不仅仅是效率问题,而是一种 时代抛弃 的恐惧感。在某些情况下,拥抱新技术本身也是一种职业素养。

So,我就也开始用了,本着既然用,我一定要用好它的原则,我才开始陆续尝试市面上各种 AI 编程衍生产品。

所以现在让我说我们到底要不要、该不该使用 AI 编程?

要,当然要。

程序员有个看不见摸不着的能力:检索能力,也叫解决问题的能力。

简单来说就是遇到问题,谷歌(百度)检索出相关联的内容并尝试解决,所以我们通常私下也会戏称:面向谷歌(百度)编程

有人会问,这也算是一种能里吗?

没错,它是,不要觉得谷歌、百度人人都会,大部分人遇到问题后,谷歌、百度就是解决不了,你难道没有想过这是为什么吗?

还是说你真的以为所谓的大佬就是无所不能的,你问什么大佬都会。。。其实,很多问题上,你询问的大佬并不是特别清楚,但是他们为什么能回答你,因为他们除了经验之外,还有极强的检索能力,你在问问题的时候,如果你的描述没有很大的问题,这些人能通过你的描述快速提炼关键词检索,并能从大批结果中检索出与之匹配的正向结果反馈给你。当然如果你问问题的描述就驴头不对马嘴,那对不起,不予回复(所以大家问一些人问题的时候没有得到回复多想一想自己对问题的描述是否简要清晰)。向搜索引擎提问是门学问,而向人提问,同样是门学问,区别是向搜索引擎提问,要更精准,而向人提问,很大程度上就是让别人帮你精准。。。

所以,向搜索引擎提问这就是检索能力的一种体现,它是由检索经验积累+关键词提炼构成的。

你是不是想到了什么,没错,生成式 AI 时代的来临,最先取代的就是搜索引擎,而与之关联的检索能力载体就由搜索引擎转到了 AI 身上。而我们在搜索引擎中的关键词提炼,映射到 AI 上就是 Prompt

这是一个向人提问 → 向搜索引擎提问 → 向 AI 提问的过程演变。

So,随着各种 AI 应用的大面积落地普及,如何使用 AI、如何向 AI 提问、如何让 AI 答出我们想要的解,这同样是新时代中看不见、摸不着确又很重要的能力。只不过在 AI 中,我们更高大上一些,管它叫 Prompt 提炼。

Prompt 提炼有秘籍吗?

你是不是觉得我会教你们如何提炼 Prompt

No,讲不了一点。

晓得你们想听什么 10 分钟快速学习提炼 Prompt 、看完这篇彻底学会 Prompt 等等等等,嗯,那就想一想吧,我肯定是不会告诉你们的,但是我可以给大家讲讲我是如何锻炼搜索引擎检索能力的。

我刚开始工作时,也是错漏百出,经常尬住,我又拉不下脸求教,为了能够锻炼自己,我加了很多很多前端交流群(你想象不到的多),我闲的没事就水群。。。我闲的没事就看群,专找群友在群里问的问题,每当我看到一个问题,我就提炼一下关键词去谷歌、百度找答案,不清楚答案是否正确?没关系,我负责找,问问题的群友负责尝试,一个不对两个不对三个肯定对,,,每一次错误的答案都可以让关键词更精准。

你可能会问,那如果最终还是没有找到方案呢?没关系,还有 Plan B,我会将群友的问题 CV 到另外的一个、两个甚至五六个技术群,寻找 "大佬" 们的答案。得到回复再 CV 搬运回去给群友尝试,而我也会从不同答案中提炼所谓的关键词再次检索,直到正确答案出现。

我只是一个无情的 BUG 搬运机器!!!

如此反复,久而久之,我得到了我最想要的这个看不见摸不着的检索能力,也有人叫他解决问题的能力,其实归根结底是检索。除了检索能力的提升,还有知识面的增长、经验的累积同时还得到了群友的友谊。

在这样一个复杂交织的互联网时代,我们并不属于开荒者一代,在这样的前提下毫不夸张的说,给我一台接入互联网的电脑,我能解决 90% 经验解决不了的问题。剩下 10% 里,5% 不能直接解决,但是也能得到一些思路启发,最后的 5% 看天意,因为那仅有的 5% 属于开荒(致敬每个开荒者)。

所以我想说的是,听到再多的速成方案,都不如自己一遍一遍的去尝试,我只能给大家说到这儿了。

所以,现在你知道 Prompt 提炼的秘籍了吗?

AI 编程工具

生成式 AI 爆火之后,其实很多人遇到问题都先 Copy 问一问生成式 AI,得到思路或者代码片段后再粘贴到项目代码中。

后来随着时间的推移,AI 在一些垂直领域逐渐开花,编程领域更是首当其冲,一个个优秀的编程辅助工具开始崭露头角。

早在生成式 AI 爆火之前,其实就有辅助编程工具,通过大量的代码片段和语言模型来帮助开发者补全一些代码,从最早的 Tabnine 我就有体验过,后来随着 ChatGPT 跨时代的到来,GitHub Copilot AI 代码补全随之大火,从而诞生了很多 AI 代码补全工具, 大部分都是以插件的形式通过识别当前文件代码块和上下文来生成一些你可能想要的代码。

GitHub CopilotTabnine 举例:

Tabnine 是基于语言模型的代码补全工具,支持本地化运行,支持团队和企业级部署,隐私性比较好,但是功能比较单一,生成能力不如 Copilot 更智能,当然,现在的 Tabnine 同样集成了 AI 模型,也很智能。

GitHub Copilot 是基于 OpenAI Codex 模型,核心是代码补全和上下文代码生成,它的优点是易用性强,与多个主流编辑器集成,支持多种编程语言,不过在代码隐私方面,仁者见仁。

这两个 AI 工具其实对上下文的理解能力都有限,归根结底还是在 模型对上下文的处理上,因为只能对当前页面辅助上下文的理解来生成代码,并不能基于整个 工程 理解生成,相对项目来说,略显无力。不过还是能够提升一些常规性的开发效率的,这点毋庸置疑。

AI 编辑器

说完了 AI 编程工具,我们来说 AI 编辑器。

谈到 AI 编辑器,Cursor 是不可避免的话题。

基于开源编辑器 VSCode 迁出分支之上构建的 Cursor,是这个赛道灯塔般的存在,我觉得它是一个革命性的产品。

为什么我把 AI 编程工具和 AI 编辑器分开,仅仅因为它是个独立的客户端吗?

当然不是,最核心的点,就是工程二字,没错,就是你想的那样,CursorCode Base 是整个工程,它先将工程内所有的代码进行索引和向量化,再之后你的所有提问都是基于整个工程给出的答案,它会将你的提问结合整个工程代码提交 LLM......记住这一点,这很重要,这是我理解的 AI 编辑器和 AI 辅助工具最核心的区别。

Cursor 还有更多深度集成的功能,比如实时代码补全、上下文感知、智能重构、光标预测、多文件编辑等等等等......

Cloudflare 副总裁年仅 8 岁的孩子,通过 Cursor,仅用了 45 分钟,一节课的时间,就构建了一个聊天机器人。

看到这些类似的报道就真的能体会到 Andrej Karpathy 发的那篇推文,未来就像是 tab tab tab!

对比 GitHub Copilot,如果说 GitHub Copilot 是一个 L1 级别的辅助驾驶,那 Cursor 最低也是一个 L3 级别的自动驾驶......所以我并没有将之划分为一类,因为没有可比性。

ok,接下来说 WindSurfWindSurf是由 Codeium 团队开发的下一代 AI 编程助手,也是 AI 编辑器一类。

它比 Cursor 问世的更晚,理所当然,它在 Cursor 这款优秀产品上汲取了很多优点同时走出了自己的路子,简单来说 Cursor 的核心功能 WindSurf 大部分都集成了,同时在一些地方 WindSurf 做的比 Cursor 更好(个人使用对比感受)。

WindSurf 的核心我觉得在 AI Flow 范式上,突破了传统的生成式 AI 交互模式,支持多步骤、多工具协同,能够自动维护上下文状态并进行智能任务规划和执行,不说其他的,这一体验真的超级超级 Nice。

WindSurf 具备超强的上下文感知能力,能够在 AI 与开发者之间建立实时的协同关系,不需要开发者不断提供工作范围的上下文信息,AI 能够根据开发者的最新操作自动获取上下文,保持同步。再确切一点说,Windsurf 可以跟踪开发者对代码库做的更改,无论是新增文件还是修改变量亦或是修改一个方法,Windsurf 都可以自动获得这些信息并将它纳入上下文,确保每次交互都能理解开发者的最新代码状态。

我在聊 Windsurf 时,只是大概介绍了它,很多细节需要大家自行体验,Windsurf 将核心抽离成了一个单独模块并为其赋予了一个名字叫 Cascade,它给开发者提供了两种模式:Write 模式和 Chat 模式,Chat模式就是普通的生成式 AI 问答框,而 Write 模式则是可以直接帮助开发者生成文件、多文件编辑、命令建议等等,你可以简单理解为直接通过问答自动修改代码(需要你的确认)。

WindSurf 做了开发者和 AI 之间的持续同步,而这种同步,被 Codeium 称之为 AI Flow,一种令人震惊的 AI 无缝融合开发体验。

ok,大致介绍的差不多了,说点私人话题,我特意同时使用 WindSurfCursorVSCode+Copilot 了一段时间,就是为了看看差别。

VSCode+Copilot 就不参与评价了,直说WindSurfCursor,两者都可以切换模型,都支持 GPT4oClaude 3.5 sonnet,虽说 WindSurf 基本支持 Cursor 的所有核心功能,但是个人使用在光标预测方面没有 Cursor 好,但是胜在无缝的体验上,WindSurf 甚至对终端都做了特殊处理,关键价格还比 Cursor 便宜,这是重点,虽然我知道大家大部分都不会付费,但是总归是有这个优势的......至于无限白嫖,不是很建议,有能力就付费吧,毕竟好产品嘛,没有条件就搜一搜 无限邮 什么的,这里就不说的太清楚了,毕竟我还是支持大家付费的......总之,个人在各个方面对比下,目前选择了 WindSurf ,供大家参考。

ok,说了这么多之后,我们来聊一聊国货。

国产的希望之光

不知道为什么,国内对 AI 编辑器这个赛道投入并不多,可能是因为知道国内用户不会付费,走不通商业化?

好像目前只有字节的 MarsCode 在 AI 编辑器方面进行了布局,其他的大厂都只仅限于做一做 AI 辅助插件。

说到 MarsCode ,其实最开始我很不看好,因为它前期一直在做 Web IDE,要知道,Web IDE 本身就是个伪需求。

但是随着 MarsCode For Mac 客户端的问世,突然发现,哦,原来 MarsCode 也在走 AI 编辑器这条路。

如果让我选择的话,在各方面功能相差不远的情况下,我肯定更愿意使用国产的编辑器。

其实,在体验了 MarsCode 之后,个人感觉编辑器 UI 风格还是蛮喜欢的。

兼容 VSCode 的生态,功能上目前 MarsCode 支持 代码补全、代码生成、代码解释、AI 问答、错误修复以及支持多种编程语言,基于豆包大模型(如果可以自由切换模型就更好了)。

针对 Cursor 的光标预测这个十分 nice 的功能,目前 MarsCode 也是推出了 代码补全 Pro,不过目前是在 Beta 版本,这个功能也就是在修改或重构代码时,支持基于编辑行为预测下一个改动点,并给出推荐,协助完整的编码过程。

当然这些都是基础的能力,我就不一一演示了,大家可以自行体验。作为 AI 编程助手,它还是很靠谱的,上面我们有提到 AI 编辑器,我们主要还是看 MarsCode 是否能做到 AI 编辑器的标准。

你可能会问什么标准,哪有标准?嗯...... Cursor 默认就是行业标准。

但是很可惜,目前的 MarsCode 还在早期阶段,没有办法,起步就很晚,我们上述 CursorWindsurf 中针对 AI 编程的一些核心亮点功能在目前的 MarsCode 公开版本并没有被支持,但是按照国内大厂产品套路,估计内部的版本很多功能说不定都在用了。

虽然 MarsCode 目前在 AI 编辑器方向还有很多不足,但是,由于客户端+内置 AI 助手的一体化体验,只论 AI 编程助手,使用上去肯定是比开源编辑器+AI 助手插件要来的好用,毕竟插件总有限制,而MarsCode 同样支持 VSCode 的插件生态。

还有就是在没有客户端时,Web IDE 是个伪需求,但是在有了客户端之后,Web IDE 好像变成了产品亮点之一。

另外,在之前使用 Web IDE 时,MarsCode 提供了部署能力,这也是 MarsCode 亮点之一,不难看出,MarsCode 在下一盘大棋,编辑器、AI 辅助、部署能力,不难想象,MarsCode 甚至想要做全链路 AI 自动化。

什么是全链路 AI 自动化, 我们上文中提到了小孩子通过 AI 编辑器在极短的时间里就写了一个小产品,试想一下,一个不懂技术的人想做一个产品,Prompt 给到 AI,AI 帮助生成代码后,同时提供自动部署能力,让一个产品落地的整个过程中,只有 Prompt,这是什么,这是某种意义上的去程序员化。

当然程序员是干不掉的,只是侧重点会变得不一样了。

这条路还很远,相比全链路自动化,我个人可能更关注 MarsCode AI 编辑器中的一些 AI 辅助编程能力和体验的提升,比如在 上下文感知、工程理解集成深度MarsCode 还需要很大的提升。

总之,期待 MarsCode 的更新迭代,AI 编程方面,希望未来的 MarsCode 也能够基于工程做代码生成和解释,Cursor 以及 Windsurf 的都是不错的参考,也希望在这之上 MarsCode 在 全链路 AI 自动化上可以走的更远。

国产之光了基本,因为很少有大厂愿意做编辑器这种很难赚钱的业务,MarsCode 不但做了,做的还算不错,加油吧,希望有一天我可以为 MarsCode 付费。

程序员的何去何从

最后来说一说程序员这个老大难的话题吧!

AI,将带来新一轮的 技术平权。

好好理解这句话吧,怎么说,有好处有坏处吧,它给了闷头卷技术的人一榔头,同时给了外行想要入局的人一座枣山。

虽然这个革新的过程中,我们无需再干一些 "脏活累活",但是,你需要从更高层面去审视和优化系统整体架构,所以架构能力变得尤为重要,因为模型存在幻觉,架构能力的任务分解可以一定程度上避免幻觉问题。在此之外,我们节省出的精力市场会让我们覆盖更多、更广的范围,所以个人感觉,技术层面,国内扯 🥚 的前后端分离模式会逐渐消退,而全栈工程师估摸着会是将来新一代开发者们要卷的基础方向,不要问为什么,因为大量基础工作交付 AI 了,要这么多人何用。

所以没有要不要,而是必须要,你能不拥抱 AI 吗?市场总有一天会逼你出手,因为不改变就是落后,落后就要挨打,挨打就是淘汰。

当然也无需焦虑,人还是重要的,只是时代变了、方向变了,人也要随之改变,仅此而已。

焦虑没什么卵用,早在今年的 3 月,全球首个 AI 软件工程师 Devin 就正式开始它的 007 牛马生活了,一个月还只需 500 刀,当真月薪 3k 吃草挤奶,而你还在焦虑,他还在调侃。

结尾

没有结尾,行动起来,加油吧各位!

相关推荐
云起无垠2 小时前
【论文速读】| FirmRCA:面向 ARM 嵌入式固件的后模糊测试分析,并实现高效的基于事件的故障定位
人工智能·自动化
Leweslyh4 小时前
物理信息神经网络(PINN)八课时教案
人工智能·深度学习·神经网络·物理信息神经网络
love you joyfully4 小时前
目标检测与R-CNN——pytorch与paddle实现目标检测与R-CNN
人工智能·pytorch·目标检测·cnn·paddle
该醒醒了~4 小时前
PaddlePaddle推理模型利用Paddle2ONNX转换成onnx模型
人工智能·paddlepaddle
小树苗1934 小时前
DePIN潜力项目Spheron解读:激活闲置硬件,赋能Web3与AI
人工智能·web3
凡人的AI工具箱4 小时前
每天40分玩转Django:Django测试
数据库·人工智能·后端·python·django·sqlite
大多_C5 小时前
BERT outputs
人工智能·深度学习·bert
Debroon5 小时前
乳腺癌多模态诊断解释框架:CNN + 可解释 AI 可视化
人工智能·神经网络·cnn
反方向的钟儿5 小时前
非结构化数据分析与应用(Unstructured data analysis and applications)(pt3)图像数据分析1
人工智能·计算机视觉·数据分析
Heartsuit5 小时前
LLM大语言模型私有化部署-使用Dify的工作流编排打造专属AI搜索引擎
人工智能·dify·ollama·qwen2.5·ai搜索引擎·tavily search·工作流编排