Mở đăng ký khóa học Fullstack qua Zoom. Tham khảo tại đây

Thư Viện Câu Hỏi Phỏng Vấn

Tổng hợp các câu hỏi tuyển dụng thực tế theo nhiều cấp độ từ Entry đến Expert để bạn tự tin chinh phục nhà tuyển dụng.

Interactive Practice Tổng cộng 4,442 câu hỏi độc bản

Luyện Tập Phỏng Vấn Thử

Mô phỏng áp lực phỏng vấn thật với đồng hồ đếm ngược từng câu, tự đánh giá phản xạ và đo lường độ sẵn sàng của bạn.

Vui lòng đăng nhập để tham gia luyện tập và lưu tiến độ phỏng vấn.
Tất cả công nghệ .Net (39) ADO.NET (44) Agile scrum (33) Android (40) Angular (40) API Design (40) Arrays (40) ASP.NET (42) ASP.NET MVC (40) ASP.NET Web API (49) Availability & Reliability (40) Azure (49) Backtracking (40) Big-O Notation (35) Binary Tree (40) Bit Manipulation (40) Blockchain (45) C# (45) Caching (50) CAP Theorem (45) CDN (45) Concurrency (49) Cosmos DB (44) Cryptography (40) CSS (40) Data Structures (40) Databases (35) DDD (42) Dependency Injection (50) Design pattern (45) Devops (50) Divide & Conquer (40) Docker (43) Dynamic Programming (40) Entity Framework (40) Fibonacci Series (35) Flutter (40) Git (40) Go lang (40) Graph Theory (40) GraphQL (40) Greedy Algorithms (40) Hash Tables (40) Heaps and Maps (35) HTML (40) Ionic (45) IOS (45) Java (73) Javascript (81) jQuery (40) Kotlin (50) Kubernetes (11) Laravel (41) Layering & Middleware (44) Linked Lists (45) LINQ (40) Load Balancing (45) Microservices (44) Mongodb (45) MySQL (44) Net core (44) next.js (52) Node.js (40) NoSQL (48) Objective-C (40) OOP (44) Package Managerment (50) PHP (40) PostgreSQL (44) PWA (40) Python (41) Queues (44) React Native (48) React.js (45) Reactive Programming (50) Recursion (45) Redis (40) Ruby (44) Ruby on Rails (48) Rust (40) Searching (45) SOA (42) Software Architecture (44) Software Testing (40) Sorting (48) Spring (45) SQL (37) SQL Server (45) Stacks (44) Strings (50) Swift (45) System Design (56) Systems Design (7) T-SQL (39) Trees (49) Trie (35) Typescript (44) Unit testing (49) UX Design (50) Vue.js (50) Web security (40) WebSockets (49) Xamarin (40)
511

Những điểm cần lưu ý khi thiết kế chiến lược Indexing Policies trong Azure Cosmos DB để cân bằng giữa hiệu năng truy vấn và chi phí RU ghi dữ liệu là gì?

Middle

Bản chất của Indexing Policies

Mặc định, Azure Cosmos DB tự động index mọi thuộc tính của tất cả các tài liệu (Consistent Indexing). Điều này giúp mọi câu truy vấn đều hoạt động nhưng lại tiêu tốn lượng RU lớn khi thực hiện thao tác ghi (Write Operations) và chiếm dụng dung lượng lưu trữ.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
512

Làm thế nào để triển khai chiến lược Bulk Execution trong .NET SDK của Azure Cosmos DB nhằm tối ưu hóa thông lượng (Throughput) khi nạp hàng loạt dữ liệu lớn?

Middle

Bản chất của Bulk Execution

Khi thực hiện hàng ngàn thao tác ghi độc lập (CreateItemAsync), ứng dụng phải chịu độ trễ mạng lớn và dễ gặp lỗi HTTP 429 do vượt quá giới hạn RU. Cơ chế Bulk Execution trong SDK cho phép gom nhóm (batching) các yêu cầu này lại và gửi đồng thời, tối ưu hóa việc tận dụng thông lượng được cấp phát.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
513

