Learning to code from YouTube is nice but I prefer to follow a nicely structured MOOC online along with a textbook (with exercises). This not only allows me to fully grasp the key concepts while focusing on the fundamentals but also to gradually build up from those first principles. Moreover, this kind of approach is vastly important in learning mathematics.

This is **not** a structured curriculum equivalent to a CS degree. These courses are, in my opinion, some of the most well-developed MOOCs that are available/auditable for free online. I have added links to corresponding supplementary books that go with each course. My focus is on **theoretical CS** (data structures, algorithms, and their analysis, computational complexity theory), **mathematics for CS** (discrete math, linear algebra, calculus, differential equations), and **coding** (programming paradigms, data science, ML, full-stack web development, frameworks, and libraries).

** Some resources/books are not free*

CS50 (CS50 on edX) - Prof. David J. Malan.

MITx's Computational Thinking using Python XSeries - edX - Prof. Eric Grimson, Prof. John Guttag.

This XSeries program contains 2 courses on introductory programming and computational thinking:

MIT 6.001 Structure and Interpretation, 1986 - Hal Abelson, Gerald Jay Sussman. (Structure and Interpretation of Computer Programs a.k.a. the Wizard Book)

This is MIT's classic introductory CS and electrical engineering course taught using Scheme that was later replaced by 6.0001 using Python.

CS 61A: Structure and Interpretation of Computer Programs - Prof. John DeNero, UC Berkeley. ( Composing Programs)

This is UC Berkeley's introductory course on programming initially taught using Scheme but updated to use Python since 2011.

- Algorithms Part I, Part II - Kevin Wayne, Robert Sedgewick, Princeton University. (Algorithms, 4th Edition*)
- Algorithms Specialization - Coursera - Tim Roughgarden, Stanford University.
- MIT 6.006 Introduction to Algorithms, Fall 2011 - Erik Demaine, Srini Devadas, Victor Costan.
- MIT 6.046J Design and Analysis of Algorithms, Spring 2015 - Erik Demaine, Srinivas Devadas, Nancy Ann Lynch.
- Advanced Algorithms (COMPSCI 224) - Prof. Jelani Nelson, Harvard University.

18.01x Single Variable Calculus XSeries - edX - Prof. David Jerison.

This XSeries program contains 3 courses:

- Calculus 1A: Differentiation
- Calculus 1B: Integration
- Calculus 1C: Coordinate Systems & Infinite Series

Accompany these courses with Prof. Gilbert Strang's Calculus book. I really liked Silvanus P. Thompson and Martin Gardner's Calculus Made Easy when I first read it in high school.

MIT 18.01 Single Variable Calculus, 2006 - Prof. David Jerison. (MIT 18.01SC: Homework Help for Single Variable Calculus, Fall 2010)

MIT 18.02 Multivariable Calculus, 2007 - Prof. Denis Auroux. (MIT 18.02SC: Homework Help for Multivariable Calculus, Fall 2010)

Khan Academy Multivariable Calculus - Grant Sanderson, Sal Khan. (YouTube playlist)

- MIT 18.06SC Linear Algebra, Fall 2011 - Prof. Gilbert Strang. (Introduction to Linear Algebra*)

- MIT 6.042J Mathematics for Computer Science, Fall 2010 - Prof. Tom Leighton, Marten can Dijk. Lecture notes, Spring 2018

18.03x Differential Equations XSeries - edX - Prof. David Jerison, Prof. Arthur Mattuck, Prof. Haynes Miller.

This XSeries program contains 5 courses:

- Machine Learning - Coursera - Andrew Ng, Stanford University.

- 8.01 Physics I: Classical Mechanics, Fall 1999 - Prof. Walter Lewin.
- 8.02 Physics II: Electricity and Magnetism, Spring 2002 - Prof. Walter Lewin.
- 8.03 Physics III: Vibrations and Waves, Fall 2004 - Prof. Walter Lewin.

- MIT OpenCourseware (YouTube)
- edX
- Coursera
- freeCodeCamp (recommended) / Odin Project

The following are not MOOCs but you can find some well-structured content on frameworks, libraries, and math that can be used as supplementary resources with the above courses:

- YouTube:
- Miscellaneous:
- OpenStax - Rice University's initiative to provide high-quality, peer-reviewed, openly licensed college textbooks for free online.
- teachyourselfcs.com
- OSSU