📌 项目地址:xiaolai/the-craft-of-selfteaching | ⭐ 18,413 颗星 | 🔧 Jupyter Notebook | 📜 未标注
项目信息
仓库:xiaolai/the-craft-of-selfteaching,18413 颗星,主要语言是 Jupyter Notebook,作者是李笑来。这不是一个软件,是一本书,一本完整的开源书,书名叫《自学是门手艺》,副标题只有一句:没有自学能力的人没有未来。
一本书,为什么主语言是 Jupyter Notebook
大多数开源书用 Markdown 写,这本不是。全书章节都是 .ipynb 文件,里面的 Python 代码可以直接运行。对一本教编程的书来说,这差别很大:读者读到一段代码,可以改个参数跑一遍,看结果对不对,而不是干瞪眼。
README 的建议是先读 T-appendix.jupyter-installation-and-setup.ipynb,这一章专门讲怎么在本地装 JupyterLab,装好之后用它读全书。不想装也有办法,2019 年 3 月起仓库里加了 Markdown 版本,放在 markdown/ 目录下。
那段伪代码
README 开头有一段伪代码,基本把全书方法论说完了:
def teach_yourself(anything):
while not create():
learn()
practice()
return teach_yourself(another)
teach_yourself(coding)
学、练,直到做出东西来,然后拿同一套方法去学下一个技能。书里选的第一个技能是编程(Python),理由在 Part 1.B 里单独成章:为什么把编程当作自学的入口。
全书讲了什么
从目录看,书分三部分,Python 内容占了大头。
Part 1 先讲“为什么”:为什么必须会自学、为什么从编程入手、怎么只靠阅读学会新东西。然后是 Python 基础:值与运算、流程控制、函数、字符串、数据容器、文件。结尾还有一章带你读 Python 官方教程 The Python Tutorial。
Part 2 讲“怎么练”,开头两章是笨拙与耐心、刻意练习,然后一头扎进函数的细节:参数拆成上下两章,lambda、递归、文档字符串、模块、测试驱动开发、可执行 Python 文件,各占一章。光函数相关就有八个小节,讲得很细。
Part 3 从目录可见的部分是“战胜难点”等进阶内容。
这本书不是纯方法论鸡汤。它的一半篇幅在老老实实讲 Python,讲得比很多入门教材细。但穿插的方法论章节才是它的特色,比如有一章专门讨论“如何从容应对含有过多‘过早引用’的知识”,说的是编程书里到处都是还没讲到就先出现的术语,怎么办。这类话题普通教材基本不碰。
一个有意思的章节
第 2 章的标题是“如何证明你真的读过这本书?”。这一章同时是校对指南:想给这本书提 Pull Request 帮忙校对的人,先读这章。把“证明你读过”和“参与贡献”绑在一起,很符合这本书的气质:动手,而不是围观。
我的判断
适合两类人:编程零基础、想系统学 Python 的;以及学过语法但总觉得学不进去、想找一套学习方法的。有扎实编程基础的人,Part 1 可以跳着看。
两点提醒。书的作者是李笑来,行文风格很个人化,有人很吃这套,有人不适应,建议先读前言和 Part 1.A 到 1.D 判断一下。另外书是 2019 年写完的,Python 语法基础变化不大,但涉及具体工具的部分,用之前自己核对一下版本。
最后一点建议:这本书的正确打开方式是装上 JupyterLab 边跑边读。只看不跑,就浪费了它用 Notebook 写的全部意义。