提出用 AI 做解释和学习辅助而非代码生成的工作流。这个反思改变了不少开发者对 AI 工具的使用方式,提高了学习效率。
坦白说,我每天都在使用 AI 工具。我们大多数人都是如此 🤷♀️。
但把 AI 当作拐杖 🩼,和把它当作大脑的火箭助推器 🚀,两者之间有着天壤之别。
刚开始时,每当遇到棘手的概念,我都会把问题粘贴到 ChatGPT 中,让它给出解决方案。它会生成可以正常运行的代码,让我感觉自己高效了大约五分钟。⏱️
但后来,我意识到了一件可怕的事:如果 AI 明天消失了,我其实并不知道该如何独立解决这个问题。我把自己的理解过程外包了出去。😱
有一种方法叫作“费曼学习法”,它以物理学家 Richard Feynman 的名字命名。其核心理念很简单:只有当你能够用简单的语言解释一个复杂主题,让初学者(甚至五岁小孩)都能听懂时,你才算真正理解了它。🧠
AI 非常擅长生成复杂、专业的技术文档。但令人意外的是,它更擅长生成简单到不能再简单的类比。✨
我不再要求 AI 替我完成工作,而是开始把它当作世界上最有耐心的导师。👨🏫
最近,我在研究一段涉及列表推导式和 zip 函数的 Python 代码。它大概是这样的:
def mulTable(n):
return [n*i for i in range(1,11)]
l1 = mulTable(3) # [3, 6, 9, ...]
l2 = mulTable(6) # [6, 12, 18, ...]
# The confusing part:
s = [x + y for (x,y) in zip(l1, l2)]
如果你通过常规的文档搜索,询问最后一行代码发生了什么,得到的答案通常会是:“列表推导式遍历由 zip 对象生成的元组,并根据元素对应的索引对其进行聚合。”😵💫
很好,很准确。但它无法真正留在我的脑海里——尤其是对我这种学得比较慢的人来说,同一段内容要反复阅读很多遍,才能短暂地理解片刻,然后两分钟后又忘得一干二净。
于是,我改变了 prompt。我向 AI 提问:“把这段代码解释给我听,就当我是一个五岁小孩。”🧸
这个解释彻底改变了我在脑海中理解这些数据的方式。
AI 没有再说什么“遍历元组”,而是给我讲了一个关于篮子和拉链的故事:
想象一下,l1 和 l2 是两个长长的篮子,里面装满了带数字的小球 🧺。
zip 命令就像夹克上的拉链 🧥。它把两个篮子并排拉到一起。
它从篮子 A 中拿出第一个球,再从篮子 B 中拿出第一个球,然后把它们挤在一起(也就是相加)➕。
接着,它沿着队伍继续移动,把下一对小球拉到一起,直到装出一个全新的篮子。
突然间,这段代码不再抽象了,而是变得直观起来。我能够“看见”拉链把两个列表拉到了一起。👀🤐
学习新的框架、编程语言或算法时,不要只询问“怎么做”,还要主动索要一个类比。
下面是一些我经常使用的 prompt:
“用运输集装箱 🚢 的类比,解释 Docker 和 Kubernetes 之间的区别。”
“把我当作一个正在堆积木的幼儿园小朋友 🧱,向我解释递归。”
“不要给我代码 🚫。请举一个现实生活中的例子,说明为什么我应该使用 Linked List 而不是 Array 🔗。”
AI 不会取代那些真正理解自己专业技能的开发者。但利用 AI 加深理解的开发者,将会取代那些只用 AI 复制粘贴的人。📋
有些人可能会认为,AI 带来的危害大于益处。但在我看来,只要使用得当,并且使用正确的 prompt,AI 就是你能拥有的最佳导师——它几乎可以教你任何东西!
部分评论可能只有登录后的访客才能看到。登录以查看全部评论。部分评论已被文章作者隐藏——了解更多。
如需采取进一步行动,你可以考虑屏蔽此人和/或举报滥用行为。