Cơ chế phân vùng phân cấp (Hierarchical Partition Keys) trong Azure Cosmos DB giải quyết bài toán Hot Partition như thế nào so với phương pháp truyền thống?

Middle

Hạn chế của Partition Key truyền thống

Trong kiến trúc cũ, mỗi container chỉ được phép sử dụng một Partition Key duy nhất (ví dụ: /tenantId). Nếu một tenant nào đó có lượng dữ liệu và truy vấn lớn vượt trội so với các tenant khác, partition chứa tenant đó sẽ trở thành Hot Partition, gây lãng phí tổng tài nguyên và trả về lỗi 429 mặc dù các partition khác vẫn còn dư dung lượng.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
514

Trong các hệ thống Enterprise xử lý luồng công việc (Workflow Engine), khi triển khai thuật toán Backtracking để tìm kiếm đường đi hợp lệ, làm thế nào để tối ưu hóa không gian bộ nhớ khi trạng thái (State) của mỗi bước có kích thước rất lớn?

Middle

Khi xử lý các bài toán Backtracking với trạng thái (State) có kích thước lớn trong các hệ thống Enterprise, việc sao chép trạng thái ở mỗi bước đệ quy sẽ dẫn đến chi phí bộ nhớ khổng lồ và áp lực lớn lên Garbage Collection. Để tối ưu hóa không gian bộ nhớ, chúng ta cần áp dụng kỹ thuật In-place State Mutation kết hợp với cơ chế Hoàn tác (Undo/Revert).

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
515

Khi áp dụng thuật toán Backtracking cho bài toán phân bổ tài nguyên hệ thống (Resource Allocation) với tập dữ liệu đầu vào cực lớn, làm thế nào để kết hợp kỹ thuật Iterative Deepening với Backtracking nhằm kiểm soát thời gian thực thi và tránh nghẽn luồng?

Middle

Trong các hệ thống Enterprise, các thuật toán Backtracking truyền thống chạy theo chiều sâu (DFS) có thể rơi vào trạng thái vòng lặp vô tận hoặc chiếm dụng CPU quá lâu nếu không gian tìm kiếm quá lớn. Việc kết hợp Iterative Deepening với Backtracking giúp kiểm soát thời gian thực thi hiệu quả.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
516

Trong bối cảnh phát triển Microservices, khi một dịch vụ cần giải quyết bài toán định tuyến cấu hình phức tạp bằng Backtracking, làm thế nào để xử lý việc lưu vết (Tracing) và gỡ lỗi (Debugging) khi thuật toán thất bại mà không làm suy giảm hiệu năng?

Middle

Việc gỡ lỗi các thuật toán Backtracking trong môi trường Microservices rất phức tạp vì không gian trạng thái bị phân rã và việc đệ quy sâu tạo ra hàng nghìn bước tính toán. Để xử lý vấn đề này, chúng ta cần triển khai cơ chế Structured Logging kết hợp Sampling.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
517

Khi tối ưu hóa thuật toán Backtracking cho bài toán lập lịch ca làm việc (Shift Scheduling) tại các doanh nghiệp lớn, kỹ thuật Forward Checking khác gì so với Backtracking thuần túy và tại sao nó lại giúp giảm thiểu số lượng nhánh phải duyệt?

Middle

Backtracking thuần túy (Standard Backtracking) chỉ kiểm tra tính hợp lệ của trạng thái hiện tại sau khi đã gán giá trị. Điều này dẫn đến việc hệ thống có thể đi sâu vào các nhánh cụt mà mãi đến các bước sau mới phát hiện ra mâu thuẫn. Forward Checking ra đời để giải quyết triệt để điểm yếu này.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
518

