Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

附录3 百宝箱——工欲善其事必先利其器

路虽远行则将至,事虽难做则必成。


一、思维方法论

三种核心思维

思维说明
数学思维数学是科学的语言,是最重要的理论工具
工具思维计算机是最重要的工程应用工具
工程思维将理论工具应用到实际问题中的思维方式

人类学习的一般规律

  • 从特殊到一般:先接触具体实例,再归纳总结出普遍规律
  • 从直觉到抽象:先靠感官感知,再上升到抽象推理
  • 从已知到未知:依托已有知识同化新知识
  • 从感性到理性:先感性观察,再理性分析

费曼学习法

如果你不能用简单的话把某个概念讲清楚,说明你还没有真正理解它。—— 理查德·费曼

四个步骤:

  1. 确定目标:写下你想学习的概念
  2. 模拟教学:用最简单的语言解释给一个8岁的孩子听
  3. 发现盲点:卡住的地方回到原始材料重新学习
  4. 简化与类比:用一个生动的类比让外行也听懂

二、中外著名数学家

时代数学家国籍贡献
古希腊毕达哥拉斯希腊勾股定理、万物皆数
古希腊欧几里得希腊《几何原本》、公理化方法
古希腊阿基米德希腊浮力定律、杠杆原理
17世纪牛顿英国微积分、万有引力
17世纪莱布尼茨德国微积分(独立创立)
18世纪欧拉瑞士数学分析、图论、符号创造
19世纪高斯德国数论之王、统计学
19世纪黎曼德国黎曼几何、黎曼猜想
20世纪冯·诺依曼匈牙利计算机架构、博弈论
20世纪拉马努金印度数论、直觉数学天才
20世纪庞加莱法国拓扑学、庞加莱猜想
时代数学家贡献
三国刘徽《九章算术注》、割圆术
南北朝祖冲之圆周率精确到 7 位小数
南宋秦九韶《数书九章》、秦九韶算法
近代华罗庚解析数论、统筹法
近代陈景润哥德巴赫猜想研究
近代陈省身微分几何
近代吴文俊吴方法(机器证明)
当代丘成桐菲尔兹奖、卡拉比-丘流形
当代陶哲轩数论、调和分析
当代张益唐孪生素数猜想突破

更多数学家参考:数学时间线


三、计算机著名科学家

人物贡献
艾伦·图灵图灵机、人工智能、密码破译
约翰·冯·诺依曼冯·诺依曼架构、博弈论
克劳德·香农信息论、数字电路理论
高德纳(Donald Knuth)《计算机程序设计艺术》、TeX
约翰·麦卡锡Lisp 语言、人工智能
林纳斯·托瓦兹Linux 内核、Git

四、数学工具

