推荐 - 书与课程

尚未实现

  • 笔者经常忙,目前是未完成的,待日后逐步更新
  • 未来更多书与课程可能会在此补充
  • 目录顺序不代表学习顺序

Books & Courses

本页汇集了我在计算机科学学习之旅中,认为具有价值的书籍与课程资源。相较于已非常全面的 csdiy 等课程聚合平台,我将更多地侧重于分享那些我更有所了解的书籍。

学习哲学:为何推荐这些资源?

首先需要明确,这份列表聚焦于非应试类经典教材。它们的目标并非帮助你通过某场特定的考试,而是致力于构筑坚实的知识地基、培养深刻的工程直觉和从第一性原理出发解决问题的能力。

在选择上,我们可以借鉴一种广为流传的视角:“美系奠基,苏系淬炼”。美系教材通常善于构建宏观视野与直觉;苏系教材则以其严谨的逻辑和高强度的训练闻名。若能兼收并蓄,将极大提升学习的深度与高度。

我的核心学习策略:先深后广 (DFS -> BFS)

我个人探索出的一套有效方法是“先深度优先,再广度优先”。

  • 第一阶段 (DFS - 深度优先): 针对一门学科,精选一到两本核心教材,进行沉浸式、系统性的学习。目标是彻底打通该学科的主干脉络,建立稳固的认知框架。
  • 第二阶段 (BFS - 广度优先): 在掌握主干知识后,横向铺开,将其他优秀教材进行逐章对比阅读。这一阶段的目标是查漏补缺、博采众长,理解不同视角下的知识呈现方式,从而让理解更加立体和深入。

这套方法的核心在于:明智地选择“DFS”的核心教材,并在“BFS”阶段带着问题去对比和补充。当然,策略需要灵活变通,若发现核心教材存在重大缺陷,应果断调整。

重要心态:求知而非“打卡”

最后,也是最重要的一点:选择书籍和课程只是起点,真正的收获在于理解与吸收。 列表虽长,但无人需要(也不可能)全部读完。其实下列书籍与课程我必然是不可能全学习完毕的,我们的目标是构筑坚实的知识体系,而非完成一份“读书清单”。择其精要,为你所用,方为上策。

一些网站推荐:

书籍

  • Zlib
  • Annas Archive

课程

许多学校会开放公开课程及其作业,以上是一些无需注册账号就能使用的免费示例,更多可以自行探索


Mathematics

Linear algebra

Courses

  • MIT18.06 Linear Algebra - Gilbert Strang
    • 最适合线性代数入门的课程,有教材

Books

  • Introduction to Linear Algebra - Gilbert Strang
    • 该书是根据 MIT18.06 课程编写的教材,适合入门且极其著名,是世界范围内公认的线性代数入门经典教材,与许多充斥着繁琐证明的传统数学教材不同,这本书最大的特点是强调对核心概念的直观理解和几何意义,但无官方中译资源。
  • 线性代数高级教程 A Second Course in Linear Algebra - horn等
    • 很适合线性代数再次学习时入门矩阵论的教材
  • Introduction to Electrodynamics - David J. Griffiths
    • 第一章为向量解析内容值得学习,其余部分偏重电磁场,适合EE相关学习电磁场用(其余部分我也没看过)
  • 高等代数 - 丘维声
    • 适合练习题,证明题质量较高,练度扎实
  • 线性代数 同济版
    • 该官方标配的教材,相比之下却不适合入门,而适合练习,题目量大管饱,社区讨论也最多
  • 线性代数及其应用 Linear Algebra and Its Applications - David C. Lay
    • 适合入门后再次学习,部分内容能够对线性代数上升理解
  • Linear Algebra Done Right - Axler
    • 适合入门后再次学习,这本书以算子及其结构化与优雅的证明为中心重新讲解线性代数,个人两本都阅读过感觉建议读英文原版而非中译本(也不是说中译不好,读完就是感觉怪,我个人还搭配了一个头像是久美子的up主视频看)
  • 数值线性代数
    • 数值计算作为补充内容
  • 矩阵计算手册 The Matrix Cookbook
    • 类似积分表一样的工具性教材
  • 解析几何 - 丘维声
    • 学到后期线性代数避无可避会遇到和几何的结合与应用,此时如果遇到困难要补几何可以浅看此书

