课程和书籍资源整理

本文整理一下网上口碑较好的英文课程和书籍所对应的中文翻译版本:

编程入门

  1. SICP Python版:部署版
  2. SICP Python 描述 中文版:在线版
  3. CS61A。对应精译视频

数据结构和算法

  1. Algorithms by Jeff Erickson:据说递归和DP(动态规划)的部分讲的很好。
  2. 算法设计手册 (豆瓣):Steve Yegge推荐。
  3. Algorithms | Coursera:Coursera上斯坦福的算法专项课程
  4. Main Page - Algorithms for Competitive Programming:编程算法网站,英文
  5. The Algorithms:编程算法网站,英文

分布式系统

  1. MIT6.824:MIT6.824 中文翻译。对应Lab仓库MIT6.824-2021

操作系统

  1. MIT6.S081:MIT6.S081中文翻译。
  2. Writing an OS in Rust:使用Rust语言编写一个小型的操作系统。
  3. OS Development Tutorials:操作系统开发教程
  4. OSDev.org:操作系统开发维基百科
  5. 6.1810 / Fall 2022:MIT Operating System Engineering课程
  6. Linux内核代码大佬们如何观看的? - 知乎

解释器和编译器

  1. Crafting Interpreters
  2. 解释器设计与实现:上书的中文版,只翻译了部分
  3. 怎样写一个解释器:王垠的文章
  4. Comparison of parser generators:维基百科上对各种parser生成器的比较和总结
  5. CS143 Compilers:斯坦福的编译器课程
  6. becoming-a-compiler-engineer:中科大出品的较现代化的编译器课程
  7. 学习编译原理有什么好的书籍?:有较多知乎大佬认可的编译原理书籍推荐。
  8. 编译器:本人编译器知乎收藏夹
  9. 编译原理:南京大学编译原理课程,项目文档为中文
  10. Compiler:HPC网站上关于Compiler的介绍
  11. RednaxelaFX的书/编译器(73):知乎叛逆者的编译器豆瓣书单。
  12. 介绍 - 解析技术
  13. Course Webpage for Compilers (P423, P523, E313, and E513) | IU-P423-P523-E313-E513-Fall-2020:印第安纳大学使用Racket教学的编译器课程
  14. The Lemon Parser Generator:4000行的C语言parser,搭配《LEMON语法分析生成器(LALR(1)类型)源代码情景分析》使用
  15. Create Your Own Compiler - Caught in the Web:互动式地教你动手写编译器。
  16. The faker’s guide to reading (x86) assembly language // TimDbg:叫你学习x86 assembly language。

计算机图形学

  1. GAMES101:现代计算机图形学入门

静态分析

  1. PASCAL:南大静态分析课程

程序验证

  1. 程序验证 - 知乎
  2. Interactive Theorem Proving:CMU的交互式定理证明课程
  3. 15-815 Automated Theorem Proving:CMU的自动定理证明课程
  4. formalising mathematics course:Kevin Buzzard的形式化数学博客教程
  5. GitHub - analysis-tools-dev/static-analysis:该仓库收集了针对各种语言的静态分析的工具

计算机结构

  1. 依据基本原理构建现代计算机:从与非门到俄罗斯方块(基于项目的课程):coursera上的课程,教你从零造一台计算机。课程名又名《nand to tetris》,对应书籍为《计算机系统要素》,官网为 https://www.nand2tetris.org
  2. CSAPP重点解读:整理了CSAPP一书的重点和学习建议。
  3. Nandgame:在玩游戏的过程中教你学会计算机底层硬件知识。
  4. 计算机系统基础:南大计算机系统基础
  5. [rCore-Tutorial-Book]:本教程旨在一步一步展示如何从零开始用Rust语言写一个基于RISC-V架构的类Unix内核。
  6. CS 61C:UCB的计算机架构课程。对应中文字幕视频
  7. CSAPP:CMU的CSAPP课程lab。
  8. Introduction · GitBook:南京大学计算机系统基础2022,相关感悟见 ICS PA 实验纪实 - 鹤翔万里的笔记本

