🎓 Path to a free self-taught education in Computer Science!


Contributor guidelines

This project primarily uses GitHub for collaboration, however not all discussions are appropriate for GitHub. Please follow these guidelines:

  1. If you need help with the academic content of a course or are having general technical difficulties, please do not use GitHub for this. The best place to ask these types of questions is on the subreddit.
  2. If you have general problems with the program not specific to any course, such as preferring textbook-style learning over MOOCs, the subreddit is recommended as there people may be able to give you suggested alternatives.
  3. If you have specific and substantive criticisms of the curriculum, i.e. problems related to the progression/content of courses it would be appropriate to open an issue and give us your suggestions.
  4. If you have non-substantive updates to make to the curriculum, such as a course's URL having been moved, spelling/syntax errors, etc., please send a pull request to fix any mistakes that you have found.
  5. If you want to customize the curriculum for yourself, do of course fork this project.
  6. If you want to suggest a new resource, send a pull request adding such resource to the extras section.

Learning Git

To be able to create high-quality pull requests, it is recommended that you learn how to use the Git version control system. One of the best primers on the subject is a free ebook called Ry's Git Tutorial. If you prefer a course-style introduction, try Introduction to Git and GitHub.