共计 4110 个字符,预计需要花费 11 分钟才能阅读完成。
无论你是编程的新手,还是在行业中积累了数十年经验的人,学习新知识始终是不可或缺的。TIOBE 指数监测着五十种最流行的编程语言,许多技术生态系统为职业发展和职业转型提供了机会。然而,面对现有技术的广泛性,抽出时间来学习新技能并有效应用这些技能,往往会面临不小的挑战。

最近,我一直在学习 Rust 语言,这是一种专注于性能、可靠性和生产力的类型安全语言。在这个过程中,我掌握了一些利用 AI 编程助手的技巧,希望能与大家分享,从而提升你的学习体验。
文章末尾列出了几项基于 AI 的技能,你可以在学习中运用,帮助你更快实现目标。这里提到的 AI 主要是指那些基于大型语言模型(LLM)的编程助手,比如 Amazon Q Developer(前身为 CodeWhisperer)、GitHub Copilot 以及 JetBrains AI Assistant。你可以将下面介绍的所有技巧应用于你所选择的工具中。
对参数化知识的谨慎态度
所谓“参数化知识”,是指在模型训练期间所存储的信息。正是由于编码数据的存在,AI 通常能够迅速响应并提供准确的信息。然而,它有时也会出现严重错误的答案。
这对用户意味着什么呢?尽管这些系统可能会带来帮助,但它们的效果受到数据收集和模型训练所需时间与资源的限制。例如,OpenAI 使用截至 2023 年 12 月的数据来训练 ChatGPT 4 Turbo 模型,而数据集的具体内容并不为人知。从用户的角度来看,任何特定模型是否拥有“完整”的知识,以及为何有时会对其反应感到不满,都是不确定的。
关注数据集的截止日期,可以帮助你更好地理解和处理来自 AI 对话的反馈。作为服务的消费者,研究提供商的数据收集和训练过程,可以提升整体的满意度。
尽管 AI 通常能够提供帮助,但在任何学习过程中,经过验证的人类知识来源依然是最值得信赖的。这并不是说 AI 总是错误的,但你应当培养质疑所获取信息准确性的习惯。另一个需要谨慎的原因是,这些系统被设计成友好的助手。有时,它们可能会因为过于“乐于助人”,而生成一些并不存在的理论和概念,这种现象被称为幻觉。
总的来说,只有真正的智能才能识别 AI 的错误何时发生。
解析代码 与提示 的应用
开源软件的 发展为每位学习编程的开发者提供了便捷的途径来接触到高质量的生产级代码。这些开源代码库不仅是探索专业人士编码风格的良好平台,还能帮助学习者掌握语言的使用习惯和技术细节。然而,对于那些尚未熟悉某种语言的初学者来说,缺乏基本的参考框架可能会使得阅读变得十分棘手,甚至感到困惑。
我常用的一种方法是在知名的代码分享平台 GitHub 中查找特定编程语言的代码片段,并将其复制到 AI 聊天窗口。同时,我也会附上提示,如“请解释这段代码”以及“请列出此代码块中的重要概念”。这种方式能够引导 AI 提供更有针对性的解读和分析。
以下是该提示的一个示例模板。
复制
Please explain the following code```rust// rust code goes here```Also, list the important language concepts from the description in a bulleted list so I may do more research.1.2.3.4.5.6.7.8.9.
因此,生成的主题列表 是一个极好的方法,能够帮助我将学习的重心集中在当前最重要的 内容 上,而不至于试图一次性吸收 全部信息。
JetBrains AI 助手 将使你能够保存提示模板以便 反复使用 ,这种功能在你切换不同 项目时 特别有益。
详细的 代码注释 提示
当你尚未完全掌握一门编程语言的语法或语义时,面对一大堆代码往往会让人感到不知所措。使用“为每行添加注释”的提示,是一种快速而有效的方式,能够大致了解应用程序的功能和意图。

借助 JetBrains AI 助手,你能够以并排或单一视图的形式查看变更的 Diff 视图。这种视图功能使得你能够迅速识别变更内容,并选择是否采纳这些变更。
尝试多样的选择
在学习任何新课题时,实验是不可或缺的一环,更重要的是,要有效地运用所学的知识。找到一种可行的解决方案,并理解何时需要采用不同的方法是至关重要的。利用 AI,探索不同的实现方式变得前所未有的简单。
以下是我在研究 Rust 编程语言时,帮助我发现便于后续深入探讨的功能特性的提示。
复制
Given the following API, show me three different implementations```rustfn add(x: i32, y:i3) -> i:32 {// implementation goes here}```1.2.3.4.5.6.7.8.9.10.11.12.
请记住,这一切都与学习相关,因此 API 不一定需要非常复杂。尝试不同的想法能够让你发现 AI 对话之外的多种学习路径。这种方法尤其出色,相较于传统的主题搜索,能避免因对特定主题理解不足而造成的局限。
一些工具,例如 Amazon Q Developer,提供内嵌选项,使你可以在不离开编辑环境的情况下,循环查看样例。你可以通过左右方向键在各个选项之间切换,直至找到一个令你满意的方案。

