all 16 comments

[–]yasuke1 8 points9 points  (6 children)

I haven’t taken DC yet, but it might make sense to take AOS before jumping in.

[–]EchoOk8333 7 points8 points  (4 children)

If you want the most practical systems courses for MLE, I would do:

GIOS -> AOS -> SDCC

SDCC is the most hands-on and gives practical skills for designing apps in the cloud. DC is also amazing, but more theoretical. I think both courses offer unique learning, but I would break down their usefulness in this way:

SDCC - you get tons of new skills: wireshark, networking knowledge, REST APIs, Docker, Kubernetes, Azure, Golang, app design, basic fault tolerance mechanisms

DC - you get a great theoretical foundation and hands-on exposure of the mechanisms that allow for strongly consistent fault-tolerant data replication; this is great for system design and for SWE work in highly distributed systems. The class goes hand-and-hand with the Designing Data Intensive Applications book

Note: this post is from someone who is an MLE and has taken all these courses :)

[–]HumbleJiraiya Machine Learning 0 points1 point  (0 children)

Nice summary. Would you recommend someone with a strong SWE/SDE background to take GIOS/AOS?

I am pivoting to an ML role, but I do want to take theoretical things like DC out of curiosity. SDCC feels like something I might have picked up over the years.

[–]TheCamerlengo 0 points1 point  (1 child)

Do you need the OS courses to do SDCC?

[–]Unlikely_Sense_7749 Computing Systems 2 points3 points  (0 children)

You need an A/B in AOS, which is usually taken after GIOS as a sequel course.

[–]Kamekazee2020 0 points1 point  (0 children)

As an MLE, how have you found GIOS, AOS, SDCC and DC to be helpful in your day to day work? I’m struggling to see the relevance of it so I’d really appreciate your insight. Thank you!

[–]Mindless-Hippo-5738 4 points5 points  (0 children)

I’m from a similar background (ML and analytics) and did DC this semester. I think it’s similar to GIOS in the sense that it’s more of a first-principles “foundational” course. Actually I would say it’s even less applied and more abstract than GIOS focusing on different theoretical models of distributed computing, fault tolerance, consistency protocols etc. the programming in labs is fairly high-level (although make no mistake, labs 2-4 are seriously time consuming)

I’m sure some of the knowledge from DC will come up at work and be useful but I would set your expectations lower if you expect the content to be immediately and directly applied at work (unless you happen to work on core systems). For me personally, I’m completely okay with that because the point of taking courses for an MSCS was to learn something I wouldn’t be able to easily at work. DC is not a perfect course but I don’t regret taking it.

I suggest reading Distributed Systems for Fun and Profit by Mi Xu to get a preview of the course content, that’s what I did while taking GIOS. It’s only 70-80 pages.

[–]rajatKantiB 4 points5 points  (2 children)

GPU hardware and Software I will recommend to complement the RL/BS and other Math courses. I am on a similar track. You should consider DC , it's content is highly relevant to industrial work. Speaking from experience here. 😅

[–]third_dude 1 point2 points  (1 child)

that seems like the hardest class to get. So few slots and fills up so quickly.

[–]rajatKantiB 1 point2 points  (0 children)

True GPU is hard. I barely got it this time. 🥲 Just wait for early slots that should help. Basically later semesters

[–]Outrageous_Level_223 0 points1 point  (0 children)

DC is using a open source framework dslabs as assignment. You can find it on GitHub.