Mathematical Analysis

Courses

  • MOOC 复变函数与积分变换 吴崇试
    • 复变函数没有位置单列,就放到这里吧,有教材

Books

  • 数学分析 - 陈纪修
    • 相比其他教材更加丰富全面,非入门的再次学习可只看新内容
  • 数学分析 - 华师版
    • 经典皮肤,比起其他更通俗易懂,内容很简略,类似高数加点东西
  • 数学分析中的典型问题与方法 - 裴礼文
    • 一本无人不知、无人不晓的传奇之作,被亲切地(或敬畏地)称作裴砖。当然,这不是一本传统的教科书,而是一本专注于解题思想与方法的习题集和辅导宝典。题量很大任你刷,个人认为数学分析不刷题是不行的否则只能停留在微积分层面,有必要挑着题刷,才有办法精通数学分析,并能够游刃有余地解决各种复杂问题,
  • 复变函数与积分变换 哈工大版
  • 复变函数 - 史济怀
    • 复变函数没有位置单列,就放到这里吧
  • 数学分析讲义 - 梅加强
    • 判断一本数学分析讲的是否足够现代,可以看它是否讲到度量空间,以及是否能讲清楚微分形式。国外的诸如Rudin,Zorich等教材都做的很好,但国内大部分教材都太古典导致无法cover这两部分内容。梅老师的数学分析很好地处理了这两部分,同时也兼顾了古典的内容。
  • 数学分析教程 - 史济怀
    • 题目很好,入门兼顾刷题时的选择
  • 傅里叶分析 Stein
    • Stein的傅里叶分析是很推荐的,看起来可以很快,虽然是数学但中译本也是黑书(误)
  • 数学分析原理 - Rudin
    • 虽然是美系教材,但具很大苏系教材特点,看个人偏好
  • stein数学分析四部曲(除了傅里叶分析)
    • 其他的三本我没看过但被强推过,故放在这里。有四本逐步深入,分别涉及实分析,复分析,傅里叶分析,泛函分析。

Probability & Statistics

Courses

  • 统计学习方法 - 李航
    • 里面会讲解随机过程的部分,随机过程部分适合学习,有教材,后面机器学习也会提到也依旧推荐
  • 概率导论 Introduction to Probability - John Tsitsiklis
    • 书籍的配套课
  • MIT 6.041 概率系统分析与应用概率
    • 同MIT课程,有配套讲义习题等

Books

  • 概率导论 Introduction to Probability - John Tsitsiklis
    • 即适合学习又适合刷题,还适合反复阅读,内容还涉及许多信息论可学习部分,而且还有配套课
  • 概率论与数理统计 - 茆诗松
    • 经典的国内教材
  • 概率论基础教程 A First Course in Probability - Ross
    • 知识内容丰富且可用于入门的教材
  • 数理统计 - 韦来生
  • 高等数理统计 - 陈希孺
    • 内容更深入
  • 统计计算:使用R
    • 更加深入的统计部分,会R语言还可实践
  • 具体数学:计算机科学基础
    • 放这里不太准确,内容其实远超概率统计,按需学习
  • Statistical Inference 统计推断
    • 概率统计经典教材
  • Probability and Random Processes - Geoffrey R. Grimmett, David R. Stirzaker
    • 深入到随机过程的进阶教材,不学随机过程也可以只看前面的进阶

Calculus

Courses

  • MIT18.01 Single Variable Calculus
    • 适合微积分入门的课程
  • MIT18.02 Multivariable Calculus
    • 适合微积分入门的课程

