最近半年,我学习了 Paul Hudson 的 100 Days of SwiftUI 课程,此文为我的第一篇学习总结。
作为一个非计算机相关专业的信息科技老师,几年前我才出于工作需要接触学习 Python 和 C++。当时我采用的学习方式是找一本高分入门书从头啃起,遇到问题时通过 Google 在各种相关网站或博客上搜寻解答,再把整理笔记到 Notion 中。

去年 8 月我开始学习苹果应用开发框架 SwiftUI,学习内容是 Paul Hudson 编写的 100 Days of SwiftUI 课程,整个课程皆为英文。这一次的学习中,我发现 AI 扮演了非常重要的辅助角色。接下来我会分享在不同的场景下,AI 是如何辅助我学习的,而在文章最后我也想探讨 AI 的辅助是否真的起到了辅助作用。
工具一览
计划与执行:Obsidian + Claude Code
Obsidian 是我的主要任务管理工具,让 Claude Code 读取 100 Days of SwiftUI 课程总览页面,就可以直接根据课程内容在 Obsidian 中生成了一则 Tasks-100 Days of SwiftUI 待办清单。(⏳ 和 ⏫ 标记周计划、🐸 和 📅 标记日计划,🔴🟡🟢 标记预估时长)

读懂英语:个人词库 + Trancy + Raycast + PopClip

当遇到我无法通过上下文推断意思的单词时,我会通过 个人词库 这款浏览器扩展进行单词查询并添加收藏。对于一些复杂的语句,我会借助另一款浏览器扩展 Trancy,选取整句后按下快捷键、通过 Gemini API 得到中文语义。但是真的需要翻译么?无摩擦地“看懂”知识,其实也在让我产生了学习的“快感”与“幻觉”。
后来我又需要在浏览器之外识记英语。我在 Gemini 辅助下设计了一个 Raycast 脚本并将其绑定到了 PopClip。这个脚本中通过 Gemini API ,我实现了英英翻译、生成释义图片、单词读音这三点。最终,对于一个生词将会生成一张图文并茂的 Anki 识记卡片。

英语笔记:Bob
随着学习深入,我意识到 SwiftUI 本身是英语语境下的,于是我开始尝试用英语记笔记。我在软件 Bob 中添加了 Gemini 插件,通过 Gemini API 去对我的英语笔记进行润色。我可以专注在用傻瓜式的中式英语去描述我想记下的信息,而让 AI 完成英语语法润色。但这样记录的笔记,还是我在记笔记么?又或者,我变成了 AI 的复读机。

知识理解与辅助笔记:Gemini + Claude Code
日常对于知识的辅助理解与探讨,我会侧重于用网页版 Gemini。在 Obsidian 记笔记时,我则侧重于使用 Claude Code。此外,当某个知识点比较简单而我又想要记到笔记中时,我也可以直接让 Claude Code 完成笔记的书写。看懂 AI 的讲解、让 AI 记下笔记,就意味着我在学习么?

AI 时代的学习
在上面,我罗列了我是如何借助工具来让 AI 辅助我学习的。但最后,我想聊一聊 AI 的辅助真的起到了辅助作用么?
学习英语课程内容的过程中,需要翻译么?
当英语阅读有困难的时候,我的确需要翻译来帮助我理解语义。如果连字面意思我都无法理解,很难谈什么学习。但随着学习的深入,我意识到翻译的过程也是一种认知的损耗。课程内容我先从英文翻译到中文,再在中文层面理解其概念,之后又从中文联系到具体的代码和抽象的编程概念。这样一套过程中我所付出的认知精力,并不比我直接看英语、将其联系实际代码要来得少。
编程语言本身在某种程度上就是英语的复现,而大多数技术文档也是英语书写。如果我想成为一名开发者、习惯编程语言,我不应再去借助翻译。
学习过程中哪些我应该自己来,哪些又可以让 AI 来?
当任意一个疑问我都可以快速地从 AI 哪里得到解答时,看懂 AI 的解答之后知识就属于我自己了么?当 AI 可以快速又准确地在我的笔记库中生成一则语法笔记,我要不要让 AI 来帮我生成笔记呢?
AI 的辅助讲解,让我很容易产生一种错觉——我理解了、我掌握了。让 AI 记笔记,我可以很快速地得到一份精美的笔记。但如果将一切交给 AI,那么我所做的笔记就只是一份语法文档说明,这和一份苹果官方开发文档并无区别。
当 AI 给出了解答,我要做的是先去理解,然后再在代码中去实际测试掌握。记笔记的过程中,除非一个知识点非常显而易见,那么我应该自己记录而不应由 AI 代劳。写代码时,往哪个方向思考解决方法,应该是我来制定而非 AI 主导。(不过这一点在初学时可能还很难,但随着个人知识的增加,应不断降低 AI 主导的程度)
什么是学习 ?
在当下,AI 可以快速地写出代码,它掌握的编程知识比我们每个人都要多,那么我苦啃语法的意义是什么?如果语法没有学习意义,那么我又应该学习什么?
之所以我想学习 SwiftUI,是因为在日常的教师工作中我发现缺少一个符合我需求的课表工具(之前分享过的 iStudiez Pro 算半个,但却已经停止服务),我想要自己开发一个。这个应用要用怎样的数据模型、框架和逻辑去模拟与呈现现实生活中教师这个群体实际的课程安排,它应该设计成什么样子才是好看的、易用的,这些 AI 可以给出一套大差不差的解答。但最终想开发成什么样,这一点 AI 只能提供参考,具体要实现成什么样子需要我来做决定。
在学习的过程中,语法知识的学习是基础,虽然在语法上 AI 比我厉害。但在学习的过程中,我需要通过语法的学习去明白一个应用是如何构建与设计的。所以,学习是在学习可被 AI 替代的知识过程中,形成不可被 AI 替代的我个人的判断。我要学习的是一种权力——当 AI 可以写出代码,我可以判断它是好还是不好。
Member discussion: