返回
查看原链接原链接
Bilibili40分36秒 · 2026/9/2 08:36:35

鸢尾花书《编程不难》开篇导读:从零基础编程到机器学习的全阶梯学习体系

鸢尾花书是一套开源的、免费的、面向准人工智能时代的数学教育探索丛书,旨在通过“编程 + 数学 + 可视化 + 机器学习”的系统性编排,把陡峭的学习曲线尽量拉平,让读者从 Python 零基础、数学近零基础一路上升到机器学习应用。

鸢尾花书《编程不难》开篇导读:从零基础编程到机器学习的全阶梯学习体系

鸢尾花书是一套开源的、免费的、面向准人工智能时代的数学教育探索丛书,旨在通过“编程 + 数学 + 可视化 + 机器学习”的系统性编排,把陡峭的学习曲线尽量拉平,让读者从 Python 零基础、数学近零基础一路上升到机器学习应用。

核心要点

鸢尾花书的定位与初心

鸢尾花书是一套开源、免费的数学教育丛书,面向准人工智能时代的人类数学教育探索。其核心理念是:人工智能已经无处不在,未来淘汰人类的不是人工智能本身,而是“会人工智能、懂人工智能、用人工智能的人类”淘汰“不会用人工智能的人类”。因此,数学教育需要从小学、初中、高中阶段就开始变革。鸢尾花书的初心是将“数学教育面向人工智能时代”这件小事做好,不局限于数学工具本身,而是结合人工智能、机器学习、机器算法,同时配套 Python 编程与可视化。

为什么选择 Python

选择 Python 的原因包括:当前非常流行、好用、免费,并且是“一站式”的工具——从数据采集、数据加工、算法实现、可视化,到 App 生成、部署、网页制作,都可以在 Python 中完成,无需在不同软件之间来回切换处理数据。

开源与免费政策

鸢尾花书的全部资源——包括书稿、Python 代码、视频——均免费开源。读者可以通过 GitHub 进入相应页面,在主页下拉菜单选择 “download zip” 下载全部配套代码和书稿。所有视频也在 B 站免费提供。纸质书与电子 PDF 草稿的相似度约在 95% 以上,纸质版经过出版社审稿校对,文字做了处理。纸质书每章开头有出版社提供的二维码,可下载 MP4 视频以供离线收看。

七册丛书阶梯结构

鸢尾花书七册构建了一个阶梯式的学习路径:

  • 编程不难:第一本,从零基础开始,覆盖编程基本语法、可视化基本工具、数据分析(NumPy、Pandas)、数学运算工具、机器学习工具(scikit-learn)、以及用 Streamlit 搭建 App。约 36 章,配 30 小时以上的视频。
  • 可视之美:在第一本基础上,用 Python 可视化工具实现数学之美、数据之美、创意编程,侧重于“可视”。
  • 数学要素 / 矩阵力量 / 统计至简:数学板块三本。第一本从小学数学讲到大学一年级水平;矩阵力量是全系列最核心的一本,专门讲矩阵与线性代数工具;统计至简侧重多元统计和贝叶斯统计。
  • 数据有道:实践板块,特别强调图和网络,超过 60% 内容涉及图论和网络相关工具,为深度学习、语言模型等打基础。
  • 机器学习:实践板块,涵盖回归、降维、分类、聚类四大板块中最常见、最经典的算法。

这一整套书的根本目标,是把从基础编程到基础数学再到机器学习的全过程串联起来,提供一条尽量平滑的学习路径。

学习顺序建议

  • Python 基础好的读者可以跳过前两本,直接从第三本开始。
  • Python 零基础或需要巩固基础的读者,建议从《编程不难》开始入门。

图书结构与资源使用说明

纸质书与电子版区别

录制视频使用的是出版社排版稿(定稿版),读者日常看到的电子版是免费草稿,两者约 95% 以上相似。纸质版经过出版社“三审三校”处理,文字有所润色。学习层面两者差异不大,不花钱的读者完全可以免费下载书稿、代码并观看 B 站视频。

二维码使用提醒

视频录制阶段的书籍页面中出现的二维码是占位符。由于代码和视频尚未准备完成(代码需讲课后检查并调试后才分享),因此读者暂时不要扫描视频中出现的二维码。待资源完善后,纸质书读者可通过扫码下载代码。

思维导图配套资源

每章配有思维导图,分为两类:

  • 板块思维导图:位于每个板块第一张纸的背面。
  • 章节思维导图:每章一张,有的简单(如第一章),有的复杂。

用于帮助读者把核心内容“拎起来”,建立整体框架。

配套代码与运行环境

