1. System Design: In-depth Understanding
-
Những kiến thức gì phụ vụ cho quá trình thiết kế hệ thống? Cái
nào là nền tảng? Cái nào quan trọng?
-
Nhà tuyển dụng muốn gì từ ứng vấn khi phỏng vấn system design?
-
Làm sao để tìm những yêu cầu quan (key requirements) khi thiết
kế?
- Tư tưởng thiết kế
-
Làm sao đánh giá được một thiết kế là tốt, mặc dù chưa triển
khai?
- ...
- Thực hành 1
2. Design Principles & Estimation
- Các nguyên lý thuyết thiết kế nền tảng, quan trọng.
-
Nguyên lý thiết kế cho các mục đích: Scalability, Performnace,
Availability
-
Estimation
- Principles
- Key Metrics, Units
- Mẹo ước tính
- ...
- Thực hành 2
3. Database
-
Relational Database
- Replication
- Partitioning / Sharding
-
Tại sao Relational Database kém trong khả năng mở rộng?
Còn NoSQL Database có hiệu suất (một số trường hợp) và khả
năng mở rộng tốt hơn?
- Cách chọn database khi thiết kế?
- ...
- Thực hành 3
4. Caching
- Principles
-
Ngoài nhiệm vụ tăng tốc độ truy xuất dữ liệu, Cache còn có thể
làm nhiệm vụ gì khác?
- Advanced Data Structure trong Redis và ứng dụng
- ...
- Thực hành 4
5. Communication
- Những yếu cầu cần đánh giá khi chọn protocol, technology
- Trường hợp nào nên dùng giao thức nào?
- ...
- Thực hành 5
6. Microservices & Diagramming
-
Microservices
-
Tại sao dùng Microservice? Khi nào dùng Microservice?
- Từ Monolithic đến Microservice
- Distributed Transaction
- ...
- Thực hành 7
-
Diagramming
- C4 model và freestyle model
- Kỹ thuật vẽ
- Cách trình bày
- Thực hành 8
7. Data Structures and Algorithms & Concurrent
Programming
8. Design URL Shortener system (Bitly)
9. Design a Microblogging System (Threads)
10. Design a Messaging Platform (Discord)
11. Design a Food Delivery system (DoorDash)
12. Design a Digital Wallet (ShopeePay)
13. Design a Flash Sale system (Shopify)
14. Mock Interview
Nội dung khác:
- 12 homeworks + Review
- Thiết kế hệ thống theo yêu cầu của học viên.
- Demo Code
- Cách học hiệu quả
-
Kỹ năng phỏng vấn
- Chuẩn bị cho phỏng vấn technical như thế nào?
-
Khi hỏi về kinh nghiệm dự án, nhà tuyển dụng muốn nắm
được thông tin gì?
- Tài liệu nghiên cứu thêm (not free internet resources)