Awesome Learning
I love to explore the vast field of Computer Science. I’ve dabbled with a variety of stuff over the past few years. While doing so, I’ve had to invest considerable amount of time in digging up resources from the corners of the Web. Also, people often ask me for suggestions regarding tutorials and courses about something they wish to learn.
Thus, I decided to compile this list with the hope that it would be useful to people and to also help me keep track of some great stuff I’ve found on the Web.
Please keep in mind that I’ve not consumed all the material mentioned on this list. If I’ve mentioned 4 different resources for a topic, it means that I’ve skimmed over all of them, but may have decided to go with one of those, personally. However, I’ve added all of them since everyone has a different taste. The lists are mostly in my order of preference.
Disclaimer: Some of the links to books on Amazon are affiliate links. If you use them while purchasing, they grant me a small percentage of the cost of the book. Please note that the cost remains the same for you; Amazon simply gives me a small cut out of it. If you decide to buy a book, please use my link as it helps support the blog. Thanks!
Similar Lists
- Daniel Stefanovic on GitHub: Build Your Own X
- freeCodeCamp: 400+ Online Courses With Real College Credit That You Can Access For Free
Table of Contents
- C
- C++
- Compilers
- Data Science
- Docker
- Game Development
- Go
- Git and GitHub
- Interpreters & Bytecode Virtual Machines
- Java
- JavaScript
- Machine Learning
- MongoDB
- Node.js
- OAuth 2.0 Authorization Framework
- OpenGL
- Operating Systems
- Python
- React
- Redis
- REST
- Web Development
C
Beginner
Advanced
- Socket Programming with C by Eduonix
- Crafting Interpreters by Robert Nystrom
- Stack-based Virtual Machine by Philip Bohun
- Corgi64: Register-based Virtual Machine by Philip Bohun
Books
Documentation
C++
Beginner
Advanced/Modern
- C++ 11 by Bo Qian
- Advanced C++ by Derek Banas
- Modern C++ by TheChernoProject
- Concurrency in C++ by Bo Qian
- C++ 11 Smart Pointers by CodesBay
Books
Documentation
Compilers
- Georgia Tech’s Compilers: Theory and Practice
- Stanford’s Compilers
- Bisqwit’s Create a Compiler Series
- Write an Compiler in Go by Thorsten Ball
Data Science
Docker
- A Beginner-Friendly Introduction to Containers, VMs and Docker by Preethi Kasireddy on freeCodeCamp
- Learn Docker in 12 Minutes by Jake Wright
- Exploring Docker by Traversy Media
- Docker Official Documentation
- Building a container from scratch by Liz Rice
Game Development
C++
OpenGL/DirectX
SFML/SDL
Unity 3D
- Brackeys
- The Complete Unity Indie Game Developer Course
- Unity: Beginner to Advanced - Complete Course
Java (LWJGL)
Miscellaneous
- CS50’s Introduction to Game Development by Harvard University
- Matthew Hopson
- OneLoneCoder/javidx9
- Harold Serrano
Go
Beginner
- A Tour of Go
- Introduction to Go by Michael Van Sickle
- Go Crash Course by Traversy Media
- Write a Web App in Go by Davy Wybiral
Advanced
- Gophercises by Jon Calhoun
- Write an Interpreter in Go by Thorsten Ball
- Write an Compiler in Go by Thorsten Ball
- Gaming in Go by Velovix
- Games with Go by Jack Mott
- Flappy Bird in Go by JustForFunc
Books
- An Introduction to Programming in Go by Caleb Doxsey
- The Go Programming Language by Alan A. A. Donovan and Brian Kernighan
Documentation
Git and GitHub
- Git Tutorial by Corey Schafer
- Git and GitHub Crash Course by Traversy Media
- Interactive Git Tutorial
- Interactive Tutorial on Git Branching
Interpreters & Bytecode Virtual Machines
- Crafting Interpreters by Robert Nystrom (cannot recommend this gem enough)
- Write an Interpreter in Go by Thorsten Ball
- So You Want to Build a Language VM by Fletcher Haynes
- Simple Interpreter by Ruslan Spivak
- Stack-based Virtual Machine by Philip Bohun
- Corgi64: Register-based Virtual Machine by Philip Bohun
Java
Beginner
Advanced
Books
JavaScript
Beginner Tutorials & Crash Courses
- Introduction to JavaScript for Developers by Java Brains
- Traversy Media
- Programming with Mosh
- freeCodeCamp on YouTube
- Introduction to JavaScript at Scrimba
- ES6 Tutorial at Scrimba
Advanced and Full Courses
Machine Learning
- Stanford’s Machine Learning by Andrew Ng
- University of Washington’s Machine Learning Specialization
- MITx’s Machine Learning with Python: From Linear Models to Deep Learning
- StatQuest’s Machine Learning Series
MongoDB
Node.js
Tutorials & Crash Courses
Full Courses
Project Tutorials
Check out the following channels on YouTube which build a lot of stuff with Node.js: - Traversy Media - The Net Ninja - Academind - freeCodeCamp
OAuth 2.0 Authorization Framework
- OAuth 2.0: An Overview
- OAuth 2.0 by Nate Barbettini
- An Introduction to OAuth 2 by the DigitalOcean Community
OpenGL
Video Tutorials with C++
Video Tutorials with Java
Books
Documentation
Operating Systems
- The Little Book About OS Development
- Georgia Tech’s Introduction to Operating Systems
- Georgia Tech’s Advanced Operating Systems
- Write an OS from scratch
- Write your own Operating System
- Writing an Operating System
Python
All Things Python
Tutorials
Web Development
- Django Tutorial by The Net Ninja
- Tango with Django
- Django Tutorial by Max Goodridge
- Flask Tutorial by Traversy Media
React
Tutorials and Crash Courses
Full Courses
Redis
- Crash Course by Traversy Media
- Try Redis
- Official Documentation
- Writing System Software: A series about Redis internals by its creator, Salvatore Sanfilippo
- Redis Source Code on GitHub
REST
- Building REST APIs with JAX-RS by Java Brains
- Building a RESTful API with Node.js by Academind
- What is a REST API? by Telusko
- REST and HTTP Explained by Traversy Media