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

https://github.com/ejsdotsh/cs-autodidact

documenting my self-education journey in Computer Science
https://github.com/ejsdotsh/cs-autodidact

computer-science computer-science-education learning-in-public self-learning

Last synced: about 10 hours ago
JSON representation

documenting my self-education journey in Computer Science

Awesome Lists containing this project

README

          

# Computer Science Autodidact

documenting my self-education journey in Computer Science

`autodidact`, from oxfordgoogle:

```text
au·to·di·dact
/ˌôdəˈdīˌdak(t),ˌädəˈdīˌdak(t)/

noun
noun: autodidact; plural noun: autodidacts; noun: auto-didact; plural noun: auto-didacts

a self-taught person.

Origin
mid 16th century (as autodidacton ): via Latin from Greek autodidaktos ‘self-taught’,
from autos ‘self’ + didaskein ‘teach’.
```

Goal:

- a [Master of Science in Computer Science](https://www.coursera.org/degrees/ms-computer-science-boulder) from the
University of Colorado at Boulder

full list of required courses:

- [MS CS academics](https://www.coursera.org/degrees/ms-computer-science-boulder/academics)

## Learning path

### Maths refreshers

- [Algebra: Elementary to Advanced Specialization](https://www.coursera.org/specializations/algebra-elementary-to-advanced)
- [Precalculus through Data and Modelling Specialization](https://www.coursera.org/specializations/precalculus-data-modelling)
- [Integral Calculus through Data and Modelling Specialization](https://www.coursera.org/specializations/integral-calculus-data-modeling)
- [Intro to Discrete Mathematics for Computer Science Specialization](https://www.coursera.org/specializations/discrete-mathematics)
- [Mathematics for Computer Science](https://courses.csail.mit.edu/6.042/spring17/mcs.pdf)

### Fundamentals of Computing/Programming Languages

Programming languages:

- Guile Scheme
- Java
- Python3

Coursework/books:

- Rice University's [Fundamentals of Computing Specialization](https://www.coursera.org/specializations/computer-fundamentals)
- Princeton's [Programming With A Purpose, in Java](https://www.coursera.org/learn/cs-programming-java)
- [Programming With A Purpose, in Python](https://introcs.cs.princeton.edu/python/home/)
- MIT's [Structure and Interpretation of Computer Programs](https://web.mit.edu/6.001/6.037/sicp.pdf)
- [Composing Programs](https://www.composingprograms.com/)

### Algorithms

Programming languages:

- Java
- Python3

Coursework/books:

- Princeton's [Algorithms, Part 1](https://www.coursera.org/learn/algorithms-part1)
- Princeton's [Algorithms, Part 2](https://www.coursera.org/learn/algorithms-part2)
- MIT's [Introduction to Algorithms](http://mitpress.mit.edu/9780262046305/introduction-to-algorithms/)

### Operating Systems/Systems Programming

Programming languages:

- C
- Go
- Java
- Rust

Coursework/books:

- [Writing a Compiler in Go](https://compilerbook.com/)
- Robert Nystrom's [Crafting Interpreters](https://craftinginterpreters.com/)
- [Computer Systems: A Programmer's Perspective](http://csapp.cs.cmu.edu/3e/home.html)
- Codio's [Introduction to Operating Systems Specialization](https://www.coursera.org/specializations/codio-introduction-operating-systems)

## references and inspiration

- [An Autodidact's Degree in Computer Science](https://pdb64.medium.com/an-autodiadacts-degree-in-computer-science-3afe7df465b0)
- [Teach Yourself Computer Science](https://teachyourselfcs.com/)
- [What every computer science major should know](https://matt.might.net/articles/what-cs-majors-should-know/)
- [A Self-learning, Modern Computer Science Curriculum](https://functionalcs.github.io/curriculum/)
- [OSSU computer science curriculum](https://github.com/ossu/computer-science)
- [10 Books for the Self-Taught Computer Scientist](https://josephchancey.medium.com/10-books-for-the-self-taught-computer-scientist-1cd602d503a9)