Luyện nói tiếng Anh bằng Shadowing qua video: How to Answer System Design Interview Questions (Complete Guide)

Chọn chế độ luyện tập

Mỗi chế độ mở một phòng luyện tập toàn màn hình.

99 câu
Nếu các câu quá ngắn hoặc quá dài, hãy bấm Edit để chỉnh sửa.
1
Let's talk about how to answer system design questions.
2
One of the interviews you'll likely need to prepare for
3
if you're applying for a technical role like software engineer or technical program manager is a system design interview.
4
Before we dive into how to answer a system design question, let's talk about what its purpose actually is.
5
This interview evaluates your ability to design a system or architecture to solve a complex problem in a real world setting.
6
Bear in mind that it doesn't really aim test your ability to create a 100% perfect solution.
7
Instead, it assesses your ability to design the blueprint of the architecture,
8
analyze a complex problem, discuss multiple solutions and clearly weigh the pros and cons to reach a workable solution.
9
So now that we know what this interview is and what it's testing for, let's talk about how to approach it.
10
Now, unlike a coding interview, a system design interview usually involves open-ended design problems,
11
which means that it's really helpful to use a framework to organize your thoughts quickly and answer the question systematically.
12
Pun intended.
13
After all, you're being asked to solve a problem
14
that would take a whole team of engineers to solve in the real world, and you need to do it in only 45 minutes.
15
So a framework helps us to manage time, communicate very clearly, and build towards a productive outcome logically.
16
Once you're familiar with the framework, you can apply it every time you encounter a system design interview question.
17
So what's the framework?
18
There are five steps.
19
Step one, define the problem space.
20
Here, we understand the problem and define the scope of the design.
21
It's your job to ask lots of questions in order to shrink the scope of the problem from broad
22
and vague to narrow and specific with system constraints.
23
You really want to avoid jumping into the design without doing this first.
24
Then you want to clarify both functional and non-functional requirements.
25
What's in and out of scope?
26
Remember to state your assumptions and decisions to your interviewer so that they know where you're at.
27
Think of it like taking your interviewer on a guided tour.
28
Make sure you're explicitly taking them with you and explaining every step of the journey.
29
Also consider whether you're creating the system from scratch.
30
Who are our clients or consumers?
31
Do we need to talk to pieces of the existing system?
32
What are those existing pieces?
33
think about the non-functional requirements of the system design.
34
These might be linked to business objectives or user experience, for example, availability, consistency, speed,
35
security, reliability, and even cost.
36
If you've identified a lot of design constraints and feel that some are more important than others, then focus on the ones that are the most critical.
37
Make sure to explain your reasoning to your interviewer and check in with them, though.
38
Or your interviewer may be interested in a particular aspect of the system, so listen to their hints if they nudge you in one direction.
39
Don't get bogged down trying to nail every requirement.
40
You still need to move on to actually answering the question.
41
Next, you might need to estimate the amount of data that you're dealing with so you can do some quick calculations.
42
For example, you can calculate storage size or bandwidth requirements.
43
This will help you choose components and give you an idea of what scaling might look like later.
44
You can also make some assumptions about user volume and typical user behavior.
45
But as always, check with your interviewer if these assumptions match their expectations.
46
All right, step two, design the system at a high level.
47
This is where we lay out the most fundamental pieces of the system
48
and illustrate how they work together to achieve the desired functionality, keeping in mind the constraints that you set in step one.
49
You don't really need to get into the nitty gritty details at this stage.
50
You can start We start by designing APIs, which are like a contract that defines how a client can access your system's resources.
51
Each system requirement should translate to one or more APIs.
52
You can choose what type of APIs you want to use, for example, REST, SOAP, GraphQL, or RPC, and explain why.
53
That's the important part.
54
You should also consider the request parameters and the response type.
55
These APIs become the foundation of your system's architecture.
56
After the APIs, think about how the client and web server will communicate.
57
Then, using all these decisions, create a high-level design diagram.
58
The diagram should act as a blueprint of your design and highlight the most critical pieces to fulfill the functional requirements.
59
Use this diagram to show the interviewer how the data and control flow look like in your system.
60
Do not dive into the scalability of the system yet.
61
That's going to come later.
62
Step 3.
63
Deep dive into the design.
64
This is when you can examine system components and relationships in more detail.
65
The interviewer may also prompt you to focus on a particular area, but don't rely on them to drive the conversation.
66
Start by talking about how non-functional requirements impact your design choices.
67
For example, if an online system requires fresh data, think about how to speed up the data ingestion processing and query process.
68
Or if the amount of data you need to store is large, you might want to partition the database to balance storage and query traffic.
69
You might also need to consider some load balancer layers to distribute the read-write traffic.
70
There's a lot to consider, and no single correct answer.
71
The most critical thing is that you present different design options along with their pros
72
and cons and explain why one is preferred over the other under the given circumstances.
73
That's one of the main skills that you're really being tested on.
74
Alright, step four.
75
Identify bottlenecks and scaling opportunities.
76
After completing a deep dive into the system's components, it's time to zoom out and consider whether the system can operate under various conditions and has room to support further growth.
77
Here are some important questions to consider.
78
Is there a single point of failure?
79
If so, what can we do to improve the robustness and enhance the system's availability?
80
Is the data valuable enough to require replication?
81
If we replicate our data, how important is it to keep all the versions consistent?
82
Do we support a global service?
83
If so, do we need to deploy multi-geo data centers to improve data locality?
84
Are there any edge cases, such as peak time usage or hot users
85
that create a particular usage pattern that could deteriorate performance or even break the system?
86
How do we scale the system to support 10 times more users?
87
As we scale the system, we might want to gradually upgrade each component or migrate to another architecture.
88
This is where knowledge of concepts such as horizontal sharding, CDN, which is content delivery networks,
89
caching, rate limiting, and SQL NoSQL databases is especially useful.
90
Check out our other content to learn more about those.
91
Step five, review and wrap up.
92
Finally, this is the last step.
93
It's time to summarize and list your major decisions with their justifications and any trade-offs in space,
94
time, complexity, etc. Check that your design satisfies all the requirements, although you really should be doing this periodically throughout the interview.
95
You could also identify directions for further improvement.
96
In total, this interview takes about 45 minutes, with five of those usually reserved for introductions at the beginning
97
and any questions you'd like to ask the interviewer at the end.
98
Check out our website for additional interview prep content, coaching, and tons of mock interviews to help you put your best foot forward.
99
Good luck!