Books

  • 高等数学 同济版
    • 内容较基础,很经典的标准教材,注重对基本概念的掌握和扎实的运算能力的训练,适合入门,社区讨论也最多
  • Calculus James - Stewart
    • 内容较基础,适合入门,全英文
  • 普林斯顿微积分读本 - The Calculus Lifesaver: All the Tools You Need to Excel at Calculus
    • 适合入门
  • 高等数学习题及习题集精解 - 复旦版
    • 一本类似同济版但更加深入的教材,习题及解析很不错适合用来练习
  • 常微分方程 - 丁同仁
    • 大部分微积分与高数教材讲解微分方程部分都很浅,这是一本适合入门的常微分方程教材,与许多仅仅侧重于初等求解技巧的入门教材截然不同,本书的真正核心在于其深刻的定性理论和稳定性理论。不仅仅局限于“如何解出方程的显式解”,而涉及到“如何分析解的内在性质与长期行为”。是一本理论驱动、思想深刻的“硬核”教材。
  • 常微分方程 - 王高雄
    • 类似上一本教材,更加偏重做题,适合练习习题
  • Advanced Engineering Mathematics
    • 除了下面会提到的数值分析部分,PartA部分里面也讲到了微分方程部分适合学习
  • 偏微分方程 - 陈祖墀
    • 偏微分方程书籍
  • 微积分学教程
    • 经典的苏系微积分入门教材
  • Thomas’ Calculus 托马斯微积分
    • 经典的美系微积分入门教材

CS

Information mathematics

Books

  • Applied Abstract Algebra
    • 虽然听起来是抽象代数,但实际上内容均为计算机科学中例如信息论密码学等重要的信息数学知识

Numerical analysis

Courses

  • Numerical Linear Algebra, Trefethen
    • 很经典,有教材
  • MOOC 数值分析 华科版
    • 有教材

Books

  • Advanced Engineering Mathematics
    • PartE部分是扎实丰富的数值分析内容,很值得作为数值分析快速学习的教材(其他部分也不错,后面就不再重复列出该书了)

Discrete mathematics

Courses

  • 离散数学 电子科大版
  • 离散数学 北大版
    • 国内网课,北大版内容更丰富,选看

Books

  • Invitation to Discrete Mathematics
    • 很深很详细,有大量证明
  • Discrete Mathematics and Its Applications
    • 和MIT线代同根同源,极其著名,有中译,最大的特点正如其名——极其强调“应用”。这本书不仅系统地介绍了离散数学的核心概念(如逻辑、证明、集合论、算法、数论、图论等),更重要的是,它花费大量篇幅将这些抽象理论与计算机科学的实践紧密联系起来。适合希望建立一个全面、实用且与专业紧密结合的离散数学知识体系的计算机专业学生
  • 离散数学 - 屈婉玲
  • 离散数学教程 - 屈婉玲
    • 经典国内教材,更侧重于数学本身的严谨性、逻辑性和结构性,是更加“纯粹”和“精炼”的数学教材,其中第4部分组合数学内容非常很好,而在教程中提供大量可刷的习题,质量好

Algorithm analysis

Courses

  • 算法设计与分析 武大版
  • 算法设计与分析 北航版
    • 国内网课,均有配套教材
  • MIT 6.006 Introduction to Algorithms
    • 以CLRS为教材,相比直接啃书,该课程更加适合入门了,图形展示通俗易懂
  • Coursera: Algorithms I & II
    • 普林斯顿课程,Project极其丰富
  • Stanford CS161
    • 类似地比算法导论直接看书更好的理解课程,注意不要和UCB CS161混淆了,两者恰好课号相同

Books

  • 算法导论 Introduction to Algorithms - CLRS
    • 很经典的神教材,本书的地位源于其无与伦比的广度、深度和数学严谨性。它不仅仅是教你如何写算法,更是教你如何像一个计算机科学家一样去分析和设计算法,内容较多可挑选着看,是一本权威的、用于“深度理解”的学术著作和参考手册。更适合作为高校计算机专业的教科书,或者供那些希望从根本上理解算法理论、进行学术研究的读者使用,需要深厚内力
  • 算法 Algorithms - Sedgewick
    • 即算法四,另一本很适合入门的神教材,以其无与伦比的实用性和对程序员的友好度而著称,这本书的哲学是“代码即是思想”,它致力于将抽象的算法理论与具体的编程实践无缝连接,强调动手实践,同样不错
  • 算法引论: 一种创造性方法 Udi Manber
    • 书如其名,创造性编程的算法书籍
  • 算法设计 Jon Kleinberg
  • 算法设计与应用 Michael T.Goodrich & Roberto Tamassia
    • 风格类似的算法分析书籍
  • 算法设计与分析导论
    • 黑书,题不错,值得训练
  • Algorithms - Jeff Erickson
    • 比较难,选看即可
  • 计算机算法 (C++版)
    • 黑书,C++ 实现

Formal languages & Automata

