├── .github └── FUNDING.yml ├── github-logo-octocat-1.jpg ├── LICENSE └── README.md /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: maxdemaio 2 | -------------------------------------------------------------------------------- /github-logo-octocat-1.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/maxdemaio/my_open_source_cs/HEAD/github-logo-octocat-1.jpg -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2020 Max DeMaio 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # my_open_source_cs 2 | 3 | 4 | 5 | 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. 6 | 7 | > Not having heard something is not as good as having heard it; having 8 | heard it is not as good as having seen it; having seen it is not as good as knowing it; knowing 9 | it is not as good as putting it into practice. 10 | > 11 | > Xunzi 12 | 13 | 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. 14 | 15 | --- 16 | 17 | ## Computer Science Basics / Programming 18 | 19 | | Courses | School | Duration | Effort | Frequency | Prerequisites | Status | 20 | | :--------------------------------------------------------------------------------------------------------- | :-----: | :------: | :--------------: | :--------: | :-----------------------: | :----: | 21 | | [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 | ✔️ | 22 | | [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 | ✔️ | 23 | 24 | ## Math 25 | 26 | | Courses | School | Duration | Effort | Frequency | Prerequisites | Status | 27 | | :----------------------------------------------------------------------------------- | :-------: | :------: | :-------------: | :--------: | :-----------: | :----: | 28 | | Calculus 1 | URI | 12 weeks | 6-10 hours/week | / | Pre-calculus | ✔️ | 29 | | [Linear Algebra](https://www.edx.org/course/linear-algebra-foundations-to-frontiers) | UT Austin | 15 weeks | 6-10 hours/week | self-paced | Pre-calculus | 30 | | Pre-calculus | URI | 12 weeks | 6-10 hours/week | / | Algebra | ✔️ | 31 | | Introduction to Probability and Statistics | URI | 12 weeks | 6-10 hours/week | / | Algebra | ✔️ | 32 | | Algebra | URI | 12 weeks | 6-10 hours/week | / | none | ✔️ | 33 | 34 | ## Systems 35 | 36 | | Courses | School | Duration | Effort | Frequency | Prerequisites | Status | 37 | | :--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | :----------------------------: | :------: | :--------------: | :-----------: | :-------------------------------------------------------------------: | :----: | 38 | | [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 | ✔️ | 39 | | [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 | ✔️ | 40 | | [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 | 41 | 42 | ## Theory 43 | 44 | | Courses | School | Duration | Effort | Frequency | Prerequisites | Status | 45 | | :------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | :-------: | :------: | :-------------: | :----------: | :------------------------------------------------: | :----: | 46 | | [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 | 47 | | [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 | 48 | | [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 | 49 | 50 | ## Applications 51 | 52 | | Courses | School | Duration | Effort | Frequency | Prerequisites | Status | 53 | | :------------------------------------------------------------------------------------------------------------------------------------------------- | :--------------------: | :------: | :------------: | :-----------: | :------------------------------------------------------------------------------: | :----: | 54 | | [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 | 55 | | [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 | ✔️ | 56 | | [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 | 57 | 58 | ## Unix 59 | 60 | | Courses | School | Duration | Effort | Frequency | Prerequisites | Status | 61 | | :--------------------------------------------------------------------------------------------------------------------------------------- | :----------------------: | :------: | :----------: | :----------: | :-----------: | :----: | 62 | | [Linux Command Line Basics](https://imp.i115008.net/linux-command-line-basics) | Udacity | 1 week | 5 hours/week | self-paced | none | ✔️ | 63 | | [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 | ✔️ | 64 | 65 | --- 66 | 67 | ## Supplementary Materials 68 | 69 | 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/). 70 | 71 | - 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). 72 | 73 | - 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). 74 | 75 | - Networking: [Twitter](https://twitter.com/) and [Meetup.com](https://www.meetup.com/). 76 | 77 | - Jobs: [LinkedIn](https://www.linkedin.com/), various job search websites, referrals from friends, and company websites. 78 | 79 | - 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. 80 | --------------------------------------------------------------------------------