软件工程

  1. 设计数据密集型应用:神书DDIA的中文版
  2. 6.031: Software Construction:MIT的软件构造课程,看起来很棒。
  3. MOOC - Engineering Software as a Service: An Agile Approach Using Cloud Computing:UCB的软件工程课程。
  4. Our Pattern Language | Our Pattern Language:UCB整理的各个方向的模式文章(包括Structural Patterns/Computational Patterns/Algorithm strategy Patterns/Implementation Strategy Patterns/Parallel execution Patterns),值得细看,体会各个方向的patterns,提高抽象能力 。

深度学习和机器学习

  1. Deep Learning Systems:CMU深度学习课程,涉及算法和实现。
  2. GitHub - labmlai/annotated_deep_learning_paper_implementations:常见模型架构的代码及其注释。
  3. Neural Networks: Zero To Hero:教你从头构建网络的系列视频
  4. AI-EDU:微软社区开源的AI-EDU学习资源

概率图模型

  1. Probabilistic Graphical Models 1: Representation | Coursera:斯坦福概率图模型课程

程序语言理论

  1. 程序语言理论与实现:Rescript语言创建者张宏波推出的程序语言理论课程,注重于实践,使用Rescript教学。
  2. C311/B521/A596 Programming Languages [Home]:印第安纳大学Dan P.Friedman的程序语言课程
  3. Frank Pfenning / CoursesDexter Kozen’s Home PageDan Grossman, Instructor | Coursera (Programming Languages A/B/C)
  4. Programming Languages: On-Line Offering
  5. learnhaskell/guide-zh:学习Haskell的中文路线。
  6. CIS 194:经典的Haskell课程
  7. CS 3110 - Fall 2013 - Course Info:经典的OCaml课程
  8. CSE 341 Winter 2022 - Lecture:Programming Languages A/B/C的新版
  9. CS152 - Harvard University - Lectures:哈佛大学Programming Languages课程
  10. CS 164, Fall 2022:UC Berkeley的 Programming Languages and Compilers课程。CS164 (Fall 2004) 版本。

数据库

  1. How Does a Database Work? | Let’s Build a Simple Database
  2. Readings in Database Systems, 5th Edition:数据库方向的论文集

服务器开发

  1. 30dayMakeCppServer:30天自制服务器(C++)

计算机网络

计算机网络:

  1. Jim Kurose Homepage:《计算机网络自顶向下方法》第八版官网

函数式编程

  1. Welcome to 《A Little Java, A Few Patterns》笔记 — 《A Little Java, A Few Patterns》笔记 1.0 文档
  2. Welcome to 《The Little Schemer》笔记 — 《The Little Schemer》笔记 1.0 文档
  3. DrRacket 的安装与 SICP 的配置 - 知乎
  4. Introduction · Scheme编程语言(第四版)
  5. Racket语言入门
  6. DrRacket 载入模块

网络编程

  1. schedule | web.lab:MIT的网站开发课程
  2. CS142 Lectures:斯坦福大学的网络编程课程

并行

  1. GitHub - parallel101/course: 高性能并行编程与优化 - 课件

全栈开发

  1. 关于本课程 | 全栈公开课2022:本课程是介绍如何使用JavaScript开发现代Web应用程序。 课程的重点是使用ReactJS构建单页面应用程序(SPA),并使用由Node.js构建REST API。 该课程还包含介绍GraphQL的部分,这是REST API的现代替代方案。课程还包括测试、配置和环境管理,以及使用 MongoDB 来存储应用的数据

技术文章

  1. 技术文章摘抄
  2. The Illustrated TLS 1.3 Connection: Every Byte Explained

软件组织

  1. Team, Project, and file organization

Programming Idioms

  1. https://programming-idioms.org/all-idioms