Learning Resources
A comprehensive list of learning resources for Computer Science. By no means is this list exhaustive. If you wish to contribute to this repository, please consider starting a PR. If you’re new to GitHub, please refer this.
Similar Lists
- Daniel Stefanovic on GitHub: Build Your Own X
- freeCodeCamp: 400+ Online Courses With Real College Credit That You Can Access For Free
Beginners (with no prior CS background)
- HarvardX: CS50 Introduction to Computer Science
- Introduction to Python - Datacamp
- CS50’s Web Programming with Python and JavaScript : Havard
Alexa Tutorials
- Learn Alexa Skills by Codeacademy
- Tutorial by Amazon
- Building Alexa Skills from Scratch
- Alexa Skills Development
Android Development
Flutter
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
- IBM Data Science Professional Certificate
- HarvardX’s Data Science Professional Certificate
- ML COURSE.AI
Deep Learning
- deeplearning.ai
- Neural Networks and Deep Learning Book
- Deep Learning by Kaggle
- Top Deep Learning GitHub repositories
- Python Data Science Handbook
Trending Libraries
Docker
- Docker Official Documentation
- Docker YouTube Tutorials
- Docker by Udemy
- A Beginner-Friendly Introduction to Containers, VMs and Docker by Preethi Kasireddy on freeCodeCamp
- Learn Docker in 12 Minutes by Jake Wright
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
Git and GitHub
- How to use Git and GitHub by Udacity
- Version Control with Git by Udacity
- Git and GitHub from Scratch
- Pro Git Book
- Git by Progate
- Interactive Git Tutorial
- Interactive Tutorial on Git Branching
Go
Beginner
- A Tour of Go
- Introduction to Go by Michael Van Sickle
- Go Crash Course by Traversy Media
- Concurrency in Golang: A Simple, Practical Example (shameless self-promotion by RohitAwate)
- 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
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
Java Frameworks (Spring / Hibernate / Spark)
- Udemy
- Spring-Telusko
- Baeldung
- Integrating Hibernate and JPA with Spring Boot
- Java Brains Playlists(YouTube)
- SpringBoot: Amigoscode + freeCodeCamp
- Spark - A micro framework for creating simple Java web applications
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
You should start as per this road-map: Python, Mathematics, ML Basics, advanced ML and Deep Learning.
Math for ML
Machine Learning courses
- Stanford’s Machine Learning by Andrew Ng
- University of Washington’s Machine Learning Specialization
- fast.ai
- MITx’s Machine Learning with Python: From Linear Models to Deep Learning
- StatQuest’s Machine Learning Series
- Machine Learning Nanodegree Program by Udacity
- Reinforcement Learning by Udacity
- Machine Learning with Python by Sentdex
- Machine Learning Crash Course by Google
- Kaggle - Highly recommended. Start playing around Titanic problem and strengthen your ML basics.
- KDnuggets
- Machine Learning Recipes with Josh Gordon
Books
MongoDB
- MongoDB Full Tutorial by Edureka
- MongoDB Tutorial by The Net Ninja
- MongoDB Crash Course by Traversy Media
Natural Language Processing
- NLP Fundamentals in Python by DataCamp
- NLP by Coursera
- Natural Language Processing by Udacity
- A Code First Introduction to NLP by fast.ai
- Friendly Introduction to Natural Language Processing (shameless self-promotion by Jaydeep Borkar)
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:
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
Ruby
Web Development
Feel free to reach out to anyone of us mentioned below if you need any help, or wish to discuss anything, or perhaps just a random chat. Flashing conversations are something even we like. Yes, we do reply to emails.
- Jaydeep Borkar (jaijborkar@gmail.com)
- Rohit Awate (rohitawate121@gmail.com)