Class Central is learner-supported. When you buy through links on our site, we may earn an affiliate commission.

freeCodeCamp

System Design for Beginners Course

via freeCodeCamp

Overview

Dive into a comprehensive course on system design fundamentals for software developers and engineers. Explore essential concepts like requirement selection, API design, database design, network protocols, fault tolerance, and design trade-offs. Learn how to build large-scale distributed systems capable of handling millions of concurrent users. Examine a live streaming system design case study, covering high-level architecture and low-level implementation details. Practice creating UML diagrams, designing video players, and coding server components. Gain insights into technologies like WebRTC, MPEG DASH, HLS, and content delivery networks. Access additional resources for further learning in distributed systems and system design.

Syllabus

⌨️ What is System Design
⌨️ Design Patterns
⌨️ Live Streaming System Design
⌨️ Fault Tolerance
⌨️ Extensibility
⌨️ Testing
⌨️ Summarizing the requirements
⌨️ Core requirement - Streaming video
⌨️ Diagramming the approaches
⌨️ API Design
⌨️ Database Design
⌨️ Network Protocols
⌨️ Choosing a Datastore
⌨️ Uploading Raw Video Footage
⌨️ Map Reduce for Video Transformation
⌨️ WebRTC vs. MPEG DASH vs. HLS
⌨️ Content Delivery Networks
⌨️ High-Level Summary
⌨️ Introduction to Low-Level Design
⌨️ Video Player Design
⌨️ Engineering requirements
⌨️ Use case UML diagram
⌨️ Class UML Diagram
⌨️ Sequence UML Diagram
⌨️ Coding the Server
⌨️ Resources for System Design

Taught by

freeCodeCamp.org

Reviews

Start your review of System Design for Beginners Course

Never Stop Learning.

Get personalized course recommendations, track subjects and courses with reminders, and more.

Someone learning on their laptop while sitting on the floor.