为什么会选择《软件设计的哲学》这本书
最开始是因为看到一篇博客 刚好介绍到这本书,赞誉比较高。而且提到和《数据密集型应用系统设计》等几本书是同一级别。
我平时也会找一些技术书看,看这篇博客的时候正巧在翻阅《数据密集型应用系统设计》,但是看的不是很顺畅,看博客的介绍是这本会写得更偏实践,所以就想找这本先看看。
介绍一下这几天学习这本书的经历。
最开始翻这本书的时候,还是自己每天早上上班前抽时间看一看,感觉内容比起《数据密集型应用系统设计》好理解,也比较简洁。
到了第五章的时候,看着看着总感觉可能翻完就会忘记,书中的核心内容每一章都介绍的很清楚,但是会缺少一点案例扩展和衔接。 正好这段时间在用 cursor 写代码,想着 cursor 这么强大,用来当老师陪读一些技术书籍答疑解惑不是很好么。 说用就用,所以在第五章的时候就开始尝试着一边看文章,一边让在 cursor 中让大模型做一些课后答疑的介绍补充.
感觉每个问题都讲解的非常到位,然后我就开始尝试让大模型每一章都给我做章节梳理和背景补充。
到了第九章的时候,我感觉大模型介绍得非常好了,相比较每章只有几段比较简洁概括的原文,大模型会帮你补充背景知识,上下文衔接,标注重点,还提供了大量的示例和实践手册。我觉得如果当笔记记下来也可能会对其他人有帮助。 所以后面就开始叫大模型在讲解之后也整理要点到文档中。遇到问题有时也和大模型做一些讨论,但基本不会有一些比较明显的错误。
在第十二章后,感觉前面自己看的这几章也可以叫大模型补充一下。于是就又从第一章开始,跟着大模型重新过了一遍。 尝试了几次,给 AI 的提示词大概是这样:
我们换一个方式:
1. 你是资深的软件设计开发专家或者你就是这本书的作者John Ousterhout
2. 现在你要和我讲解这本书《软件设计的哲学》,我是一个好学的学生
3. 我们现在开始学习@https://cactus-proj.github.io/A-Philosophy-of-Software-Design-zh/ch02.html
4. 希望你讲的有条理,有深度,有趣味,可以拓展一下文章的内容,能让我学到记住更多并能学以致用
就这样大模型用这个当老师的方式介绍整理了后面的几个章节。内容调教的也越来越顺了。 但是在第十三章发现大模型瞎说八道拓展得太多了,大部分都跳脱了原文的内容架构。问了多轮才发现有时候给文章的链接 cursor 可能会读不到内容,有时候就靠猜。 所以从第十三章开始,我都直接把原文复制下来给大模型,而不是贴链接。这样效果就变好了。
不过后面几章正要趋于稳定的时候,cursor 额度用完了,最强的claude-4-sonnet 不能用了,只能用其他相对弱一点的大模型。 效果总是没有原来那么好,后来想着用大模型根据已经总结好的文章生成一个提示词,再让大模型根据这个提示词再解读文章。
这些是文章的原文:{{链接或者截图}},当前目录下的文档是我叫 AI 整理的一个比较通俗易懂的版本,你帮我写一个通用的技术文章提示词,让 AI 按照这个方式对原文生成一个对应的通俗易懂的文档
让 AI 生成 prompt,再用这个 prompt 让 AI 做事,这样AI 的输出会相对稳定一点,自己也不用纠结不会写 prompt 了。
收获
总的来说,通过这个方式学习技术书籍感觉会比自己看书效果好挺多。
比较明显的变化就是以前很难一次性把一本书看完,这次是非常顺畅的看完了,而且在过程中有针对一些问题和 AI 做交流讨论。看完后也能记住主要内容和核心要点。也可能是这本书的观点比较符合自己平时的理念,所以接受的比较自然。
也会有一些感觉不太好的点,比如书中介绍的要怎么设计怎么优雅,但是对比实际项目的代码,差距还是有点大。自己慢慢接受慢慢优化吧。
后面会怎么做
学完下来,感觉 AI 的能力真的很强,取代人类程序员也就是这几年的事了,但是也不要太过紧张吧。如果写出好代码能得到正反馈,那就继续写下去。
后面应该会结合 AI 继续学习感兴趣的经典技术书籍,可以快速领略各个领域各个厉害人物的思想。有不懂的地方可以慢慢问慢慢理解,慢就是快嘛。
AI 可以是好老师,除了一般对话和学习技术书籍,还有很多能发掘的场景。后面可能会尝试在 AI 的指导下从零实现一些设计感强的软件,或者快速学习一门新的语言,看自己的兴趣在哪,结合 AI 的能力打造一个高效的学习或者产出杠杆。
重要的是,保持好奇心。