跟讀練習: System Design - Part 1 | Introduction & Career Path | Why you need to learn System Design? - 通過影片學習英語口語
選擇練習模式
每種模式都會開啟全屏練習室。
227 句
如果句子過短或過長,請點選 Edit 進行調整。
1
It has been quite some time since I have wanted to start my series on system design.
2
It is just that I never felt ready
3
that I have all the resources and I have talked about all of the things
4
that you might encounter while studying this concept.
5
But right now I feel that I have covered enough that I can begin to talk about system design in general.
6
And whenever there is a concept that needs more detailing, I will create a video on it.
7
So with this series, my target is that I want to present your system design in such a way
8
that you are able to link it correctly to real life problems.
9
Because I truly believe that if you are able to relate a problem with some real life examples, then it comes very naturally to you.
10
And that has always been the goal of my channel to simplify the process
11
and the concept in such a way that it sticks in your mind.
12
You don't have to just mug up every concept.
13
So that is exactly what I'm going to do.
14
Before even getting into, okay, this is system design and these are all the terminology involved, I first want to get into where do you actually encounter system design?
15
And what are some real -life scenarios where you can apply them?
16
And that begins with the most basic step.
17
Where does it come in your interview?
18
And why do you even need it?
19
So I believe that will be a good starting point and all along the journey we are going to learn together.
20
So let's get started over there.
21
Hello friends, welcome back to my channel.
22
First of all, when you talk about system design and where does it come in your interview process?
23
Technically, whenever you are applying at an organization or no matter wherever you are working,
24
I would broadly say that you are either in the beginner level or you are an intermediate or you are an expert.
25
That means you have every knowledge or you are a subject matter expert.
26
So for most of the scenarios, you are at the beginner level.
27
That means you are dealing with basic data structures, you are dealing with basic algorithms and mostly problems on just to simplify arrays, strings, trees, all of that.
28
Next comes the part when you are going at a senior level.
29
So this is where I would say you are going at an intermediate level.
30
and this is the point where you must have a knowledge of all the system design concepts
31
because think about it such a large organization like any of the fan companies you know
32
that you cannot just develop applications based upon all of the data structures
33
that you have studied right you will not be actually using an array and then making all of these huge applications Correct?
34
You need a very good architecture level diagram and then you want to deploy out all the several components.
35
Correct?
36
Now, when you are at a beginner level, it is not expected out of you that you make these design decisions.
37
What usually happens is, at the beginner level, you are just given a sub -module that, hey, this is an entire application and you have to solve this small bit.
38
And that is why interviewers focus more on your data structures and problem -solving abilities.
39
when you are applying for intermediate roles that is where you want to know
40
that you have a knowledge of all of the design level concepts as well
41
because how is a system working what is actually happening what's
42
the database what is caching how is the data flowing what requirements do you want
43
so this is where you will start to get all of these questions and for example you're applying at Google.
44
So Google explicitly asks you, hey, do you want a system design coding round in your interview process or not?
45
And for other companies like Amazon, they will add a system design round if you're applying to software engineering levels of two and above.
46
So that is the idea.
47
And when you get at an expert level, you are not asked about data structures, algorithms.
48
No, that doesn't happen.
49
What happens is then you have to talk about real life applications.
50
How would you deal with this bunch of customers?
51
How would you deal with the high traffic?
52
How would you scale the application all throughout?
53
So, I know that all of these are very high -level terms, and surely we will get into the details of all of it.
54
But you must understand that where does system design come into play, and it is this particular level.
55
So, if you want to grow in your career, and if you want to reach at an expert level, that is where you need to have this knowledge.
56
Because, although you have these three levels, but the pay grade, it increases exponentially as you move towards the expert level.
57
And everybody loves a good pay, correct?
58
So, that is why system design is very, very necessary.
59
You want to know, right?
60
How is Netflix working?
61
How is YouTube working?
62
How are you handling so many customers?
63
Think about it.
64
Netflix is available all throughout the world.
65
And on YouTube, you can live stream a YouTube video even with millions of viewers.
66
So how are you handling all of that traffic?
67
That is all behind what system design is.
68
How are you designing this entire application?
69
So that is the end goal.
70
But before that, we want to understand what the hell is even system design and why do you want to scale applications?
71
Or rather, what does scaling even mean?
72
I will start from the very basic and then we will go along building our way step by step.
73
So where do you start?
74
Well, why do you even need system design?
75
And to understand it, let us go to the ground level.
76
Forget everything about computers.
77
Just focus that, let us say you want to open a bookstore, right?
78
And what do you do?
79
Okay, you have a small bookstore you open it what happens now you can say
80
that okay some customers will start to come in now as more
81
and more customers start to come in what do you do your bookstore will start to get smaller right
82
so you want to accommodate more customers what is the first thing
83
that comes to mind okay this is a small shop what
84
do i do i will try to either expand my shop
85
or what i'm gonna do is i will shut down this store
86
and maybe i open an even bigger store correct now you have a bigger store
87
and what happens is you see more
88
and more customers come in your store is able to accommodate everyone
89
so what are you basically doing you are increasing your store capacity correct
90
and this process cannot just go on think about it what
91
if more customers starts to come in you have a lot of customers coming in correct
92
so what do you do now Okay, maybe I can increase my store once again.
93
My bookstore is even bigger now and I can accommodate more people.
94
But do you see the problem with this approach?
95
What if more and more customers start to come in?
96
What if you're becoming really, really popular?
97
Do you think that you can keep on expanding a bookstore?
98
You will face all of the issues, right?
99
You cannot have a very huge building.
100
You will have all these parking problems and all of the resources problems as well.
101
You cannot manage all the customers.
102
It will be all of a hassle, right?
103
So basically what you're currently doing right now is you are scaling your bookstore vertically.
104
That means you are gonna keep on increasing the size of your bookstore.
105
You will soon realize that you are running out of space, correct?
106
So you already know what solutions do all of these big companies come up with right
107
and what is
108
that they do not open a store at only one place
109
what will you do you will open different stores at different places correct
110
and each of these stores they are made on the basis
111
of your consumption correct you do not want to open a huge store where the footfall is very less
112
and vice versa
113
so basically what are you doing you are trying to expand
114
your business horizontally what you can do is you can use your same store format
115
and open it up in a lot of different places what did
116
that do with this you can distribute all of your customers at different places correct think about it
117
if you had your store open only in one region then
118
you're only targeting customers from this particular region you cannot expect
119
that someone will fly all the way to come at your store.
120
But if you have opened your store at all of these different places, a customer can go to any of the store that is nearest to them.
121
So this is how you are solving a problem.
122
And this is horizontal scaling.
123
So now you are understanding the two most important concepts, vertical scaling and horizontal scaling.
124
You cannot expect to have vertical scaling infinitely but with horizontal scaling you have a lot more scope.
125
So this was a pretty basic example when you were trying to open a bookstore and then you want to expand it.
126
You want more profits right and when it comes to computer programming
127
or making applications what happens is let us say you are developing an application correct
128
and this application will be having a database it will have some disk usage
129
and it will have some cpu as well
130
and now think about it you made your application on a
131
computer correct very basic let us say you have your home computer
132
and you made an application on it now let's say you
133
want to make this application available to someone you run your own server
134
and then you deploy this application so people will start coming in
135
and they will want to use your application correct but
136
if you notice the more
137
and more people will try to use your app what will
138
happen you will need more disk you will need more cpu and you will need more database as well So, the same concept applies over here.
139
Yes, you can increase your disk size and then you can even use a faster CPU.
140
Right now, you are having a 2 .2 GHz CPU.
141
You can switch to a 3 GHz.
142
Similarly, for a disk, you can have 2 TB of RAM and then you can upgrade to 4 TB of RAM.
143
Similarly, for database as well.
144
But do you see the problem?
145
If you have to deal with millions of users, think about Facebook, right?
146
You have so many users you cannot expect that you will keep on increasing your disk, database and CPU quantity.
147
You are limited, right?
148
You do not have a faster CPU than a particular limit, correct?
149
Another factor is that when you are dealing with such large memories, then the cost of things also start to grow.
150
I am pretty sure that when you have purchased components, you might have seen this as well.
151
For example, if you are taking two RAMs of 4TB each, they will cost you less than a single piece of 8TB RAM.
152
So, the price required is not linear.
153
So, you cannot keep on increasing your RAM continuously.
154
Your cost will keep on increasing exponentially and you will never make a profit.
155
In fact, if you look at the graph between your cost and memory, this graph will look something like this.
156
So as you increase your memory, the cost keeps on going up, right?
157
And whenever you're dealing with applications, you need more RAM, more and more fast memory.
158
So at that point, your application stops scaling.
159
You cannot just accommodate more and more customers to reach you.
160
So this is exactly similar when you're opening a bookstore, correct?
161
You cannot just keep on increasing your bookstore size.
162
You will face some of the problems.
163
And when you're dealing with computer applications, you get limited by all of these resources.
164
To give you an example, I just took two screenshots.
165
Just look at this.
166
Here is a solid state drive and for 4TB, the cost is approximately $230.
167
So, you would expect that, okay, for 8TB, I will get the double of cost, right?
168
But that is not true for high memories.
169
If you are increasing your storage size then the cost becomes greater than a multiple of two
170
and that is why you cannot just keep on having a vertical scaling.
171
You need to think something different and that is where horizontal scaling comes in.
172
Similar to the way we were opening all of our bookstores
173
what we now do is we take up our app
174
and we will try to deploy it in two different regions of the world.
175
So now what happens?
176
All of your customers that were coming from all the way to the world only in one region.
177
This was our condition, right?
178
And this was causing a problem.
179
What did we just do?
180
We have now deployed our applications in two different regions.
181
And now some customers can reach over here while the other users can reach over here.
182
So what did you do?
183
You partitioned your users, correct?
184
And you are able to give them the same service.
185
So this is a very high level overview design about what is a vertical scaling and what is a horizontal scaling.
186
And this is the exact reason why you need to study system design.
187
Because you cannot just keep on scaling up your application vertically.
188
It is just not possible you need to have different servers all throughout the world.
189
That is why you have so many services in all different regions of the world.
190
That is why there is a concept of latency because it depends which server are you trying to connect to.
191
If a server is hosted only in the Americas then this is the latency from all different countries.
192
So these are all the concepts that we will become familiar with
193
but for this video i just want to give you an overview
194
that this is system design and that is why we study it
195
and i really hope that this kind of peaks your interest
196
and you want to know more
197
and this is how i'm gonna structure my course as well
198
so basically what we are gonna do is just like this
199
real life example we will cover all of the basics of system design that means what are all the terminology used?
200
What is caching?
201
What is latency?
202
What is partitioning?
203
What is hashing?
204
What do all of these actually mean?
205
And we will go step by step over every example.
206
What is the individual component doing and how can you take advantage of it?
207
And once you are familiar with all of these basic concepts, we will start off with some very basic designs.
208
For example, how do you implement a service that is a URL shortener?
209
How do you implement a service something like Uber?
210
So just a basic idea, like how do you have this map structure and how do you find the nearest cab?
211
So these are some of the very basic designs and then we are going to understand each of the components as well.
212
So what I want to just say is, it is a journey and it will take some time.
213
Just keep letting me know if you are facing any problems and which part do you want me to expand more.
214
Just tell me if it gets very verbose or
215
if it starts to get boring
216
but all of this feedback will help me to curate this course even more effectively
217
and I promise I will try to simplify it as much as possible for you
218
and if everything goes right we will also look at some complex designs and some real -life applications too.
219
So that is all I had in my mind for now
220
so do let me know what are you feeling about this course
221
and are you looking forward to it that will surely keep me motivated.
222
Also if you find this channel helpful
223
and you really like these kind of explanations please do subscribe to my channel it really keeps me going
224
and if you want more consider joining my channel by
225
that you do get prior to reply to your comments
226
and you do get early access to these new videos as well
227
so stay tuned for my upcoming videos until then see ya
FOR YOU
推薦影片
本課的詞彙與口語要點
這節 C1 級別的口語課以影片“System Design - Part 1”為素材。 影片中反覆出現的詞有:design, application, customer, correct, store。 這段影片共有 227 個句子、2833 個單詞可供跟讀。 講話部分時長為 16:04。 說話人語速自然,每分鐘約 176 個詞,接近日常對話。 89% 的單詞屬於英語最常用的 3,000 詞,其餘的詞建議在練習前先學一下。 全部 227 個句子中有 53 個是問句,適合練習疑問語調和簡短回答。
影片中的重點詞彙
影片中最難的 15 個單詞,附發音和釋義:
| 單詞 | 發音 | 釋義 |
|---|---|---|
| horizontal 形容詞 | /ˌhoɹəˈzɑn.təl/ | 水平, 橫的 /橫的 |
| disk 名詞 | /dɪsk/ | 圓盤 /圓盤 |
| beginner 名詞 | /bəˈɡɪnɚ/ | 初學者 /初學者, 新手 |
| deploy 動詞 | /dɪˈplɔɪ/ | 部署 |
| accommodate 動詞 | /əˈkɑməˌdeɪt/ | 容納 |
| latency 名詞 | /ˈleɪ.tən.si/ | 延遲 /延遲 |
| simplify 動詞 | /ˈsɪmplɪfaɪ/ | 簡化 /簡化 |
| intermediate 形容詞 | /ɪn.tə(ɹ)ˈmi.di.ət/ | 中間 /中間, 中級 /中級 |
| exponentially 副詞 | /ɛkspə(ʊ)ˈnɛnʃəli/ | 指數地 |
| cache 名詞 | /kæʃ/ | 快取 /快取, 快取 |
| terminology 名詞 | /ˌtɝ.məˈnɑ.lə.d͡ʒi/ | 術語學 /術語學 |
| algorithm 名詞 | /ˈælɡəɹɪðm̩/ | 演算法, 演算法 |
| graph 名詞 | /ɡɹæf/ | 圖表 /圖表 |
| verbose 形容詞 | /vəˈbəʊs/ | 羅嗦 /羅嗦, 冗長 /冗長 |
| interviewer 名詞 | /ˈɪntɚvjuɚ/ | 訪問者 /訪問者 |
影片中出現的短語動詞
| 單詞 | 釋義 |
|---|---|
| come up with 動詞 | 想出, 提出 |
| go up 動詞 | 上昇 /上升, 上去 |
| look forward to 動詞 | 期待, 嚮往 |
值得反覆跟讀的句子
影片中簡短而完整的句子,可以直接用在日常對話裡:
- Where does it come in your interview?
- How would you deal with this bunch of customers?
- How would you deal with the high traffic?
- How would you scale the application all throughout?
- What if you're becoming really, really popular?
影片中的語法
說話人最常用的結構,並附上影片中的原話:
| 結構 | 影片中的用法 |
|---|---|
| 現在完成時 have/has + 過去分詞 — 過去發生但與現在仍有關聯的事 | has been · have talked · have covered |
| 被動語態 be + 過去分詞 — 強調發生了什麼,而不是誰做的 | is not expected · are just given · are not asked |
需要注意的發音
說話人用了 17 次縮略和弱讀形式,例如 you're, gonna, I'm。請按聽到的簡短形式來說。
- “sh” 和 “zh” 音: exponentially /ɛkspə(ʊ)ˈnɛnʃəli/, cache /kæʃ/, partition /pɑɹˈtɪ.ʃən/, shortener /ˈʃɔɹtənɚ/, hash /ˈhæʃ/
- 長單詞——注意重音位置: horizontal /ˌhoɹəˈzɑn.təl/, accommodate /əˈkɑməˌdeɪt/, intermediate /ɪn.tə(ɹ)ˈmi.di.ət/, exponentially /ɛkspə(ʊ)ˈnɛnʃəli/, vertically /ˈvɝ.tɪ.kəli/
中文母語者容易讀錯的音:
- /v/ — 不要讀成 /w/,上齒輕觸下唇: vertically /ˈvɝ.tɪ.kəli/, verbose /vəˈbəʊs/, interviewer /ˈɪntɚvjuɚ/, motivate /ˈmoʊ.tɪ.veɪt/, viewer /ˈvju.ɚ/
- 詞尾子音 — 要讀清楚,後面不要加母音: disk /dɪsk/, accommodate /əˈkɑməˌdeɪt/, intermediate /ɪn.tə(ɹ)ˈmi.di.ət/, cache /kæʃ/, graph /ɡɹæf/
- /r/ 和 /l/ 的區別: horizontal /ˌhoɹəˈzɑn.təl/, algorithm /ˈælɡəɹɪðm̩/, broadly /ˈbɹɔːdli/
如何用這段影片練習
- 先完整聽一遍影片,不要開口,記下不認識的單詞。
- 先用 0.75 倍速逐句跟讀,熟練之後再回到正常速度。
- 錄下自己的聲音並與原聲對比,特別注意 horizontal, disk, beginner 這類單詞。
什麼是跟讀法?
跟讀法 (Shadowing) 是一種有科學依據的語言學習技巧,最初開發用於專業口譯員的培訓,並由多語言者Alexander Arguelles博士普及。這個方法簡單而強大:您在聽英語母語原聲的同時立即大聲重複——就像是一個延遲1-2秒緊跟說話者的影子。與被動聽力或語法練習不同,跟讀法強迫您的大腦和口腔肌肉同時處理並模模擬實的講話模式。研究表明它能顯著提高發音準確性,語調,節奏,連讀,聽力理解和口語流利度——使其成為雅思口語備考和真實英語交流最有效的方法之一。