全书代码实践中使用 Jupyter Lab 作为主要工具。Anaconda 安装后即自带 Jupyter Lab,此外还包含 Spider 等常用 Python 编译器。教学演示中推荐使用 Jupyter Lab 进行探索式学习——支持建立新文档、直接运行代码(如输入 “1+1”,按 Ctrl+Enter 即可得到结果)。Anaconda 本身是一个集成界面,包含多个 Python 工具甚至 R 语言相关工具(如 R Studio)。

作者与读者沟通管道

作者提供了公开邮箱供读者提交纠错和意见。邮件往来数量已超 1500 封(按有来有往计算)。纠错数量多的读者会获赠图书;有特殊贡献的读者还会获得惊喜礼物,如鸢尾花书周边的雨伞(已送过一批)、书包(即将送)等。在豆瓣上写好评书评也有机会获赠书和礼物。注意:一般纠错、优质评价类要求作者都会满足,但个别“比较难办”的请求可能无法回复,希望读者理解。

视频课程风格承诺

《编程不难》的视频课程(尤其第一本)风格为“婆婆妈妈”式的细致讲解——会把本书配套的每个 Python 文件、能跑的代码当着读者面全部跑一遍。后面的书视频节奏会更快,不这么啰嗦。比起很多编程教材存在“代码不免费给”或“给了不能跑”的通病,鸢尾花书承诺所有代码尽量可运行;若遇到不能跑的情况,请读者反馈,作者将进行 debug。录视频时会保证代码能一对一地展示运行。

书籍板块架构与内容占比分析

《编程不难》全书共 36 章,分为若干板块。板块篇幅设计为:要么占全书的 1/12(3 章,说明没那么重要),要么占 1/6(6 章,说明非常重要)。

板块内容与占比详解

  • 准备性内容(约占 1/12,即 3 章):安装 Anaconda,使用 Jupyter Lab 等工具的准备环节。
  • Python 语法(仅占 1/6,即 6 章):这是作者有意为之的轻量化安排。作者认为对初学者来说,语法学多了反而是负担——轻轻松松学到够用即可,有了激情、热情、兴趣、动力和目标之后,读者自己可以去探索更多语法。为避免“学英语式”的失败(死磕语法、背单词,学完不会用、忘得快),编程教学应当“上来就教大家用”,通过使用感受语言的力量。
  • 绘图(占 1/12,约 3 章):在本书中提供的绘图工具量仅“够用”——以可视化作为这套书整体招牌,但在编程基础书中只介绍够本书使用的绘图工具。更深入的可视化技巧和案例放在下一本《可视之美》中。
  • NumPy(占 1/6,约 6 章):非常重要的篇幅安排,因为常用的线性代数运算几乎全都基于 NumPy 完成。
  • Pandas(占 1/6——即紧随其后的一个板块,约 6 章):很多与统计相关的数据处理都会在 Pandas 中讲解。作者提到用 Plotly + Pandas 用数据讲故事 是这个板块中很有意思的亮点。
  • 数学工具(占 1/12,约 3 章):轻量级介绍三个小型 Python 库——符号运算的 SymPy、数学运算的 SciPy、统计模型的 statsmodels。这个板块需要了解即可,相对不那么重要。
  • scikit-learn(机器学习算法工具):介绍机器学习中最传统、最经典的算法工具包,涵盖数据处理、回归、降维、分类、聚类等经典算法。本书要求读者做到“知其然,不要求知其所以然”——会用、会调包、能跑通代码即可。为什么这样设计?因为背后的数学原理(“所以然”)被安排在后面几本书(数学要素、矩阵力量、统计至简及两本实践书)中系统讲解。
  • Streamlit + Spider(App 搭建板块):用 Spider 编写代码,再用 Streamlit 搭建 App。这是本书的亮点之一——很多编程书完全没有 App 搭建的内容。全书最后一章展示几个用 Streamlit 搭建的机器学习、数据分析及数据工具展示应用 App。

板块设计的核心理念

作者强调体系比具体代码块更重要——拥有体系就拥有知识网络,知道未来如何将这个网络不断扩展和填充。编程类的书很多打开后看不下去,因为本质是“语法书”,讲半天语法却不知道实际用途,学完也容易忘。鸢尾花书选择边用边学、轻量语法、快速上手、及时实践,让读者每一小步都能看到语言的力量。

教学方法与学习理念

项目制与成就感设计

本书配有大量小项目而非大项目(大项目容易让人疲劳、半途而废)。每个项目大概 30 分钟内能写完并看懂,这种节奏能带来很强的收获感,帮助读者坚持到底。

透过编程看数学与逻辑

学习编程的终极目标不是掌握 Python 本身,而是跳出编程,看到编程背后的数学与逻辑。今天会 Python 没什么了不起——明天可能换 R、Julia 或其他编程语言,但背后的数学和逻辑才是“万变不离其宗”的算法核心。Python 只是一个工具,不应被神化。

