System design for beginners: design a live streaming service
about 7 h of lessonsحوالي 7 ساعة من الدروس
7 modulesوحدات · 26 lessonsدروس
Englishالإنجليزية
A one-week course built on Gaurav Sen's System Design for Beginners video (freeCodeCamp.org), cut into short lessons that each play their own piece of the video and continue where you stopped. You design a live streaming service from requirements to API, database, protocols, video processing and CDNs, then do the low-level design with UML and code. A final module covers the building blocks every interview expects: load balancers, caching, sharding, replication, queues and the CAP theorem. Every module has notes, a practical task, a written answer and a quiz.
Each module ends with tasks. The next module opens when they're done.تنتهي كل وحدة بمهام، وتُفتح الوحدة التالية عند إنجازها.
Day 1: What system design is, and the requirements4 lessonsدروس · 51 min د
Start here10 min د
What system design isYouTubeيوتيوب14 min د
Requirements for a live streaming serviceYouTubeيوتيوب14 min د
Extensibility, testing, and the final listYouTubeيوتيوب13 min د
Practical taskمهمة عمليةExplain in your wordsاشرح بكلماتكQuizاختبار · 4 questionsأسئلة
Day 2: The high-level design, API and database4 lessonsدروس · 50 min د
The core requirement: streaming videoYouTubeيوتيوب13 min د
Diagramming the approachesYouTubeيوتيوب12 min د
API designYouTubeيوتيوب13 min د
Database designYouTubeيوتيوب12 min د
Practical taskمهمة عمليةExplain in your wordsاشرح بكلماتكQuizاختبار · 4 questionsأسئلة
Day 3: Network protocols and choosing a datastore3 lessonsدروس · 43 min د
Network protocols: TCP, UDP and HTTPYouTubeيوتيوب17 min د
Choosing a datastoreYouTubeيوتيوب14 min د
Uploading the raw footageYouTubeيوتيوب12 min د
Practical taskمهمة عمليةExplain in your wordsاشرح بكلماتكQuizاختبار · 4 questionsأسئلة
Day 4: Processing and delivering video4 lessonsدروس · 52 min د
MapReduce for video transformationYouTubeيوتيوب15 min د
WebRTC vs MPEG-DASH vs HLSYouTubeيوتيوب13 min د
Content Delivery NetworksYouTubeيوتيوب12 min د
High-level summaryYouTubeيوتيوب12 min د
Practical taskمهمة عمليةExplain in your wordsاشرح بكلماتكQuizاختبار · 4 questionsأسئلة
Day 5: Low-level design with UML6 lessonsدروس · 87 min د
Introduction to low-level designYouTubeيوتيوب12 min د
Designing the video playerYouTubeيوتيوب12 min د
Engineering requirementsYouTubeيوتيوب12 min د
Use case UML diagramYouTubeيوتيوب22 min د
Class UML diagramYouTubeيوتيوب14 min د
Sequence UML diagramYouTubeيوتيوب15 min د
Practical taskمهمة عمليةExplain in your wordsاشرح بكلماتكQuizاختبار · 4 questionsأسئلة
Day 6: Coding the server2 lessonsدروس · 35 min د
Coding the serverYouTubeيوتيوب23 min د
Resources for system designYouTubeيوتيوب12 min د
Practical taskمهمة عمليةExplain in your wordsاشرح بكلماتكQuizاختبار · 4 questionsأسئلة
Day 7: The building blocks every interview expects3 lessonsدروس · 90 min د
Scaling, load balancers and caching30 min د
Databases at scale: replication, sharding and CAP35 min د
A 45-minute interview framework25 min د
Practical taskمهمة عمليةExplain in your wordsاشرح بكلماتكQuizاختبار · 4 questionsأسئلة
Read a lesson firstاقرأ درسًا أولًا
Start here
Your plan: 7 days, about 45 to 60 minutes a day
Day
Module
Video time
1
What system design is, and the requirements
about 11 min
2
The high-level design: API and database
about 11 min
3
Network protocols and choosing a datastore
about 12 min
4
Processing and delivering video
about 12 min
5
Low-level design with UML
about 27 min
6
Coding the server
about 13 min
7
The building blocks every interview expects
no video
Each lesson plays only its piece of the video and continues from where you stopped. Watch the piece, then read
the notes under it: they explain the words the video uses quickly and add what a beginner usually misses.
How the video teaches
The whole video designs one system: a live streaming service (think of a sports match streamed to millions of
viewers). It goes from requirements, to the big boxes and arrows (high-level design), to the classes and code of
one part (low-level design). Keep a notebook open and draw along: system design is learned with a pen.
Before you start
You should know one programming language and what an API and a database are.
Paper and pen, or a free drawing tool such as excalidraw.com or draw.io.
Source: the video is System Design for Beginners Course by Gaurav Sen, published by freeCodeCamp.org
on YouTube and shown here from YouTube as it is. The notes, tasks and questions in this course are by inPace.
Video: System Design for Beginners Course by Gaurav Sen, published by freeCodeCamp.org on YouTube, embedded from YouTube. Notes, tasks and questions: inPace.