Courses

  • 形式语言与自动机 哈工大版
  • 形式语言与自动机 北大版
    • 均为国内网课,哈工大版是经典
  • CS4810 Introduction to Theory of Computation
    • 不错的计算理论网课,配套习题很好

Books

  • 自动机理论、语言和计算导论 Introduction to Automata Theory Languages and Computations
    • 著名黑书,但中译很差,建议看英文原版
  • 算法导论 - CLRS
    • 里面也有涉及形式语言与自动机部分的内容

Mathematical logic

Books

  • Logic and Structure - Dirk van Dalen
    • 无中译,较全面,按需选择
  • 离散数学 - 屈婉玲
    • 经典国内教材,涉及了数学逻辑部分

Compiler principles

Books

  • Modern Compiler Implementation in ML
    • 即知名的虎书,函数式编程语言,推荐英译本,更多人可能听说过龙书,但龙书我没看过不评价
  • 类型和程序设计语言 Types and Programming Languages - Pierce
    • 有中译,推荐看中英结合

Computer architecture

Courses

  • CS4100 Computer Architecture,TingTing Hwang
    • 内容很全面的网课
  • 计算机组成 北大
    • 是计组课程,内容较少,入门级别

Books

  • 计算机组成与设计 Computer Organization and design MIPS版
    • 即黑书,很著名,基于RISC,本书的核心是让你像一个计算机架构师一样思考,采用“自底向上”的视角,旨在回答一个核心问题:“我们应该如何设计和构建一台现代计算机?
  • CSAPP
    • 即黑书,很著名,基于CISC,本书的核心是让你像一个专业的程序员一样思考,采用“自顶向下”的视角,旨在回答一个程序员关心的问题:“我的程序为什么这样运行?如何让它跑得更快、更稳?”,该书对系统知识弱基础也能看懂,建议两本都看,刚好两者互补

Operating system

Books

  • 操作系统概念 Operating System Concepts
    • 著名黑书,是操作系统知识的“百科全书”。它的核心目标是系统、全面且深入地阐述操作系统的基本概念、原理和实现技术
  • Operating System Concepts Essentials
    • 上者的精简版,保留了原书的精华,舍弃了部分高级或非核心的主题,集中火力讲解操作系统最基本、最重要的概念,是性价比更高的选择
  • 操作系统 精髓与设计原理
    • 另一本黑书,可以对比看看哪个更加适合
  • 操作系统导论 Operating System :Three Easy Pieces
    • 即OSTEP,深入浅出,但中译又是有问题

Digital circuit

Courses

  • ETH Zurich Digital Design and Computer Architecture
    • 以数字设计和计算机体系结构为教材的课程,适合结合一起学习
  • 数字电路 西电 任爱峰
    • 入门级,很通俗易懂
  • UCB eecs151 Introduction to digital design and ICs
    • 很知名的数字电路课程,Project内容很丰富
  • Digital system design 台湾科技大学 刘一宇
    • 以Fundamentals of Logic Design为教材的课程,适合结合一起学习
  • 数位逻辑设计 台湾清华大学
    • 讲的不错的网课

Books

  • 数字设计和计算机体系结构 Digital Design and Computer Architecture - Harris, David, Harris, Sarah
    • 很著名的数字电路教材,丰富扎实,英文更佳,最大的创新和优势在于将“数字电路”与“计算机体系结构”这两门传统上分离的课程整合在了一起,为读者提供了一条从零开始、直达核心的连贯学习路径
  • 现代逻辑设计
    • 值得学习,为清华的数字电路课程教材,能确保你对数字电路的基本原理和经典分析设计方法有深刻而扎实的理解
  • Fundamentals of Logic Design
    • 全英,国外的经典数字电路教材
  • Digital Design: Principles and Practices 数字设计原理与实践
    • 即数电的黑书

Machine learning

Courses

  • 统计学习方法 - 李航
    • 有教材,很适合结合教材看或单看教材都不错
  • ESL
    • 习题非常难,有时间和精力可以看
  • CMU-ML
    • 课后题可以做做
  • Coursera: Machine Learning
    • 大名鼎鼎的吴恩达课程
  • CS229 Machine Learning
    • 也是吴恩达课程,更加偏理论,很吃数学功底,入门很不推荐

