An open API service indexing awesome lists of open source software.

https://github.com/maxdemaio/my_open_source_cs

My free open source curriculum to learn computer science :books::octocat:
https://github.com/maxdemaio/my_open_source_cs

computer-science open-source

Last synced: 4 months ago
JSON representation

My free open source curriculum to learn computer science :books::octocat:

Awesome Lists containing this project

README

          

# my_open_source_cs

My free open source curriculum to learn computer science. Although it's not the path of least resistance, learning by doing is super effective: write code, make mistakes, learn from them, and most importantly enjoy the process.

> Not having heard something is not as good as having heard it; having
heard it is not as good as having seen it; having seen it is not as good as knowing it; knowing
it is not as good as putting it into practice.
>
> Xunzi

This is a curated list of free courses from reputable universities that satisfy the same requirements as an undergraduate computer science degree, minus general education. Helpful resources have also been added for supplementary learning. Please feel free to star/fork this repository and personalize it to your own learning path.

---

## Computer Science Basics / Programming

| Courses | School | Duration | Effort | Frequency | Prerequisites | Status |
| :--------------------------------------------------------------------------------------------------------- | :-----: | :------: | :--------------: | :--------: | :-----------------------: | :----: |
| [Intro to Computer Science](https://www.edx.org/course/cs50s-introduction-computer-science-harvardx-cs50x) | Harvard | 10 weeks | 10-20 hours/week | self-paced | none | ✔️ |
| [Web Programming with Python and JavaScript](https://cs50.harvard.edu/web/2020/) | Harvard | 12 weeks | 10-20 hours/week | self-paced | Intro to Computer Science | ✔️ |

## Math

| Courses | School | Duration | Effort | Frequency | Prerequisites | Status |
| :----------------------------------------------------------------------------------- | :-------: | :------: | :-------------: | :--------: | :-----------: | :----: |
| Calculus 1 | URI | 12 weeks | 6-10 hours/week | / | Pre-calculus | ✔️ |
| [Linear Algebra](https://www.edx.org/course/linear-algebra-foundations-to-frontiers) | UT Austin | 15 weeks | 6-10 hours/week | self-paced | Pre-calculus |
| Pre-calculus | URI | 12 weeks | 6-10 hours/week | / | Algebra | ✔️ |
| Introduction to Probability and Statistics | URI | 12 weeks | 6-10 hours/week | / | Algebra | ✔️ |
| Algebra | URI | 12 weeks | 6-10 hours/week | / | none | ✔️ |

## Systems

| Courses | School | Duration | Effort | Frequency | Prerequisites | Status |
| :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------: | :------: | :--------------: | :-----------: | :-------------------------------------------------------------------: | :----: |
| [Build a Modern Computer from First Principles: From Nand to Tetris](https://click.linksynergy.com/deeplink?id=PtFMiHYfEVk&mid=40328&murl=https%3A%2F%2Fwww.coursera.org%2Flearn%2Fbuild-a-computer) | Hebrew University of Jerusalem | 6 weeks | 5 hours/week | twice a month | basic programming knowledge | ✔️ |
| [Build a Modern Computer from First Principles: From Nand to Tetris II](https://click.linksynergy.com/deeplink?id=PtFMiHYfEVk&mid=40328&murl=https%3A%2F%2Fwww.coursera.org%2Flearn%2Fnand2tetris2) | Hebrew University of Jerusalem | 6 weeks | 10-15 hours/week | once a month | Build a Modern Computer from First Principles: From Nand to Tetris | ✔️ |
| [Operating Systems: Three Easy Pieces](https://pages.cs.wisc.edu/~remzi/OSTEP/) | University of Wisconsin-Madison/UCLA | self-paced | 5-8 hours/week | self-paced | Build a Modern Computer from First Principles: From Nand to Tetris II |

## Theory

| Courses | School | Duration | Effort | Frequency | Prerequisites | Status |
| :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :-------: | :------: | :-------------: | :----------: | :------------------------------------------------: | :----: |
| [Computer Science: Algorithms, Theory, and Machines](https://click.linksynergy.com/deeplink?id=PtFMiHYfEVk&mid=40328&murl=https%3A%2F%2Fwww.coursera.org%2Flearn%2Fcs-algorithms-theory-machines) | Princeton | 10 weeks | 2-5 hours/week | once a month | Calculus 1A (all), basic programming |
| [Algorithms, Part I](https://click.linksynergy.com/deeplink?id=PtFMiHYfEVk&mid=40328&murl=https%3A%2F%2Fwww.coursera.org%2Flearn%2Falgorithms-part1) | Princeton | 6 weeks | 6-12 hours/week | once a month | Computer Science: Algorithms, Theory, and Machines |
| [Algorithms, Part II](https://click.linksynergy.com/deeplink?id=PtFMiHYfEVk&mid=40328&murl=https%3A%2F%2Fwww.coursera.org%2Flearn%2Falgorithms-part2) | Princeton | 6 weeks | 6-12 hours/week | once a month | Algorithms, Part I |

## Applications

| Courses | School | Duration | Effort | Frequency | Prerequisites | Status |
| :------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------: | :------: | :------------: | :-----------: | :------------------------------------------------------------------------------: | :----: |
| [Machine Learning](https://click.linksynergy.com/deeplink?id=PtFMiHYfEVk&mid=40328&murl=https%3A%2F%2Fwww.coursera.org%2Flearn%2Fmachine-learning) | Stanford | 11 weeks | 5-7 hours/week | twice a month | Linear Algebra - Foundations to Frontiers |
| [Database Management Essentials](https://www.coursera.org/learn/database-management) | University of Colorado | 7 weeks | 4-6 hours/week | twice a month | basic programming & CS knowledge | ✔️ |
| [Cryptography I ](https://click.linksynergy.com/deeplink?id=PtFMiHYfEVk&mid=40328&murl=https%3A%2F%2Fwww.coursera.org%2Flearn%2Fcrypto) | Stanford | 7 weeks | 5 hours/week | once a month | Linear Algebra - Foundations to Frontiers & Introduction to Probability and Data |

## Unix

| Courses | School | Duration | Effort | Frequency | Prerequisites | Status |
| :--------------------------------------------------------------------------------------------------------------------------------------- | :----------------------: | :------: | :----------: | :----------: | :-----------: | :----: |
| [Linux Command Line Basics](https://imp.i115008.net/linux-command-line-basics) | Udacity | 1 week | 5 hours/week | self-paced | none | ✔️ |
| [The Unix Workbench](https://click.linksynergy.com/deeplink?id=PtFMiHYfEVk&mid=40328&murl=https%3A%2F%2Fwww.coursera.org%2Flearn%2Funix) | Johns Hopkins University | 4 weeks | 4 hours/week | once a month | none | ✔️ |

---

## Supplementary Materials

Before approaching any open source curriculum, please give these a watch/read: [Self Taught Programmers: Advice, Challenges, and Why We Need Them](https://www.youtube.com/watch?v=j38_oXALe4U) (mayuko) and [How to Break into Tech](https://haseebq.com/how-to-break-into-tech-job-hunting-and-interviews/).

- YouTube channels: [Corey Schafer](https://www.youtube.com/user/schafer5), [Tech With Tim](https://www.youtube.com/channel/UC4JX40jDee_tINbkjycV4Sg), [Gaurav Sen](https://www.youtube.com/channel/UCRPMAqdtSgd0Ipeef7iFsKw), [The Net Ninja](https://www.youtube.com/channel/UCW5YeuERMmlnqo4oq8vwUpg), [Pretty Printed](https://www.youtube.com/channel/UC-QDfvrRIDB6F0bIO4I4HkQ), [Amigoscode](https://www.youtube.com/c/amigoscode), [Telusko](https://www.youtube.com/channel/UC59K-uG2A5ogwIrHw4bmlEg), and [Web Dev Simplified](https://www.youtube.com/channel/UCFbNIlppjAuEX4znoulh0Cw).

- Podcasts: [The freeCodeCamp Podcast](https://open.spotify.com/show/7CpuEnbCLIXwI6LEcbBOYP?si=d31984a3c47a47be), [Ladybug Podcast](https://open.spotify.com/show/1KBO1tSnm0XRlEILmqt7Em?si=1c7dc805390a4d52), [Front End Happy Hour](https://open.spotify.com/show/0Giuw6eNbTzP9CDZODDrA2?si=7d80fe5b067b4179), [Indie Hackers](https://open.spotify.com/show/4ex8hmrHCPvPohKJb3wsuC?si=1ef45f88964846be), [The StackOverflow Podcast](https://open.spotify.com/show/0e5eoM6w7eW9Wu7wMA04Tr?si=c2abe8cf700a4739), and [CodeNewbie](https://www.codenewbie.org/podcast).

- Networking: [Twitter](https://twitter.com/) and [Meetup.com](https://www.meetup.com/).

- Jobs: [LinkedIn](https://www.linkedin.com/), various job search websites, referrals from friends, and company websites.

- Problem solving websites: I mainly use [LeetCode](https://leetcode.com/). All my problem set solutions are located in my [practice problem repository](https://github.com/maxdemaio/leetcode). Highly recommend [NeetCode](https://neetcode.io/) which curates and categorizes popular LeetCode problems.