RESOURCE LIST
This is a list of resources - books, MOOCs, youtube videos, etc that I have personally gone through(atleast some of it) and feel could be helpful to a person. These also include paid courses/resources. The resources are not listed in any specific order.
Do note, this won't make you a computer scientist or an engineer and is instead meant to be complementary to your formal education.
I have heard a lot of people say that one should familiarise themselves with Linux based operating systems. I strongly disagree. You might actually be better off with a Macbook (I would have bought the Macbook Pro if it had an Nvidia GPU).You are also perfectly okay using Windows - it is just harder to get things working there.
- Introductory
- Programming Languages
- Algorithms
- Machine Learning
- Theoretical Computer Science
- Linux Kernel Development
- Miscellaneous
Introduction to Computer Science - CS50 (edX)
University of Washington - Programming Languages, Part A (Coursera)
What is functional programming? - Anouk Ruhaak โ Get started with Functional Programming | otsconf 2015
Understanding the Python AST - Emily Morhouse - The AST and Me | PyCon 2018
Advanced Python concepts - Henry Schreiner's Course - Level Up Your Python
University of Washington - Programming Languages, Part A (Coursera)
University of Washington - Programming Languages, Part B (Coursera)
Programming Languages: Application and Interpretation
Writing an interpreter in Python - Alex Gaynor - So you want to write an interpreter? | PyCon 2013
Crafting Interpreters
Types and Programming Languages - Benjamin C. Pierce
Princeton University - Algorithms, Part I (Coursera)
Stanford University - Machine Learning (Coursera). Assignments using Python.
P vs. NP - YouTube
Matthew Garrett - Writing an ACPI driver - an introduction
Corentin Chary - Writing a WMI driver - an introduction