如何从零开始利用AI提升编程技能?
### 前言
这篇文章并不是一篇技术文章。它记录了作者长达一年时间深入使用AI编程产品后的思考和体验。
主要探讨的是对AI编程的看法、分享心得,并讨论国内外一些出色的AI编程产品的使用体验。最后还将谈一下程序员在AI时代的新角色。
全文几乎都是文字,没有链接。若想了解更多相关内容,建议自己动手搜索体验。
---
### 为什么有人排斥AI编程
是的,你没看错——确实有很多人排斥使用AI编程工具。我曾经就是其中之一。
去年年初时,我对AI编程工具感到抵触,认为它们会降低我的编程敏感度和能力,并可能让我对其产生依赖。
因此,在试用了多种AI辅助编程工具之后,我很长时间内都没有再使用这些工具。相信当时与我有相似想法的人也不少。
排斥的原因主要有以下几点:
- **不信任**:担心AI生成的代码存在逻辑错误或安全隐患。
- **担忧**:认为大规模使用会降低编程门槛,增加行业竞争;或者导致个人对工具的高度依赖,使自己的编程技能退化。
- **局限性**:觉得AI理解复杂上下文的能力有限,在某些场景反而浪费时间且需要大量调整和重写。
- **习惯**:习惯了现在的开发方式,不愿改变。改变意味着学习新东西。
- **隐私**:担心使用过程中可能泄露敏感信息。
---
### 为什么我开始拥抱AI编程
其实很简单——当越来越多的人利用AI工具提高效率时,我不用的话就相当于自己的竞争力在下降,也就是常说的被“卷”了……
试想一下,别人利用AI快速完成任务而你却需要花很长时间,这不仅是效率问题,更是一种对时代变化适应能力的考验。
所以,我开始尝试使用各种AI编程工具,并致力于发挥它们的最大效用。现在我想说的是:当然应该使用AI编程工具!
---
### 检索能力的重要性
程序员有一个看不见摸不着但又非常重要的能力——检索能力或解决问题的能力。简单来说就是通过搜索引擎找到相关解决方案。
生成式AI时代的到来,使得传统的搜索引擎被AI所取代。在这样的背景下,如何有效提出问题,并从复杂信息中提炼出有用的内容变得尤为重要。而这一过程中的关键词选择和表述方式则显得至关重要。
---
### AI编程工具
当生成式AI火爆之后,人们开始习惯于遇到难题时先向这些AI提问获取思路或代码片段。随后,一系列优秀的编程辅助工具应运而生。
比如GitHub Copilot与Tabnine等工具都具有强大的代码补全和上下文理解能力。尽管它们还存在一些局限性(如只能基于当前页面内容进行理解和生成),但确实能够提升常规开发效率。
---
### AI编辑器
谈到AI编辑器,Cursor是绕不开的话题。它是一款基于VSCode的独立客户端产品,其核心区别在于它可以对整个工程项目进行全面索引和向量化处理后再提供智能服务。
对比GitHub Copilot,Cursor更像是一个L3级别的自动驾驶系统,而Copilot则像是L1级别的辅助驾驶工具。因此,在功能上有着明显的优势。
---
### 国产希望之光
尽管国内在AI编辑器领域的投入相对较少,但字节跳动的MarsCode依然在这个赛道进行了布局,并逐渐从Web IDE向客户端产品转变。经过使用体验来看,其UI风格和用户体验还是非常不错的。
未来随着更多国产产品的不断涌现和发展,相信我们能在这一领域看到更多的可能性与进步。
MarsCode 兼容 VSCode 生态系统,并提供一系列增强功能。它支持代码补全、生成和解释,AI问答,错误修复以及多语言编程等功能,基于豆包大模型(如果可以自由切换其他模型更好)。特别值得一提的是光标预测这一强大功能,即 "代码补全 Pro" 版本,在 Beta阶段就展现了其潜力——当用户修改或重构代码时,它可以预测下一步操作并给出建议。
作为一款AI编程助手,MarsCode 已经具备了相当的实力。尽管Cursor和Windsurf等竞争对手在某些方面领先一步,但MarsCode也已经开发出许多核心功能,在未来版本中有望得到进一步增强。
与开源编辑器搭配 AI 插件相比,MarsCode 融合客户端加内置AI助手的优势更为明显。虽然Web IDE 在没有本地客户端的情况下显得不那么实用,但是有了客户端之后它便成为了产品的一个亮点之一,并且提供部署能力也是 MarsCode 的一大特色。
尽管目前的 MarsCode 还处于起步阶段,在某些功能上还存在不足,但其编辑器、AI辅助和部署能力正在构建一个完整的全链路自动化解决方案。这种趋势可能会导致某种意义上的“去程序员化”,即在开发过程中尽可能地减少对人类程序员的依赖。
然而,这并不意味着程序员将消失——他们将继续发挥关键作用。随着 AI 技术的发展,技术人员需要不断提升其架构设计和整体系统优化能力,同时学会更好地利用AI工具来辅助工作。
总的来说,我们期待MarsCode能继续改进和完善其功能,特别是在上下文感知、工程理解和集成深度等方面,希望它能够在全链路AI自动化领域走得更远。作为一款国产的优秀编程助手,MarsCode已经在行业中脱颖而出,尽管前路漫漫,但它无疑将成为未来开发中不可或缺的一部分。
最后,面对 AI 的崛起带来的技术变革,程序员们面临着新的机遇与挑战。随着越来越多的基础工作被 AI 取代,全栈工程师可能成为未来的主流发展方向。而作为开发者,拥抱AI不仅是趋势所在,更是生存之道。我们无需过度焦虑,而是应该积极适应新环境、不断学习和提升自我。
没有结束,只有开始。让我们一起迎接这个充满希望的新时代!