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

Cơ chế hoạt động của Laravel Event và Listener là gì, và làm thế nào để phân biệt khi nào nên dùng Event/Listener đồng bộ so với Queue Listener?

Middle

1. Bản chất của Event và Listener trong Laravel

Event và Listener triển khai mô hình Observer Pattern trong thiết kế phần mềm, giúp tách biệt các nghiệp vụ cốt lõi (Core Business Logic) với các tác vụ phụ (Side Effects) như gửi email xác nhận, ghi log hệ thống, hoặc đẩy thông bá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...
197

Làm thế nào để tối ưu hiệu năng hệ thống Laravel khi phải xử lý các báo cáo dữ liệu lớn (Big Data Reporting) mà không làm sập bộ nhớ PHP (Memory Leak)?

Middle

1. Nguyên nhân gây Memory Leak trong Laravel

Khi sử dụng Eloquent ORM để truy vấn hàng trăm nghìn bản ghi cùng lúc (ví dụ: User::all() hoặc User::get()), Laravel sẽ tải toàn bộ đối tượng model vào bộ nhớ RAM của PHP. Khi vượt quá giới hạn memory_limit, ứng dụng sẽ văng lỗi Allowed memory size exhausted.

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

Trong ASP.NET Web API, làm thế nào để thực hiện cơ chế Distributed Caching với Redis để tối ưu hóa hiệu năng cho các API có tần suất truy vấn dữ liệu lớn nhưng ít thay đổi?

Middle

Để triển khai Distributed Caching với Redis trong ASP.NET Web API, chúng ta sử dụng interface IDistributedCache.

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

Hãy giải thích cơ chế hoạt động của JWT Authentication trong ASP.NET Web API và cách xử lý khi Token hết hạn (Token Refresh) một cách an toàn?

Middle