工具说明
MATLAB商业科学计算软件
[WolframAlpha](https://zh.wolframalpha.com/)
北太天元国产通用型科学计算软件
Desmos在线图形计算器
Mathigon数学游乐场(交互式学习)
GeoGebra动态几何数学软件
VisuAlgo算法可视化

五、Python 工具生态

工具用途
Manim数学动画制作
NumPy科学计算基础库
SciPy科学计算
SymPy符号计算
Matplotlib数据可视化
Pandas数据分析
Scikit-learn机器学习
Statsmodels统计建模
PaddlePaddle深度学习框架
CUDAGPU 并行计算
jieba中文分词

六、Rust 工具生态

工具用途
cargoRust 包管理器
nalgebra线性代数库
plotters数据绘图库
Apache Arrow内存列式数据格式
DataFusion查询引擎
mdBook电子书生成工具
mdbook-mermaidmdBook 的 Mermaid 图表插件
Mermaid图表即代码
Tauri桌面应用框架
SQLite嵌入式数据库
RustlsTLS 库
dimforge科学计算库集合
CodeWhaleRust 在线学习平台
ffmpeg多媒体处理库
ffmpeg-next多媒体处理库的 Rust 绑定

在线运行环境

工具说明
Rust Playground在线运行 Rust 代码
Rust ExplorerRust 代码在线实验
Replit多语言在线 IDE
Godbolt (Compiler Explorer)交互式编译实验室
miniserve静态文件服务器

七、IDE 与编辑器

IDE说明
Zed高性能编辑器(Your last next editor)
VS Code最流行的通用编辑器
RustRoverJetBrains 出品的 Rust IDE
IntelliJ IDEAJava/Rust 开发

八、学习资源

8.1 经典书籍

计算机科学经典

书名作者说明
《计算机程序设计艺术》(TAOCP)Donald Knuth算法圣经,共四卷
《算法导论》(CLRS)Cormen 等最经典的算法教材
《深入理解计算机系统》(CSAPP)Bryant & O’Hallaron程序员视角理解计算机
《计算机程序的构造和解释》(SICP)Abelson & SussmanMIT 经典,Scheme 语言
《代码大全》Steve McConnell软件构建实践百科
《程序员修炼之道》Hunt & Thomas务实程序员指南
《设计模式》GoF 四人组23 种经典设计模式
《重构:改善既有代码的设计》Martin Fowler代码重构方法论
《编译原理》(龙书)Aho 等编译器构造经典
《计算机组成与设计》Patterson & Hennessy硬件与软件的接口
《操作系统概念》(恐龙书)Silberschatz 等操作系统教材
《计算机网络:自顶向下方法》Kurose & Ross网络经典教材
《数据库系统概念》Silberschatz 等数据库教材
《人工智能:一种现代方法》(AIMA)Russell & NorvigAI 领域权威教材
《深度学习》(花书)Goodfellow 等深度学习圣经

Rust 编程

书名说明
《The Rust Programming Language》Rust 官方教程(Klabnik & Nichols)
《Rust By Example》通过示例学 Rust
《Rustlings》交互式 Rust 练习
《Programming Rust》O’Reilly 深入版(Blandy & Orendorff)
《Rust in Action》系统编程实战(McNamara)
《Zero to Production in Rust》后端工程实战(Palmiro)
《Rust for Rustaceans》进阶 Rust(Gjengset)
《Command-Line Rust》CLI 工具开发

算法与数据结构

书名作者说明
《算法》(Algorithms)Sedgewick配合可视化,Java 版
《算法图解》Bhargava入门友好,插图丰富
《剑指 Offer》何海涛面试算法经典
《编程珠玑》Bentley算法思维训练
《算法竞赛入门经典》刘汝佳竞赛算法(紫书)
《数据结构与算法分析》WeissC/C++/Java 多版本

数学与密码学

书名作者说明
《具体数学》Knuth 等计算机数学基础
《离散数学及其应用》Rosen离散数学经典教材
《线性代数应该这样学》Axler抽象线性代数
《概率论与数理统计》陈希孺概率统计
《数论概论》Silverman数论入门
《密码学原理与实践》Stinson密码学教材
《应用密码学》Schneier密码学百科全书

8.2 在线教程与课程

公开课与 MOOC

资源说明
MIT OpenCourseWareMIT 免费课程(6.006 算法、6.828 OS 等)
CS50哈佛计算机科学入门课
Coursera斯坦福、密歇根等名校课程
edXMIT/哈佛/伯克利在线课程
Stanford Online斯坦福在线课程
B站学习区大量中文字幕翻译课程

交互式学习

资源说明
RustlingsRust 交互式练习
Rust By PracticeRust 实战练习
LeetCode算法刷题平台
Exercism多语言编程练习
Codecademy交互式编程学习
freeCodeCamp免费全栈开发课程
Khan Academy数学与计算机科学免费课程

8.3 算法与竞赛平台

平台说明
LeetCode最流行的算法面试刷题平台
力扣LeetCode 中文站
Codeforces竞技编程竞赛平台
AtCoder日本竞赛平台,题目质量高
洛谷国内最大算法竞赛社区
牛客网面试笔试 + 竞赛
Project Euler数学+编程挑战(600+ 题)
HackerRank企业招聘+算法练习
SPOJ经典在线评测系统
UVa Online Judge紫书配套题目

8.4 开发者文档与手册

资源说明
Rust 官方文档标准库、Book、Reference
Rust std 文档标准库 API 文档
Rust by Example示例驱动学习
Cargo BookCargo 包管理器手册
Rust CookbookRust 编程示例集
MDN Web DocsWeb 开发权威文档
DevDocs聚合多个 API 文档
cheatsheets 各类速查表
OverAPI编程语言速查表集合

8.5 开发者社区与资讯

社区说明
GitHub全球最大代码托管与协作平台
Stack Overflow程序员问答社区
Reddit r/rustRust 社区讨论
Reddit r/programming编程综合讨论
Hacker News技术新闻与讨论
Reddit r/cppC++ 社区
users.rust-lang.orgRust 官方论坛
V2EX国内开发者社区
掘金中文技术社区
博客园中文技术博客
InfoQ技术资讯与深度文章
This Week in RustRust 每周资讯

8.6 视频教程

资源说明
3Blue1Brown 官网数学可视化讲解
3Blue1Brown B站中文字幕版
微积分的本质微积分可视化系列
线性代数的本质线性代数可视化系列
MIT 6.006 算法导论Erik Demaine 教授主讲
Crash Course Computer Science计算机科学速成 40 集
Jon Gjengset YouTubeRust 深度直播
Let’s Get RustyRust 教程频道

8.7 技术博客与资讯

资源说明
Martin Fowler 博客软件架构与重构大师
Joel on SoftwareStack Overflow 创始人博客
Paul Graham 文集YC 创始人,创业与编程
The Pragmatic Engineer工程实践深度文章
Lobsters高质量技术链接聚合
Daily.dev开发者个性化技术资讯
阮一峰的网络日志科技爱好者周刊
酷壳 CoolShell陈皓的技术博客

8.8 开源与协作平台

平台说明
GitHub全球最大代码托管平台
GitLabDevOps 一体化平台
Gitee国内代码托管平台
BitbucketAtlassian 代码托管
Codeberg非营利开源协作平台
crates.io Rust 包注册中心
docs.rsRust crate 自动文档
lib.rsRust crate 发现与推荐

8.9 交互式工具

工具说明
matrix_calculator矩阵计算器
Polypad数学画布
Rust Playground在线运行 Rust 代码
Compiler Explorer查看编译后的汇编代码
Python Tutor代码可视化执行(支持多语言)
[WolframAlpha](https://www.wolframalpha.com/)

8.10 数据库

资源说明
SQLite嵌入式数据库
SpatiaLite地理空间数据支持
SQLCipher加密的 SQLite 数据库
PostgreSQL功能强大的开源关系数据库
Redis内存键值数据库
DuckDB嵌入式分析型数据库

九、Rust Playground 运行原理

# 将 markdown 中的代码块发送到 Rust Playground API
curl -X POST https://play.rust-lang.org/evaluate.json \
  -H "Content-Type: application/json" \
  -d @rust_code.json

Rust Playground 预置了下载量排名前 100 的 crates、Rust Cookbook 中的 crates,以及它们的所有依赖项。你可以直接使用它们,无需任何额外配置。


十、经典语录

  • “万物皆数” —— 毕达哥拉斯
  • “条条大路通罗马” —— 从当前位置到达目的地存在多种路径
  • “量变引起质变” —— 持续积累终将导致突破
  • “科学技术是第一生产力”
  • “科学技术是一把双刃剑,既可以造福人类,也可以伤害人类,关键是掌握在谁的手中,用它来干什么”

十一、人机交互方式

方式说明
GUI图形用户界面,用户友好
CLI命令行界面,高效精确
代码人类使用代码编写程序与机器交互

成千上万的科学家实现 0→1 的发现,数以千万的工程师创造、集成大量的工具,数以亿计的普通人利用工具。

一个伟大的工具,能够深入和广泛应用在各行各业,一个重要的前提是成本足够低、效率足够高。