Jesse A. Green / notebook

Live demo: the DocCompiler guide library as a static, read-only snapshot (October 2026). No backend, no accounts, nothing to submit.

CS Self-Learning Guide (CS自学指南) — Content Guide

Generated May 2026 from PKUFlyingPig/cs-self-learning at 3ec3100

AI-generated documentation. The library is checked by sampling (three repositories so far); this guide was not individually reviewed. Verify against the project before relying on it.

A comprehensive, community-curated collection of high-quality computer science courses designed to help self-learners build a complete CS education from freely available university-level resources. Created by PKUFlyingPig (Peking University) and maintained by the open-source community at csdiy.wiki.

1. What's in This Collection

CS自学指南 organizes 100+ vetted computer science courses from top universities (MIT, Stanford, UC Berkeley, CMU, and others) into a structured self-learning curriculum. Every course entry includes the institution, course code, a description of what it covers, links to course materials, and community-contributed learning experiences.

The collection covers the full breadth of a CS undergraduate and graduate education:

Topic Area Chinese Name Courses Focus
Productivity Toolkit 必学工具 14 Vim, Emacs, Git, GitHub, Make, CMake, LaTeX, Docker, Scoop, workflows
Fundamental Mathematics 数学基础 3 Calculus (MIT 18.01/18.02), Linear Algebra (MIT 18.06), Information Theory
Advanced Mathematics 数学进阶 6 Discrete math, probability, numerical analysis, convex optimization
Intro Programming 编程入门 13 Python, C, C++, Java, Rust, OCaml, Haskell, shell tools
Electronics Fundamentals 电子基础 3 Signals & systems, circuit design
Data Structures & Algorithms 数据结构与算法 5 CS61B, Algorithms I/II, MIT 6.006, 6.046, CS170
Software Engineering 软件工程 3 MIT 6.031, UCB CS169, CMU 17-803
Computer Systems 计算机系统基础 2 CMU 15-213 (CSAPP), Stanford CS110
Computer Architecture 体系结构 4 Nand2Tetris, CS61C, ETHz DDCA/CA
Operating Systems 操作系统 4 MIT 6.S081, UCB CS162, NJU OS, HIT OS
Parallel & Distributed Systems 并行与分布式系统 2 CMU 15-418/CS149, MIT 6.824
Computer Security 系统安全 6 CS161, MIT 6.1600, MIT 6.858, CSE365, CSE466, SEED Labs
Computer Networking 计算机网络 4 CS168, CS144, Top-Down Approach (two versions)
Database Systems 数据库系统 5 CS186, CMU 15-445, CS122, CS346, CMU 15-799
Compilers 编译原理 6 CS143, CS420, PKU/NJU/USTC/SJTU compilers
Programming Languages 编程语言设计与分析 4 CS242, NJU/PKU software analysis, Cambridge semantics
Computer Graphics 计算机图形学 6 GAMES101/202/103, CS148, CMU 15-462, USTC CG
Web Development Web开发 4 MIT web dev, CS142, Full Stack Open, CS571
Data Science 数据科学 1 UCB Data100
Artificial Intelligence 人工智能 3 Neural Networks: Zero to Hero, CS50 AI, CS188
Machine Learning 机器学习 3 Coursera ML, CS229, CS189
ML Systems 机器学习系统 5 AICS, CMU 10-414, TinyML, MLC, CSE234
Deep Learning 深度学习 11 CS230, LHY, CMU 11-785, CS231n, CS224n, CS224w, CS285, and more
Deep Generative Models 深度生成模型 3+3 MIT 6.S184, roadmap, plus 3 LLM courses (CMU 11-868/667/711)
Advanced ML 机器学习进阶 5 CMU 10-708, STAT 8201, STA 4273, CS229M, roadmap

Tip

The site is fully bilingual — every course page has both a Chinese (.md) and English (.en.md) version. Toggle between languages using the language selector on csdiy.wiki.

2. How to Read / Use This

Intended reading approach

This is a browse-by-topic collection, not a linear textbook. You do not need to read it front-to-back. The recommended approach:

  1. Start with the Foreword (index.md) — understand the author's motivation and philosophy
  2. Read "How to Use This Book" (使用指南.md) — practical orientation for self-learners
  3. Review the CS Learning Plan (CS学习规划.md) — a suggested ordering and roadmap
  4. Browse topics that match your current learning goals
  5. Pick a course and follow its materials

Prerequisites by reader type

Reader Suggested Starting Point
Complete beginner Productivity Toolkit → Intro Programming (Python/CS61A) → Data Structures (CS61B)
CS undergrad filling gaps Jump directly to any topic you're weak in; each course page is self-contained
Career switcher CS Learning Plan → Intro Programming → Systems → Software Engineering
Graduate student Advanced ML, Deep Learning, Deep Generative Models, ML Systems
Experienced dev exploring Specific topics like Compilers, Distributed Systems, Security

Note

Most courses listed are in English with Chinese learning notes. The guide itself is available in both Chinese and English, but the underlying course materials are predominantly English-language university courses.