JWT (JSON Web Token) là cơ chế xác thực stateless. Khi người dùng đăng nhập thành công, server cấp một Access Token (thời gian sống ngắn) và một Refresh Token (thời gian sống dà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...
200

Trong ASP.NET Web API, làm thế nào để tối ưu hóa việc truy vấn dữ liệu lớn bằng cách sử dụng IQueryable và cơ chế Pagination?

Middle

Việc trả về toàn bộ dữ liệu từ database (ví dụ: ToList()) là nguyên nhân hàng đầu gây sập hệ thống do tràn bộ nhớ (Out of Memory).

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

Sự khác biệt giữa Action Filter và Middleware trong ASP.NET Web API là gì? Khi nào nên chọn Middleware thay vì Filter?

Middle

Cả hai đều được dùng để thực hiện các tác vụ xuyên suốt (cross-cutting concerns) như logging, auth, hoặc xử lý 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...
202

Khi làm việc với các tập dữ liệu lớn, việc sử dụng phương thức Array.prototype.flat() có thể gây ra những vấn đề gì về hiệu năng và cách tiếp cận tối ưu để làm phẳng mảng đa chiều trong môi trường Enterprise là gì?

Middle

Phân tích hiệu năng của flat()

Phương thức Array.prototype.flat() tạo ra một mảng mới với các phần tử mảng con được nối vào. Khi làm việc với mảng có độ sâu lớn hoặc kích thước khổng lồ, việc này gây ra áp lực bộ nhớ đáng kể do phải cấp phát vùng nhớ mới cho mảng kết 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...
203

Trong JavaScript, tại sao việc sử dụng mảng làm cấu trúc dữ liệu chính để lưu trữ danh sách các phần tử cần truy xuất ngẫu nhiên thường xuyên lại có thể trở thành điểm nghẽn hiệu năng khi kích thước mảng đạt đến hàng triệu phần tử?

Middle

Bản chất của mảng trong JavaScript

Trong các engine như V8, mảng JavaScript không phải lúc nào cũng là mảng liên tục (contiguous memory) như trong C hay Java. Chúng thường được tối ưu hóa thành 'Fast Elements' (mảng số nguyên liên tục) hoặc 'Dictionary Mode' (khi mảng thưa thớt hoặc chứa nhiều kiểu dữ liệu khác nhau).

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

Hãy giải thích cơ chế 'Hole' trong mảng JavaScript (Sparse Arrays) và tại sao việc lặp qua các mảng này bằng các phương thức như forEach hoặc map lại mang đến kết quả khác biệt so với vòng lặp for truyền thống?

Middle

Cơ chế Sparse Arrays

Sparse Arrays là mảng có các vị trí trống (holes), ví dụ: const arr = [1, , 3];. Ở đây, chỉ số 1 không tồn tạ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...
205

Khi xử lý mảng dữ liệu lớn trong các ứng dụng Node.js, tại sao việc sử dụng các phương thức có tính chất 'Chaining' (ví dụ: arr.filter().map().reduce()) lại có thể gây ra vấn đề về Memory Leak hoặc hiệu năng, và kỹ thuật nào giúp khắc phục?

Middle

Vấn đề của Chaining

Mỗi phương thức như filter hoặc map đều tạo ra một mảng mới hoàn toàn. Nếu bạn có một mảng 100,000 phần tử, việc gọi chuỗi 3 phương thức sẽ tạo ra 3 mảng trung gian tạm thời, gây áp lực lớn lên Heap Memory và làm tăng tần suất Garbage Collection.

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

Trong bối cảnh bảo mật, tại sao việc truyền trực tiếp mảng dữ liệu từ phía Client lên Server mà không qua kiểm tra cấu trúc (Schema Validation) lại là một lỗ hổng tiềm tàng, và bạn xử lý vấn đề này như thế nào?

Middle

Rủi ro bảo mật

Khi Server nhận một mảng từ Client, nếu không kiểm tra, kẻ tấn công có thể gửi các cấu trúc dữ liệu độc hại (ví dụ: mảng chứa hàng triệu phần tử để gây ra Denial of Service - DoS, hoặc chứa các đối tượng có thuộc tính lạ để thực hiện Prototype Pollution).

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

Trong C#, cơ chế Garbage Collection (GC) thế hệ (Generations) hoạt động như thế nào, và làm thế nào để tối ưu hóa việc quản lý bộ nhớ cho các ứng dụng Enterprise có tải cao?

Middle

Bản chất cơ chế hoạt động của GC Generations trong C

Runtime của .NET phân chia bộ nhớ Heap thành ba thế hệ để tối ưu hóa hiệu suất của Garbage Collector:

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

Trong ASP.NET Core, cơ chế DI (Dependency Injection) hỗ trợ các Lifetime nào (Transient, Scoped, Singleton) và rủi ro gì khi tiêm một dịch vụ có Lifetime ngắn hơn vào dịch vụ có Lifetime dài hơn?

Middle

Các Lifetime trong ASP.NET Core DI

  1. Transient: Một instance mới được tạo ra mỗi khi nó được yêu cầu (thông qua constructor injection hoặc IServiceProvider.GetService). Phù hợp cho các service nhẹ, không giữ trạng thái (stateless).
  2. Scoped: Một instance được tạo ra cho mỗi một scope HTTP Request. Trong các ứng dụng web ASP.NET Core, mỗi request đến server sẽ tạo ra một DI scope riêng biệt, do đó các service kiểu Scoped sẽ được chia sẻ trong suốt vòng đời của request đó.
  3. Singleton: Instance duy nhất được tạo ra lần đầu tiên khi được gọi và tồn tại xuyên suốt vòng đời của toàn bộ ứng dụng.

Rủi ro Captive Dependency (Tiêm dịch vụ ngắn hạn vào dài hạn)

Hiện tượng Captive Dependency xảy ra khi bạn tiêm một service có Lifetime ngắn (ví dụ: Scoped như DbContext) vào một service có Lifetime dài hơn (ví dụ: Singleton).

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

Trong C#, cơ chế lập trình bất đồng bộ với 'async/await' hoạt động theo mô hình State Machine như thế nào ở tầng Intermediate Language (IL)?

Middle

Bản chất của Async/Await dưới tầng IL

Khi trình biên dịch C# gặp từ khóa async và await, nó không tạo ra các luồng (threads) mới một cách tự động. Thay vào đó, nó thực hiện một phép biến đổi mã nguồn (code transformation) cực kỳ thông minh bằng cách sinh ra một cấu trúc máy trạng thái (State Machine) ẩn dưới dạng một struct hoặc class thực thi giao diện IAsyncStateMachine.

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

Trong Entity Framework Core, hiện tượng N+1 Query là gì và các phương pháp tối ưu hóa hiệu năng để khắc phục triệt để vấn đề này trong các ứng dụng Enterprise?

Middle

Hiện tượng N+1 Query là gì?

Hiện tượng N+1 Query xảy ra khi ứng dụng thực thi một câu lệnh SQL ban đầu để lấy ra danh sách gồm $N$ bản ghi chính (gọi là 1 query), sau đó tiếp tục thực thi thêm $N$ câu lệnh SQL riêng lẻ để lấy dữ liệu quan hệ (Navigation properties) cho từng bản ghi đó.

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