Tải Ứng Dụng

Mọi thứ bạn cần để nói trôi chảy

Chấm điểm AIChấm từng câu nói
Luyện IPAThành thạo mọi âm
Từ vựngMở rộng vốn từ
Game Từ vựngHọc qua chơi

Cùng kênh

FOR YOU

Video gợi ý

Từ vựng và ghi chú luyện nói cho bài học này

Video này có 99 câu và 1305 từ để luyện shadowing. Phần lời nói dài 7:02. Người nói nói nhanh, khoảng 186 từ mỗi phút, nên sẽ có nhiều chỗ nối âm và nuốt âm. 83% số từ nằm trong 3.000 từ tiếng Anh thông dụng nhất; phần còn lại nên xem trước khi luyện.

Từ vựng quan trọng trong video

15 từ ít gặp trong video, kèm phiên âm và nghĩa:

  • requirement /ɹɪˈkwaɪɹmənt/ (danh từ) — yêu cầu. A necessity or prerequisite; something required or obligatory. Its adpositions are generally of in relation to who or what has given it, on in relation to whom…
  • architecture /ˈɑː.kɪˌtɛk.t͡ʃə/ (danh từ) — kiến trúc. The art and science of designing and managing the construction of buildings and other structures, particularly if they are well proportioned and decorated.
  • component /kəmˈpoʊ.nənt/ (danh từ) — bộ phận. A smaller, self-contained part of a larger entity. Often refers to a manufactured object that is part of a larger device.
  • dive /daɪv/ (động từ) — lặn. To swim under water.
  • solve /sɒlv/ (động từ) — giải quyết. To find an answer or solution to a problem or question; to work out.
  • diagram /ˈdaɪ.ə.ɡɹæm/ (danh từ) — giản đồ, biểu đồ. A plan, drawing, sketch or outline to show the function or operation of something, or to show the relationships between the parts of a whole.
  • database /ˈdeɪtəˌbeɪs/ (danh từ) — cơ sở dữ liệu, CSDL. A collection of (usually) organized information in a regular structure, usually but not necessarily in a machine-readable format accessible by a computer.
  • consistent /kənˈsɪs.tənt/ (tính từ) — phù hợp, thích hợp. Of a regularly occurring, dependable nature.
  • server /ˈsɝvɚ/ (danh từ) — trình chủ, máy chủ. A program that provides services to other programs or devices, either in the same computer or over a computer network.
  • helpful /ˈhɛlp.fl̩/ (tính từ) — hay giúp đỡ. Furnishing help; giving aid; useful.
  • layer /ˈleɪ̯ɚ/ (danh từ) — lớp. A single thickness of some material covering a surface.
  • narrow /ˈnæɹəʊ/ (tính từ) — hẹp, chật hẹp. Having a small width; not wide; having opposite edges or sides that are close, especially by comparison to length or depth.
  • objective /ɒbˈd͡ʒɛk.tɪv/ (danh từ) — mục tiêu, mục đích. A material object that physically exists.
  • estimate /ˈɛs.tɪ.mət/ (danh từ) — ước lượng. A rough calculation or assessment of the value, size, or cost of something.
  • rely /ɹɪˈlaɪ/ (động từ) — tin cậy, dựa vào. To trust; to have confidence in; to depend.