Books

  • The Elements of Statistical Learning
    • ESL教材
  • 機械学習 中川裕志
    • 曾为东京大学学部使用教材
  • Introduction to Statistical Machine Learning 统计机器学习导论 杉山将
    • 同上,从“统计学”视角出发,深入剖析机器学习理论,与许多以算法和代码为中心的机器学习书籍不同,这本书最大的特色是其严谨的数学框架
  • 机器学习 周志华
    • 西瓜书,最大的特点是其“广度”与“深度”的完美结合,为学习者提供了一幅完整而清晰的机器学习知识图谱
  • 动手实现深度学习 李沐
    • 算比较著名的ML,DL教材了
  • 神经网络与深度学习
    • 即NNDL
  • Artificial Intelligence: A Modern Approach 人工智能:一种现代的方法
    • 也是一本人工智能经典教材
  • 模式识别与机器学习
    • 即PRML

Data structures

Books

  • 数据结构与算法分析 Data Structures and Algorithm Analysis in C
    • 即黑书

Optimization theory

Books

  • Convex Optimization 凸优化 - Boyd
    • 凸优化经典教材了,学ML必备的

Computer networking

Courses

  • Computer Networking: A Top-Down Approach - Kurose
    • 配套网课,结合书籍看很好,内容丰富
  • 计算机网络 湖科大
    • 听说是最容易入门的课程

Books

  • 计算机网络: 自顶向下方法 Computer Networking: A Top-Down Approach
  • 计算机网络: 系统方法 Computer Networks: A Systems Approach
    • 经典的计算机网络教材,两种方法正好对应两种学习的个人情况与需求
  • 计算机网络 - 谢希仁
    • 极其厚重的一本,内容很充实丰富,涉及面很广

Graph theory

Books

  • Discrete Mathematics and Its Applications
    • 离散数学就出现过了,这里在图论里面也可以作为只着重复习图论部分的教材
  • Graph Theory GTM版
    • 比较高难,毕竟是GTM,适合作为进阶。

EE

Information theory

Courses

  • 信息论 台湾交通大学 陈伯宁
    • 在世界都极其知名的网课,课程内容丰富
  • 信息论课程 上交
  • 应用信息论基础 清华
    • 国内的信息论网课

Books

  • 信息论基础 Elements of Information Theory
    • 信息论黑书,很经典的教材

Digital signal processing

Courses

  • MIT 6.007 奥本海姆
    • 知名课程,适合结合教材看
  • 西电 郭宝龙
    • 国内教材,很简单适合入门,但有缺陷不讲原理

Books

  • 信号与系统 - 奥本海姆
  • 离散时间信号处理 - 奥本海姆
    • 该领域最知名与重要的教材,中英皆不错,后者为进阶版,内容很复杂,可挑选看,例如挑选3和8
  • 数字信号处理 - 高西全, 丁玉美
    • 国内教材,基于Matlab

Electrical circuits

Books

  • 电路 - 邱关源
    • 这些课看得少,只看过这本
  • Fundamentals of Electric Circuits
    • 海外很著名的教材

Electronic circuits

Courses

  • 拉扎维网课
    • 听说挺好

Books

  • Fundamentals of Microelectronics - 拉扎维
    • 拉扎维教材
  • 电子电路与系统基础 - 李国林
    • 国内不错的电子电路教材

Principles of digital communication

Not Principles of communication.

Not yet learned…

Waiting for update…


Programming

C

Waiting for update…

Java

Waiting for update…

Software programming

Books

  • 计算机科学导论
    • 黑书,适合萌新入门或放松,不知道放哪里就放这里了
  • 编程之美
    • 内容是讲解微软面试题,以学习编程思考

Dynamic programming

Waiting for update…


Advanced mathematics (for EECS)

Advanced algebra (Matrix theory, Abstract algebra, Algebraic combinatorics)

我看的刚好都是华章三件套,矩阵分析,近世代数,组合数学,不过没看完,暂时先这样,不详细展开

Advanced probability & statistics (Probability, Statistics, Stochastic process)

Not yet learned…

  • 计算机系统的性能建模与设计:排队论实战
    • 黑书,为CS写的书,是极具权威性、实践性和全面性的计算机系统性能分析领域的百科全书式著作。但由于该领域本来就是对本科生较为小众和难以实践的领域,以后有空再看