关于AI时代的学习
进入 AI 时代之后,很多原本需要上网狂暴搜索半天才能解决的问题,现在可能只要简单描述一下,十几秒就能得到一个看起来还不错的答案。比如报错信息看不懂、某个 API 不会用、想快速了解一个概念的背景,AI 往往都能给出比搜索引擎更直接的反馈。
但这并不意味着学习效率也会以同样夸张的幅度提升。信息获取变快了,不代表理解、内化和实践也会自动变快。很多时候,AI 能帮我们跨过“查资料”的门槛,却不能替我们完成“建立知识结构”和“形成经验”的过程。实际学习中,我们可能还会遇到下面这些困难。
不知道自己不知道什么
学习一个新领域时,最难的往往不是某个具体问题,而是不知道这个领域到底由哪些问题组成。如果对整体体系没有概念,就很难向 AI 提出有效的问题。
例如刚开始学 TypeScript 时,可能只会问“TypeScript 怎么学?”或者“interface 和 type 有什么区别?”。这些问题当然能得到答案,但很容易停留在零散知识点上。真正影响长期理解的内容可能包括类型推导、泛型、结构化类型系统、类型收窄、工程配置、和 JavaScript 运行时之间的边界等。如果一开始完全不知道这些主题的存在,就很难主动问到它们。
所以 AI 更像是一个很强的问答对象,而不是天然可靠的学习地图。我们仍然需要先让它帮忙梳理领域轮廓,比如让它列出学习路线、核心概念、常见误区,再基于这些内容逐步深入。
缺少实践
有些技能的掌握离不开实践,尤其是写代码。编程能力并不只是“知道某个语法怎么写”,还包括拆解问题、设计结构、定位 bug、理解报错、权衡取舍等一整套经验。
如果过于追求效率,把实现过程全部交给 AI,短期内确实可以更快得到一个能跑的结果,但自己的经验积累可能会被跳过。比如一个异步请求失败了,AI 可以直接告诉你要加 await、要处理异常、要检查接口返回值;但如果每次都只是复制修复方案,而没有自己观察现象、猜测原因、验证假设,那么下次遇到类似问题时,仍然很难独立判断。
更好的方式也许是把 AI 当成陪练:先自己尝试实现,遇到卡点时让 AI 提示思路;修好 bug 之后,再让它解释为什么这样改有效、还有没有其他写法。这样 AI 提供的是反馈和复盘,而不是直接替代练习。
知识的诅咒
AI 也可能会有某种“知识的诅咒”:它默认自己知道的东西你也大概知道,于是解释时跳过了关键前提,或是抛出大量“越级”概念;或者反过来,它不知道你的真实基础,又花很多篇幅讲解你已经熟悉的内容。
比如学习 TypeScript 时,如果我已经有一些 Python 异步开发经验,那么“异步函数会返回 Promise”“await 会等待异步结果”这类解释可能就不需要太多篇幅。真正需要补足的,可能是 TypeScript 如何描述 Promise 的类型、泛型在异步函数中的作用、前端框架里异步状态该如何建模。可是如果没有主动说明这些背景,AI 很可能按通用初学者教程来讲,导致信息密度不合适。
因此,和 AI 学习时,描述自己的背景很重要。比起直接问“给我讲讲 TypeScript”,更好的提问可能是:“我有 Python 基础,了解 async/await,但不熟悉前端工程和 TypeScript 类型系统。请跳过基础编程概念,重点讲 TypeScript 相比 Python 类型标注最不一样的地方。”
个人尝试
目前我也在尝试探索一些更适合自己的 AI 学习方法。受 AI coding 的启发,我发现开发复杂任务时,通常不会一上来就让 AI 写代码,而是先讨论需求、澄清边界、拆分步骤,再进入具体实现。学习复杂知识时,也许可以采用类似的流程。
比如在开始学习一个新领域前,可以先与 AI 讨论,根据自己的背景制定学习计划:我已经会什么、不熟悉什么、目标是能读懂项目还是能独立开发、每天大概能投入多少时间。计划确定之后,再把学习过程拆成一个个小任务,每完成一部分就让 AI 帮忙检查理解是否准确,或者根据练习结果调整后续安排。
在这个过程中,还可以像维护 CLAUDE.md 一样维护一份“个人学习画像”:已有基础、常见误区、喜欢的解释方式、正在学习的主题、已经完成的练习等。这样 AI 不需要每次从零理解我是谁,也能更快进入合适的讲解深度。
当前正在尝试用这种方法快速学习网站前后端开发、工业级coding agent搭建,也作为该方法的一种实验看看效果如何(体验好的话感觉可以整个skill🥰)