YoVDO

System Design for Beginners Course

Offered By: freeCodeCamp

Tags

Software Development Courses Distributed Systems Courses Database Design Courses Fault Tolerance Courses Network Protocols Courses API Design Courses

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 DBAs
MongoDB 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