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)
4036

Kết quả của đoạn mã dưới đây là gì? ```javascript console.log(NaN === NaN); ``` - 1: True - 2: False

Senior

Đáp án đúng là: 2: False

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...
4037

Trong PHP 8.2+, việc sử dụng Readonly classes mang lại lợi ích gì cho kiến trúc Domain-Driven Design (DDD) và làm thế nào để đảm bảo tính toàn vẹn của dữ liệu khi kết hợp với các thuộc tính khởi tạo?

Senior

Phân tích về Readonly classes trong DDD

Trong kiến trúc DDD, các Value Objects cần đảm bảo tính bất biến (immutability). Trước đây, chúng ta phải khai báo thủ công các thuộc tính private và chỉ cung cấp getter. Với Readonly classes trong PHP 8.2, toàn bộ class được bảo vệ tự độ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...
4038

Hãy giải thích cơ chế hoạt động của Fiber trong PHP 8.1+ và tại sao nó được coi là bước ngoặt cho các ứng dụng I/O-bound thay vì sử dụng mô hình truyền thống?

Senior

Cơ chế hoạt động của Fiber

Fiber cung cấp cơ chế Cooperative Multitasking (đa nhiệm hợp tác). Khác với Thread, Fiber không chạy song song thực thụ mà cho phép tạm dừng (suspend) và tiếp tục (resume) việc thực thi code tại bất kỳ đâu trong call stack.

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...
4039

PHP 8.4 giới thiệu Property Hooks. Hãy phân tích cách tính năng này thay thế cho các phương thức getter/setter truyền thống và ảnh hưởng của nó đến việc đóng gói dữ liệu (Encapsulation)?

Senior

Phân tích Property Hooks

Property Hooks cho phép định nghĩa logic trực tiếp trên thuộc tính của class thông qua các hook get và set. Điều này giúp việc kiểm soát dữ liệu đầu vào và đầu ra trở nên tinh gọn.

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...
4040

Trong hệ thống phân tán chịu tải cao, làm thế nào để anh chị thiết kế kiến trúc Caching nhiều tầng (Multi-tier Caching) gồm L1 Cache tại bộ nhớ ứng dụng và L2 Cache sử dụng Redis Cluster để đảm bảo tính đồng bộ dữ liệu và tối ưu độ trễ?

Senior

Để thiết kế kiến trúc Caching nhiều tầng (Multi-tier Caching) đạt hiệu suất cao và đảm bảo tính nhất quán dữ liệu ở cấp độ Enterprise, chúng ta cần triển khai theo mô hình sau:

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...
4041

Hiện tượng Cache Stampede (hay Thundering Herd) xảy ra khi nào trong hệ thống sử dụng Redis, và anh chị có những giải pháp kỹ thuật nào để giải quyết triệt để vấn đề này ở cấp độ Senior?

Senior

1. Bản chất của hiện tượng Cache Stampede

Cache Stampede xảy ra khi một key cực kỳ quan trọng (Hot key) hết hạn (Expired) đúng lúc hệ thống đang có lượng truy cập (Traffic) khổng lồ. Hàng loạt các Worker/Thread đồng thời phát hiện Cache Miss, sau đó tất cả cùng đồng loạt truy vấn xuống Database để lấy dữ liệu mới. Việc này khiến Database quá tải (CPU Spike, Connection Pool Exhaustion) và làm sập toàn bộ 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...
4042

Khi triển khai Redis Cluster cho hệ thống có dung lượng dữ liệu lớn và throughput cực cao, anh chị sẽ xử lý bài toán Hot Key, Sharding và cơ chế chuyển đổi dự phòng (Failover) như thế nào để đảm bảo tính sẵn sàng cao (High Availability)?

Senior

Để vận hành Redis Cluster ở quy mô Enterprise với độ sẵn sàng cao và hiệu năng tối ưu, chúng ta cần giải quyết các bài toán cốt lõi sau:

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...
4043

Phân tích sự khác biệt giữa Microtasks và Macrotasks trong Node.js Event Loop và cách chúng ảnh hưởng đến thứ tự thực thi của các tác vụ bất đồng bộ?

Senior

Bản chất cơ chế

Node.js Event Loop xử lý các tác vụ thông qua các phase (Timers, Pending Callbacks, Poll, Check, Close). Tuy nhiên, Microtasks (process.nextTick, Promise callbacks) được thực thi ngay sau khi hoàn thành mỗi operation trong phase hiện tại, trước khi chuyển sang phase tiếp theo.

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...
4044

Trong NestJS, làm thế nào để tận dụng Dependency Injection (DI) và Modules để xây dựng kiến trúc ứng dụng có khả năng mở rộng (Scalability) và dễ dàng kiểm thử (Testability)?

Senior

Dependency Injection (DI)

NestJS sử dụng DI để quản lý vòng đời của các object. Thay vì khởi tạo class thủ công, chúng ta sử dụng @Injectable(). Điều này giúp tách biệt logic (Decoupling) và dễ dàng mock các service khi viết Unit Test.

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...
4045

Tại sao việc sử dụng setImmediate thay vì setTimeout(fn, 0) lại được khuyến khích trong một số trường hợp cụ thể khi xử lý các tác vụ nặng trong Node.js?

Senior

Cơ chế hoạt động

  • setTimeout(fn, 0): Đưa callback vào phase Timers. Tuy nhiên, do độ trễ của hệ thống, nó không đảm bảo chạy ngay lập tức.
  • setImmediate: Đưa callback vào phase Check, diễn ra ngay sau phase Poll.

Tại sao nên dùng setImmediate?

Khi bạn đang ở trong một I/O cycle (ví dụ: trong callback của fs.readFile), setImmediate luôn được thực thi trước setTimeout(fn, 0) vì phase Check nằm ngay sau phase Poll (nơi xử lý I/O).

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...
4046

Virtual Threads (Project Loom) trong Java 21 là gì và khác gì so với Platform Threads truyền thống?

Senior

Virtual Threads là các luồng ảo siêu nhẹ được giới thiệu chính thức từ Java 21. Khác biệt cốt lõi:

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...
4047

Cơ chế Garbage Collection trong JavaScript hoạt động như thế nào? Giải thích thuật toán Mark-and-Sweep?

Senior

JavaScript tự động quản lý bộ nhớ thông qua cơ chế Garbage Collection. Thuật toán chính được sử dụng hiện nay là Mark-and-Sweep (Đánh dấu và Dọn dẹp):

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...
4048

Laravel Service Container là gì?

Senior

Service Container của Laravel là một công cụ mạnh mẽ dùng để quản lý các class dependencies và thực hiện dependency injection (DI).

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...
4049

Làm thế nào để phát hiện và tối ưu hóa lỗi truy vấn N+1 (N+1 query problem) trong Eloquent ORM của Laravel?

Senior

Lỗi N+1 xảy ra khi bạn truy vấn danh sách bản ghi và với mỗi bản ghi, bạn lại thực hiện thêm một truy vấn con để lấy quan hệ liên kế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...
4050

Sự khác biệt giữa Repository Pattern và Service Layer trong kiến trúc dự án Laravel?

Senior

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