更多的上下文总是更有利
我之前提到过 LLM 的信息嵌入限制。在某些情况下,这些服务可能缺乏信息,因此提供额外的信息是非常有益的,但前提是你需要以正确的方式进行提供。
在现代互联网搜索的背景下,我们已经习惯于通过关键字在文本框中提问。搜索式查询是许多 AI 初学者常犯的错误之一,这可能会导致他们对结果感到失望。当使用 AI 助手时,将对话视为“搜索”是一种不良习惯,因为 LLM 的设计者是为了预测用户的潜在需求而构建的。
为了实现更精准的预测,关键在于尽量详细和明确。
基于示例的提示是一种有效的方法。你提供的示例越多,最终的结果自然会更加精确。以下是一个模板提示,帮助你在学习过程中探索新的想法。
复制
Given the following three examples, what would an implementation for look like?example 1:``````example 2:``````example 3:``````1.2.3.4.5.6.7.8.9.10.11.12.13.14.15.16.17.18.19.20.
你在对话中输入的信息为获得预期结果提供了必需的背景。不要犹豫去修正或补充更多的上下文。信息越多,模型就有更丰富的基础来生成响应。
为了促进对话的流畅进行,并增加对话的背景,Amazon Q Developer 为你准备了一系列自然的后续问题,确保你在学习的过程中保持积极的态度。

代码查看 与补全
许多人工智能服务具备多行代码的自动补全功能。尽管我经常会选择编辑器提供的所有建议,但这种做法往往会干扰我的学习进程。相反,我更倾向于通过编写注释来明确我的目标,从而开始构建代码。
复制
// TODO: create a match expression to process the different message variants1.
在下方的示例中,我们可以看到 GitHub Copilot 主动提出可以完成我的语句。乍一看这确实很不错,但我必须认真思考这个选项是否真正符合我的意图。在按下 Tab 键之前,我需要停下来进行反思。为什么要这样做呢?

这样 做的原因是为了 验证我现有的技能是否足以理解和处理代码。如果能够,那我就表明自己在进步;如果不能,那我需要花时间去了解自己知识的薄弱环节。不要轻易接受那些你未完全理解的代码,尤其是添加到代码库中的代码。
值得注意的是,您可以调整该功能的设置 以减少 干扰,仅在必要时显示补全内容,从而 减轻在编写与阅读代码之间切换所带来的认知负担。
解析错误 , 寻找解决方案
在每个编程环境中,编译和运行时错误的出现是不可避免的,其中一些错误可能非常难以理解。如果你正在努力找出为什么你的应用程序会失败,可以考虑通过与 AI 助手进行对话来解析这些问题,确定错误发生的原因,并获得可能的解决方案。
复制
What exactly is the problem here in my Rust backtrace? Reduce the response to the file and line and explanation of the error and propose a solution.``````1.2.3.4.5.6.
以下的例子展示了如何利用提示来理解 Rust 回溯中的具体情况。

分享你的想法
尽管 在 AI 聊天中从一个主题转向另一个主题似乎很自然,但放慢节奏并将你新学到的知识与已有知识重新联系起来总是明智的选择。一旦我掌握了新的概念并创建了可用的实例,我会与其他学习者和专家分享这些内容,以获取有价值的反馈。请记住,AI 只能根据你的请求提供帮助,而其他人的实际经验则能够补充那些你可能忽视的潜在问题。
社交媒体平台是分享截图、代码示例和想法并获取反馈的理想场所,这些反馈可以用来丰富未来的 AI 聊天会话。
总结对话
对于那些不擅长记笔记但又希望回顾前一天工作的朋友,我有一个建议。在长时间学习后,可以让当前的聊天会话为你总结所有问题,并为每个问题提供一句话的回答。
复制
Given what we’ve chatted about, list all the questions and a single-sentence summary of each answer.1.
这份回应是一份极佳的快速参考手册,适合你下次学习时使用。同时,它也是一篇非常有价值的博文,能够帮助你练习与他人分享自己的观点与学习经历。
借助 人工智能 提升学习效率
希望在你运用 人工智能 工具时,能够更 迅速 且更 有效地获取知识,这些技巧将会对你大有裨益。这些工具的设计目的在于帮助你达成个人设定的目标。我发现它们在激发新思路和探索未知领域上非常有效。
最为关键的是,它们让我与社区内的其他 成员建立了联系,这不仅拓展了我的知识 视野。


建议在使用AI助手时,尽量多对比其他资料,确保信息的准确性。