Trong kiến trúc hệ thống xử lý giao dịch tài chính, khi sử dụng thuật toán Backtracking để tìm kiếm chuỗi giao dịch tối ưu thỏa mãn các hạn mức rủi ro, làm thế nào để đảm bảo tính an toàn dữ liệu (Data Consistency) khi xảy ra sự cố giữa chừng?

Middle

Khi thuật toán Backtracking thực hiện việc thay đổi trạng thái liên quan đến cơ sở dữ liệu hoặc các tài nguyên bên ngoài (External APIs) trong các hệ thống tài chính, việc xảy ra lỗi giữa chừng có thể làm sai lệch dữ liệu toàn cục nếu không có cơ chế quản lý giao dịch chuẩn xác.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
519

Khi hệ thống gặp sự cố Database Connection Pool Exhaustion trong môi trường tải cao, anh chị sẽ thực hiện các bước phân tích và tối ưu hóa như thế nào?

Middle

Khi xảy ra hiện tượng cạn kiệt Connection Pool, cần thực hiện các bước: 1. Giám sát: Kiểm tra metrics của Connection Pool (Active connections, Idle connections, Wait time). 2. Phân tích nguyên nhân: Kiểm tra các truy vấn chậm (Slow Queries) gây chiếm dụng kết nối lâu, hoặc lỗi rò rỉ kết nối (Connection Leak) do không đóng kết nối sau khi sử dụng. 3. Tối ưu hóa: Tối ưu hóa các câu lệnh SQL bằng cách đánh Index, sử dụng Read Replica để giảm tải cho Master, hoặc áp dụng Caching (Redis) để giảm số lượng truy vấn xuống Database. 4. Cấu hình: Điều chỉnh tham số pool size phù hợp với khả năng chịu tải của Database server và sử dụng cơ chế Timeout hợp lý để giải phóng kết nối bị treo.

520

Trong thiết kế hệ thống chịu tải cao, khái niệm Database Sharding là gì và làm thế nào để giải quyết vấn đề Rebalancing dữ liệu khi thêm các Shard mới?

Middle

Database Sharding là kỹ thuật phân mảnh cơ sở dữ liệu thành các phần nhỏ hơn và lưu trữ trên các server khác nhau để tăng khả năng mở rộng ngang (Horizontal Scaling). Vấn đề lớn nhất là Rebalancing dữ liệu khi thêm Shard mới. Để giải quyết, chúng ta nên sử dụng Consistent Hashing thay vì thuật toán Modulo truyền thống. Với Consistent Hashing, khi thêm một node mới, chỉ một phần nhỏ dữ liệu cần phải di chuyển thay vì toàn bộ dữ liệu. Ngoài ra, có thể sử dụng Virtual Nodes để phân bổ dữ liệu đồng đều hơn trên các vật lý server, tránh hiện tượng Hotspot.

521

Làm thế nào để thiết kế một hệ thống Notification Service có khả năng gửi hàng triệu thông báo mỗi ngày mà không làm ảnh hưởng đến hiệu năng của các dịch vụ chính?

Middle

Để thiết kế hệ thống Notification hiệu quả, cần áp dụng kiến trúc bất đồng bộ (Asynchronous Architecture): 1. Sử dụng Message Queue (như Kafka hoặc RabbitMQ) để tách biệt giữa dịch vụ phát sinh sự kiện và dịch vụ gửi thông báo. 2. Notification Worker: Xây dựng các worker chuyên biệt để tiêu thụ message từ queue và thực hiện gửi thông báo qua các Provider (Email, SMS, Push). 3. Throttling: Áp dụng cơ chế giới hạn tốc độ gửi để tránh bị các nhà cung cấp dịch vụ chặn do spam. 4. Retry Mechanism: Thiết kế cơ chế thử lại với chiến lược Exponential Backoff cho các thông báo gửi thất bại. Cách tiếp cận này đảm bảo hệ thống chính không bị block khi quá trình gửi thông báo gặp sự cố.

522

Trong bối cảnh bảo mật hệ thống Enterprise, anh chị sẽ thiết kế cơ chế xác thực và phân quyền giữa các Microservices như thế nào để đảm bảo tính an toàn?