Cụm động từ bạn sẽ nghe

  • check out (động từ) — tính tiền, trả phòng. To record the departure or withdrawal of someone or something (such as guests, employees, books, etc.).
  • zoom out /ˌzuːm ˈaʊt/ (động từ) — thu nho. To decrease the focal length of a zoom lens in order to obtain a reduced magnification of the image, or a wider-angle view.

Phát âm cần chú ý

Người nói dùng 15 dạng rút gọn, ví dụ you're, don't, doesn't. Hãy nói theo dạng ngắn đúng như bạn nghe.

  • Âm “sh” và “zh”: assumption /əˈsʌm(p).ʃ(ə)n/, expectation /ˌɛk.spɛkˈteɪ.ʃən/, justification /ˌd͡ʒʌstɪfɪˈkeɪʃən/, calculation /ˌkælkjuˈleɪʃn̩/, partition /pɑɹˈtɪ.ʃən/
  • Từ dài — đặt trọng âm cho đúng: architecture /ˈɑː.kɪˌtɛk.t͡ʃə/, communicate /kəˈmjuːnɪkeɪt/, availability /əˌveɪ.ləˈbɪl.ɪ.ti/, fundamental /ˌfʌn.dəˈmɛn.təl/, complexity /kəmˈplɛk.sɪ.ti/

Cách luyện với video này

  1. Nghe hết video một lần, chưa cần nói, và ghi lại những từ bạn chưa biết.
  2. Bắt đầu ở tốc độ 0,75×, nói đuổi từng câu, rồi quay lại tốc độ bình thường khi đã quen.
  3. Ghi âm giọng mình rồi so với bản gốc, chú ý các từ như requirement, architecture, component.

Ngữ pháp trong video

Những cấu trúc người nói dùng nhiều nhất, kèm đúng cụm từ trong video:

Cấu trúcTrong video
Câu bị động be + quá khứ phân từ — nhấn vào việc xảy ra, không phải người làmbeing asked · might be linked · is preferred
Mệnh đề quan hệ who / which + mệnh đề — thêm thông tin về người hoặc vậtones that are · APIs, which are · CDN, which is

Phương Pháp Shadowing Là Gì?

Shadowing là kỹ thuật học ngôn ngữ có cơ sở khoa học, ban đầu được phát triển cho chương trình đào tạo phiên dịch viên chuyên nghiệp và được phổ biến rộng rãi bởi nhà đa ngôn ngữ học Dr. Alexander Arguelles. Nguyên lý cốt lõi đơn giản nhưng cực kỳ hiệu quả: bạn nghe tiếng Anh của người bản xứ và lặp lại to ngay lập tức — như một "cái bóng" (shadow) đuổi theo người nói với độ trễ chỉ 1–2 giây. Khác với luyện ngữ pháp hay học từ vựng bị động, Shadowing buộc não bộ và cơ miệng phải đồng thời xử lý và tái tạo ngôn ngữ thực tế. Các nghiên cứu khoa học xác nhận phương pháp này cải thiện đáng kể phát âm, ngữ điệu, nhịp điệu, nối âm, kỹ năng nghe và độ lưu loát khi nói — đặc biệt hiệu quả cho người luyện IELTS Speaking và muốn giao tiếp tiếng Anh tự nhiên như người bản ngữ.

Phương pháp shadowing: đọc hướng dẫn từng bước đầy đủ →