What each course page contains

Every course entry follows a consistent structure:

  • Course metadata — institution, course code, instructor, semester
  • Course description — what the course covers and why it's recommended
  • Prerequisites — what you should know before starting
  • Course resources — links to lectures, assignments, textbooks, and supplementary materials
  • Community notes — tips, experiences, and advice from learners who completed the course

3. Section Walkthroughs

Productivity Toolkit (必学工具)

The largest individual section with 14 entries, covering the essential tools every CS student needs regardless of specialization. This section is unique because it focuses on practical skills rather than academic courses.

Entries span text editors (Vim, Emacs), version control (Git, GitHub), build systems (GNU Make, CMake), document preparation (LaTeX, thesis writing), containerization (Docker), Windows package management (Scoop), daily workflow tools, information retrieval, and network access tools. The MIT Missing Semester course (编程入门/MIT-Missing-Semester.md) is closely related and covers shell, scripting, and dev environment setup.

Tip

If you're brand new to CS, start with MIT Missing Semester and the Git/GitHub entries before diving into any programming courses. These tools will be assumed knowledge throughout.

Mathematics (数学基础 + 数学进阶)

Split across two sections: Fundamental Mathematics (3 courses) covers calculus, linear algebra, and information theory — all from MIT. Advanced Mathematics (6 courses) moves into discrete math (UCB CS70), probability theory (CS126), mathematics for CS (MIT 6.042J), numerical analysis (MIT 18.330), convex optimization (Stanford EE364A), and information theory with neural networks.

The progression is intentional: calculus and linear algebra first, then the discrete and probabilistic foundations needed for algorithms and machine learning courses.

Programming Introduction (编程入门)

The broadest entry point with 13 courses organized by language: Python (CS61A, CS50P, MIT 6.100L), C (Harvard CS50, Duke Coursera), C++ (AUT1400, CS106L, CS106B/X), Java (MIT 6.092), Rust (CS110L, CS220, CS431), and Functional languages (Cornell CS3110 for OCaml, Haskell MOOC).

Also includes two meta-courses: MIT Missing Semester (shell and dev tools) and Sysadmin DeCal (Linux system administration from UC Berkeley).

Important

The guide recommends starting with UCB CS61A (Python) as the flagship introductory course. It teaches programming concepts through Python, Scheme, and SQL using the SICP philosophy.

Systems Track (计算机系统基础 → 体系结构 → 操作系统)

A natural three-course progression:

  1. Computer Systems — CMU 15-213 (CSAPP) is the definitive systems course, supplemented by Stanford CS110
  2. Computer Architecture — from low-level (Nand2Tetris) through UC Berkeley CS61C to ETHz graduate courses
  3. Operating Systems — MIT 6.S081 (xv6), UCB CS162, plus Chinese university options from NJU and HIT

This is the "systems spine" of the curriculum. The guide positions CSAPP as the gateway course that connects programming knowledge to hardware understanding.

Algorithms & Theory (数据结构与算法)

Five courses spanning the full depth: UCB CS61B (intro data structures), Coursera Algorithms I & II (Sedgewick), MIT 6.006 (intro algorithms), MIT 6.046 (algorithm design and analysis), and UCB CS170 (advanced/intractable problems).

Security (系统安全)

Six courses making this one of the more complete sections: UCB CS161 (intro security), MIT 6.1600 (foundations), MIT 6.858 (systems security), ASU CSE365 and CSE466 (intro and advanced cybersecurity), and SEED Labs (hands-on security experiments).

AI / ML / Deep Learning Pipeline

The guide structures the AI/ML track as a clear progression:

  1. Artificial Intelligence (3 courses) — broad AI intro (CS188, CS50 AI, Neural Networks: Zero to Hero)
  2. Machine Learning (3 courses) — classical ML (Coursera ML, CS229, CS189)
  3. Deep Learning (11 courses) — the largest single topic, covering vision (CS231n), NLP (CS224n), graphs (CS224w), reinforcement learning (CS285), and general DL courses
  4. ML Systems (5 courses) — production ML infrastructure (CMU 10-414, TinyML, MLC)
  5. Deep Generative Models (6 courses including LLM sub-section) — generative AI, diffusion models, and large language model courses
  6. Advanced ML (5 courses) — probabilistic graphical models, ML theory

Note

The Deep Generative Models section includes a dedicated Large Language Models sub-section with three CMU courses (11-868, 11-667, 11-711), reflecting the growing importance of LLMs in the field.

Databases, Networking, Compilers, and Other Specializations

Each of these areas gets a focused section with courses progressing from introductory to advanced:

  • Databases (5 courses): UCB CS186 → CMU 15-445 → implementation courses (CS122, CS346) → special topics (CMU 15-799)
  • Networking (4 courses): UCB CS168, Stanford CS144, and two versions of the Top-Down Approach curriculum
  • Compilers (6 courses): Stanford CS143 plus five Chinese university compiler courses (PKU, NJU, KAIST, USTC, SJTU)
  • Programming Languages (4 courses): Stanford CS242, software analysis from NJU and PKU, Cambridge semantics
  • Computer Graphics (6 courses): GAMES101/202/103 (Chinese), Stanford CS148, CMU 15-462, USTC CG
  • Web Development (4 courses): MIT web dev, Stanford CS142, Full Stack Open, CS571
  • Data Science (1 course): UCB Data100

