The 6.824 is a great course on distributed systems from MIT. Alongside the lectures, you also have a chance to implement a basic distributed system using Go by going through 4 labs. You are going to learn and implement MapReduce, Raft, Sharding and a lot of other stuff.
Online Content:
How to approach it:
- Watch the lecture videos with the handouts from the course
- Read the papers
- Taking notes
- Implement the labs(repeating the step 1 and 2)
There are already official notes for each lecture on the course website.
I just try to note something I thought was interesting while I am watching the videos.
- Lecture 1: Introduction
- Lecture 2: RPC and Threads
- Lecture 3: GFS
- Lecture 4: Primary-Backup Replication
- Lecture 5: Go, Threads and Raft
- Lecture 6-7: Fault Tolerance Raft ... :construction:
There are 4 labs in this course.
They are supposed to be written in Go language. Have a quick introduction here on the official website.
You can also refer to this cheatsheet of Go for a quick recap of the basics.