whatisgithub

What is self-learning-computer-science?

pkuflyingpig/self-learning-computer-science — explained in plain English

Analysis updated 2026-06-26

4,707Audience · developerComplexity · 1/5Setup · easy

In one sentence

A curated self-study guide for learning computer science using free courses from MIT, UC Berkeley, Princeton, and Harvard, covering math, algorithms, systems, and machine learning, created by a Peking University student.

Mindmap

mindmap
  root((self-learning-cs))
    Subject areas
      Math foundations
      Data structures
      Computer systems
      Machine learning
    Course sources
      MIT OpenCourseWare
      UC Berkeley
      Princeton
      Harvard
    What you get
      Course links
      Difficulty ratings
      Homework solutions
    Who it is for
      Self-taught developers
      CS students
      Career switchers
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

What do people build with it?

USE CASE 1

Follow a structured self-study path through computer science fundamentals using entirely free online courses.

USE CASE 2

Find top-rated MIT or Berkeley courses with the author's homework solutions to practice algorithms and data structures.

USE CASE 3

Plan a learning roadmap from programming basics all the way through machine learning without paying for a degree.

How does it compare?

pkuflyingpig/self-learning-computer-science7sageer/sublink-workergooglefonts/noto-emoji
Stars4,7074,7074,707
LanguageJavaScriptPython
Setup difficultyeasyeasyeasy
Complexity1/53/52/5
Audiencedeveloperops devopsdesigner

Figures from each repo's GitHub metadata at analysis time.

How do you get it running?

Difficulty · easy Time to first run · 5min

No code to install, just links to free external courses and the author's homework solutions on GitHub.

So what is it?

This repository is a personal study guide created by a computer science undergraduate student at Peking University in China. Frustrated with standard university coursework, the author turned to free online courses from schools like MIT, UC Berkeley, Princeton, and Harvard, and compiled everything they worked through into this reference. The guide is organized into major subject areas: mathematics (calculus, linear algebra, probability, differential equations, numerical methods), programming basics, data structures and algorithms, electrical engineering fundamentals, computer architecture, machine learning and deep learning, computer systems, and software engineering. Each section contains a table of courses with links to the original course websites, a difficulty rating shown in stars, and in many cases a link to the author's own homework solutions on GitHub. Almost all linked courses are freely available online through MIT OpenCourseWare, UC Berkeley's course listings, or the courses' own public websites. The author also points to a few general resources for discovering high-quality courses, including the MIT OpenCourseWare catalog and a UC Berkeley course dependency map that shows how different classes build on each other. The repository also has a Chinese-language version, linked at the top of the README, which appears to be a more complete and actively maintained edition under a different repository name. The project is intended both as a personal record and as an invitation for others to follow a similar self-directed path. The author notes that struggling with a computer science course is often a sign of poor teaching rather than a personal failing, and that the subject becomes much more approachable with better materials. The full README is longer than what was shown.

Copy-paste prompts

Prompt 1
I want to follow the pkuflyingpig self-learning computer science guide. I know basic Python, what should I study first and in what order?
Prompt 2
Which courses from the self-learning-computer-science guide should I take to build a strong foundation for machine learning?
Prompt 3
How long would it realistically take to complete the full self-learning-computer-science curriculum while working full-time?
Prompt 4
What are the prerequisites for the computer architecture section in pkuflyingpig's self-learning guide, and which courses cover them?

Frequently asked questions

What is self-learning-computer-science?

A curated self-study guide for learning computer science using free courses from MIT, UC Berkeley, Princeton, and Harvard, covering math, algorithms, systems, and machine learning, created by a Peking University student.

How hard is self-learning-computer-science to set up?

Setup difficulty is rated easy, with roughly 5min to a first successful run.

Who is self-learning-computer-science for?

Mainly developer.

Open on GitHub → Ask about another repo

This repo across BitVibe Labs

Verify against the repo before relying on details.