知其然不要求知其所以然

学完本书的读者应该处于一种状态——会掉包、代码能跑即可;真正理解机器学习背后的数学原理是后面几本书的任务。这种设计避免了初学者一开始就被繁难的数学公式吓退,先建立兴趣、应用能力和自信。

不用分数衡量学习成果

全书只有《编程不难》配习题(其他书不配),因为后面书的“习题”本质就是理解书中的代码和图像本身。本书刻意给初学者设少量习题用于巩固基础编程知识。作者明确表达不推崇用分数衡量能力和学习成果,强调获得感与自信才是最重要的评价。如果为了分数考试而学习,兴趣被磨灭,那“考试还不如不考,知识还不如不学”。

从英语学习失败中吸取教学教训

作者借个人经历解释了为什么编程教学中要避开“语法过度教学”的坑:作者认为大部分人在正规教育中的英语学习是失败的——学的是“哑巴英语”,学完只会做题。以作者本人经验为例,学校教育与《新概念英语》对口语听说的实际帮助有限;真正的英语启蒙来自反复大量地听电影《狮子王》——从初中一直听到大学毕业,约上万遍,跟着朗读、打印脚本精读,台词和语境内化成了“语感”。类似地,《生活大爆炸》1~6 季也成了工作中反复播放的背景音。这带来的启发是:Python 编程也是一门语言,学习时应避开英语学习踩过的坑——不靠死磕语法和孤立地背单词,而是上来就用、沉浸式实践。

本书与其他编程书的主要区别

  1. 有系统的学习体系(本书只是七册体系中的一环),知识有网络可扩展。
  2. 全免费开源,纸质书非必需,视频、书稿、代码全部免费可得。
  3. 视频课程做到“每个代码能跑的都跑一遍、能讲的都讲”,发现代码问题时当场调整。
  4. 学习生态完整——配套视频、PDF 书稿、Jupyter Lab 探究式学习平台、代码仓库、读者沟通邮箱。
  5. 全彩印刷,配置大量可视化案例和代码实现。
  6. 覆盖工具多:Pandas、NumPy、SciPy、statsmodels、Matplotlib、Seaborn、Plotly 均会介绍。
  7. 最后教读者搭建 App(Streamlit),提升完成度和实用性。

学习目标与预期感受

作者期望读者完成《编程不难》(约 30 多小时学习)之后获得两种感觉:

  1. 收获感特别强——觉得学了很多东西,收获感“爆棚”。
  2. 觉得 Python 没有那么难——建立自信,愿意继续学习后面的书、探索新知识和新工具。

如果学完之后觉得味同嚼蜡、想放弃,作者认为那是自己的失败,也是这本书的失败,更是读者时间投资的浪费。

行动清单

对刚开始学习的读者,建议按以下步骤进行操作:

  1. 进入 GitHub 鸢尾花书主页,选择正在学习的分册(当前为《编程不难》),点击主页下拉菜单选择 “download zip”,下载全部代码与书稿。
  2. 安装 Anaconda——安装后即已包含 Jupyter Lab(探索实践的推荐工具)、Spider 等常用 Python 编译器。
  3. 打开 Jupyter Lab,新建文档,尝试运行最简单的代码(如 1+1,按 Ctrl+Enter)验证环境。
  4. 对照书籍板块顺序学习:Anaconda 安装与 Jupyter 使用 → Python 轻量语法 → 够用型绘图 → NumPy → Pandas → 轻量数学工具 → scikit-learn → Streamlit 搭建 App。
  5. 遇到代码不能跑的情况,通过公开邮箱反馈给作者。
  6. 有意参与赠书活动的读者,可通过邮箱提交纠错或在豆瓣写作书评,再联系作者。
  7. 视频录制期间不要扫描书中二维码——资源(视频、代码)尚未准备好,需等课程录完、代码调好后才能使用。

总结

鸢尾花书《编程不难》作为整套七册丛书的起点,定位非常明确:面向 Python 与数学双零基础的读者,以短篇幅、轻量语法、即用即学的理念作为切入点,在 36 章的跨度中从环境搭建一路铺设到机器学习经典算法实践乃至用 Streamlit 做 App 部署,最终串联起后续六册书的数学与可视化学习之路。全书刻意避免“语法堆砌型”编程教材的通病,强调体系学习、项目实践、可视化表达、数学-逻辑思维培养和开源共享精神——“知其然”之后再在后续书中解决“知其所以然”的问题。学完本书,收获感与“Python 并不难”的自信是最重要的评价标准。下一讲将正式进入第一章的讲解。