opensourceprojects.dev

A broadsheet for software that doesn't ask for your email

A self-taught CS guide built from top-tier open-source courses
GitHub RepoImpressions3

Project Description

View on GitHub

Your Own Computer Science Degree, Built from the World's Best Free Courses

You've probably seen the lists. MIT's missing semester. Stanford's CS 229. Berkeley's operating systems course. They're all incredible, and they're all free. The problem is figuring out which ones to take, in what order, and how to actually finish them without burning out. The sheer volume of excellent open-source computer science materials has created a new problem: curation. That's where the CS Self-Learning guide comes in. It's a structured, opinionated curriculum built entirely from top-tier university courses that have been released for free, and it's designed to take someone from a complete beginner to a well-rounded, competitive programmer in about two to three years.

What It Does

This project is a free, online book (available at csdiy.wiki) that acts as a comprehensive roadmap for self-taught computer science. It was created by a Peking University student who documented their own self-learning journey, and it aggregates a massive collection of open-source courses from schools like MIT, Stanford, UC Berkeley, and Carnegie Mellon. The guide doesn't just list courses—it organizes them into a coherent sequence, covering everything from the foundational math and algorithms to advanced topics like distributed systems, machine learning, and compilers.

The core philosophy is that you can replicate the depth and breadth of a top-tier CS undergraduate education using only free, publicly available resources. The guide maps out a path through dozens of courses, each with links to lecture videos, assignments, and project descriptions. It also includes sections on learning planning, book recommendations, and even a template for community members to contribute new courses. The project is hosted on GitHub under an MIT license, with a website built using MkDocs for easy reading and navigation. It supports both Chinese and English versions, and it has a community contribution model where anyone can submit a pull request to add or improve content.

Why It's Cool

What makes this guide stand out isn't the list of courses—you can find those anywhere. It's the structure and the lived experience behind it.

  • It solves the ordering problem. The hardest part of self-study isn't finding good materials; it's knowing what to learn next. This guide sequences courses in a logical progression, building prerequisites and avoiding the trap of jumping into, say, computer graphics before you've touched linear algebra. It treats self-learning as a curriculum, not a collection.

  • It's opinionated and practical. The author isn't just aggregating links. They're recommending specific courses based on what actually worked, what projects were worth the time, and what gaps existed in their own learning. The guide explicitly aims to produce someone who has written thousands of lines of code across multiple languages (C, C++, Java, JavaScript, Python, Go, Rust, and more) and has exposure to a wide range of subfields. That's a concrete, ambitious goal, and the guide is built around achieving it.

  • It's designed for community maintenance. The repository includes a template for adding new courses, guidelines for Chinese-English formatting, and a process for contributing translations. The star history graph shows sustained growth, and the contributors list includes dozens of people who have helped refine the content. This isn't a static document—it's a living resource that improves over time.

  • It acknowledges the real barriers. The README honestly addresses the friction of self-study: the difficulty of choosing courses, the time wasted on incomplete resources, the challenge of balancing self-learning with school or work. It also includes a feature for building study groups via page comments and community-run chat groups, which tackles the isolation that often kills self-study momentum.

How to Try It

You don't need to install anything. The entire guide is available to read online at csdiy.wiki. If you want to contribute, you can fork the repository on GitHub and submit a pull request.

To get started as a learner, just pick a starting point. The guide has a section called "CS Learning Plan" that breaks down the curriculum into modules. If you're brand new, start with the introductory programming and math courses. If you have some experience, jump into the core systems sequence. Each course page includes links directly to the source materials.

If you want to set up the book locally or contribute a new course, the repository has a template.md file you can follow. You'll also need to add navigation entries in the mkdocs.yml file. For contributors, there are guidelines for maintaining consistent Chinese-English formatting, and all contributions require an English translation as well.

Final Thoughts

This guide is for anyone who has ever felt overwhelmed by the sheer volume of free CS education out there. It's for the self-taught developer who knows they have gaps in their fundamentals, the student who wants to supplement a mediocre university program, or the career changer who needs a structured path. It won't do the work for you—you still have to watch the lectures and grind through the projects—but it removes the friction of figuring out what to do next. The fact that it was built by someone who actually walked this path, and that it continues to be refined by a community of learners, makes it one of the most practical resources for self-taught CS education available today.

Follow @githubprojects for more developer tools and open source projects.

Back to Projects
Project ID: 1f4d6e26-e231-4585-9436-ae0443a7da6bLast updated: July 16, 2026 at 02:43 AM