System Design for Beginners Course
Offered By: freeCodeCamp
Course Description
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
Related Courses
MongoDB for DBAsMongoDB University MongoDB Advanced Deployment and Operations
MongoDB University Building Cloud Apps with Microsoft Azure - Part 3
Microsoft via edX Implementing Microsoft Windows Server Disks and Volumes
Microsoft via edX Cloud Computing and Distributed Systems
Indian Institute of Technology Patna via Swayam