Supplementary Content

Beyond course pages, the guide includes:

  • Book Recommendations (好书推荐.md) — curated reading list
  • CS Learning Plan (CS学习规划.md) — a suggested course ordering and timeline
  • Postscript (后记.md) — author reflections and community acknowledgments

4. Navigating the Site

The live site at csdiy.wiki is built with MkDocs Material and provides several navigation aids:

Feature How to Use
Search Built-in search supports both Chinese and English queries; use the search bar at the top
Sidebar navigation Expandable topic tree mirrors the structure in this guide
Language toggle Switch between Chinese (简体中文) and English using the language selector
Dark/light mode Toggle via the sun/moon icon in the header
Auto-hiding header The header hides on scroll-down and reappears on scroll-up for more reading space
Open in new tab External links automatically open in new tabs

Tip

The site tracks your scroll position and updates the URL hash — you can share a link to a specific section of any course page by copying the URL from your browser.

5. Community and Contributing

The repository is actively maintained on GitHub at PKUFlyingPig/cs-self-learning. Community contributions are welcome — common contribution types include:

  • Adding new courses — suggest high-quality courses not yet covered
  • Adding learning experiences — share your notes and tips after completing a course
  • Translations — help translate course pages between Chinese and English
  • Bug fixes — correct broken links, typos, or outdated information

Note

The repository uses Giscus for discussion comments on each page, powered by GitHub Discussions. If you find a comment mapped to the wrong page (see #847), report it as a GitHub issue.

Frequently requested additions

Based on open GitHub issues, the community has requested coverage of:

  • Web3 development (#815)
  • Recommendation systems (#791)
  • Automatic control theory (#509)
  • Game design and development (#527)
  • iOS development with SwiftUI (#824)

6. Troubleshooting

Cause: University courses frequently restructure their websites between semesters. Course pages may link to materials that have moved or been taken down.

Solution:

  1. Check if the course has a newer semester version (search the university's course catalog)
  2. Try the Internet Archive Wayback Machine for archived course pages
  3. Open a GitHub issue reporting the broken link

Prevention: The community actively maintains links — checking the GitHub repository for recent commits to a course page often reveals updated URLs.

Problem: Cannot access course materials (login required)

Cause: Some courses (especially on Coursera or edX) gate materials behind enrollment or payment. See #825 and #837.

Solution:

  1. Check if the course offers a free audit option
  2. Look for the professor's personal page — many host materials directly
  3. Search YouTube for the lecture recordings
  4. Check if the course page in the guide lists alternative free sources

Warning

Do not use unofficial mirrors of paid course content. The guide links to legitimate, publicly available resources whenever possible.

Problem: Giscus comments appear under the wrong page

Cause: The Giscus comment integration maps pages to GitHub Discussions by URL. Certain pages (notably the Foreword/前言) can get incorrectly mapped. See #847.

Solution: Report the mapping issue as a GitHub issue so the maintainers can correct the Giscus configuration.

Problem: English translations are incomplete or missing

Cause: The guide is primarily maintained in Chinese. English translations depend on community contributions and may lag behind.

Solution:

  1. Use browser translation tools for untranslated pages
  2. Consider contributing a translation via pull request
  3. The navigation labels are all translated (see the i18n configuration) even when page content is not yet fully translated

Tip

The template.md and template.en.md files in the repository root provide the standard format for new course pages. Use these when contributing new entries to maintain consistency.

7. FAQ

Q: Do I need to follow the courses in the exact order presented?

No. The guide is organized by topic, not by a required sequence. However, the "CS Learning Plan" page (CS学习规划.md) offers a suggested progression if you want a structured path. Some courses do have prerequisites — these are noted on each course page.

Q: Are all courses free?

The vast majority are freely accessible. Some Coursera courses require payment for certificates but offer free audit access to materials. A few courses may require university affiliation for full access to autograders or submission systems, but lectures and readings are almost always free.

Q: Is this guide only for Chinese-speaking learners?

No. The site is fully bilingual (Chinese and English). The course materials themselves are predominantly in English from American universities, making the guide useful worldwide. The Chinese content primarily adds context, learning tips, and community experiences.

Q: How often is the guide updated?

The repository is actively maintained with community contributions. The source commit for this documentation is 3ec3100 (2026-02-24). Check the GitHub repository for the latest updates.

Q: Can I use this guide offline?

You can clone the repository and build the site locally with MkDocs (see the Admin Guide for build instructions). The markdown files are also readable directly in any text editor or on GitHub.

Q: I completed a course and want to share my experience. How?

Open a pull request on GitHub adding your learning notes to the relevant course page. Follow the template format (template.md) for consistency. The community values honest assessments of difficulty, time commitment, and what you learned.