Middle

Để đảm bảo an toàn trong giao tiếp giữa các Microservices, nên áp dụng mô hình Zero Trust: 1. Sử dụng JWT (JSON Web Token) để truyền tải thông tin định danh người dùng và quyền hạn giữa các dịch vụ. 2. API Gateway: Đóng vai trò là điểm truy cập duy nhất, thực hiện xác thực token trước khi chuyển tiếp request vào hệ thống nội bộ. 3. Mutual TLS (mTLS): Thiết lập kết nối được mã hóa hai chiều giữa các dịch vụ để đảm bảo chỉ các dịch vụ được tin tưởng mới có thể giao tiếp với nhau. 4. Service Mesh: Sử dụng công cụ như Istio để quản lý chính sách bảo mật, kiểm soát truy cập (RBAC) và giám sát lưu lượng mạng một cách tập trung mà không cần thay đổi code của từng service.

523

Trong các hệ thống phân tán, khi nào chúng ta nên sử dụng Consistent Hashing thay vì thuật toán băm modulo truyền thống (Modulo Hashing) và cơ chế hoạt động của nó giải quyết bài toán gì?

Middle

Trong các hệ thống phân tán, Modulo Hashing sử dụng công thức hash(key) % N (với N là số lượng node máy chủ). Khi một node chết đi hoặc thêm node mới (N thay đổi), hầu như toàn bộ các khóa (keys) phải được tính toán lại và di chuyển sang node khác, gây ra hiện tượng cache stampede và quá tải hệ thống.

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
524

Hiện tượng Secondary Clustering trong Open Addressing ảnh hưởng như thế nào đến hiệu năng của Hash Table và chiến lược giải quyết nào thường được áp dụng?

Middle

Trong Hash Table sử dụng phương pháp Open Addressing (địa chỉ mở), khi xảy ra va chạm, thuật toán sẽ tìm kiếm vị trí trống tiếp theo theo một chuỗi thăm dò (probing sequence).

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
525

Tại sao các ứng dụng Enterprise xử lý dữ liệu lớn thường ưu tiên sử dụng cấu trúc dữ liệu Sparse Hash Table hoặc Swiss Table thay vì HashMap truyền thống?

Middle

HashMap truyền thống (ví dụ trong Java hoặc C++ STL) thường tiêu tốn nhiều bộ nhớ phụ trợ (overhead) do các con trỏ liên kết trong Separate Chaining hoặc các đối tượng bọc node. Đối với các hệ thống Enterprise xử lý hàng trăm triệu bản ghi, overhead này dẫn đến lãng phí RAM nghiêm trọng và gây áp lực lớn lên Garbage Collection (GC).

Nội dung chi tiết câu trả lời, phân tích kỹ thuật chuyên sâu, mã nguồn minh họa và các trường hợp ngoại lệ chỉ dành riêng cho học viên Unicode E-learning...

Để mở khóa toàn bộ giải pháp chi tiết và tài liệu hướng dẫn phỏng vấn, vui lòng nâng cấp tài khoản hoặc tham gia gói Learning Pass để truy cập không giới hạn.

// Mã nguồn và kiến trúc giải pháp bị ẩn đối với tài khoản chưa nâng cấp...
High-Ticket Mentoring
Cần Mentor Phỏng Vấn Thử 1-1 & Tối Ưu CV?

Mô phỏng phỏng vấn kỹ thuật thực tế 1-1 qua Google Meet, nhận xét chi tiết điểm mạnh/yếu và sửa CV trực tiếp cùng giảng viên Unicode.

AI Resume Scanner
Kiểm Tra CV Chuẩn ATS Miễn Phí

Tải CV của bạn lên để hệ thống AI rà soát từ khóa kỹ năng, định dạng và tính điểm chuẩn nhà tuyển dụng.

vừa nâng cấp PRO khóa 1 phút trước   Tìm hiểu khóa học