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

Khi xử lý mảng trong JavaScript, phương thức Array.prototype.reduce() thường được sử dụng để tổng hợp dữ liệu. Hãy giải thích cơ chế hoạt động của accumulator trong reduce và đưa ra một ví dụ thực tế về việc nhóm dữ liệu theo thuộc tính mà một lập trình viên cấp độ Junior hay gặp.

Junior

Cơ chế hoạt động của Accumulator trong reduce

Phương thức Array.prototype.reduce() thực thi một hàm callback trên từng phần tử của mảng, truyền vào kết quả của phép tính từ lần thực thi trước đó. Giá trị này được gọi là accumulator (biến tích lũ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...
1127

Tại sao việc sử dụng toán tử spread (...) để sao chép mảng đa chiều (Nested Arrays) lại không tạo ra một bản sao hoàn toàn độc lập (Deep Copy) và giải pháp tiêu chuẩn để khắc phục là gì?

Junior

Bản chất của toán tử Spread (...) trong JavaScript

Toán tử spread (...) thực hiện việc sao chép nông (Shallow Copy). Điều này có nghĩa là nó tạo ra một mảng mới, nhưng các phần tử bên trong mảng đó (nếu là kiểu dữ liệu tham chiếu như Object hoặc một mảng con khác) vẫn chỉ lưu giữ địa chỉ tham chiếu trỏ đến cùng một ô nhớ với mảng gố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...
1128

Trong JavaScript, khi cần kiểm tra xem một mảng có thỏa mãn điều kiện nào đó hay không, lập trình viên thường dùng các phương thức như includes, some và every. Hãy phân tích sự khác biệt về hiệu năng và logic giữa các phương thức này.

Junior

Phân tích các phương thức kiểm tra mảng

Cả ba phương thức includes(), some(), và every() đều duyệt qua mảng để trả về kết quả kiểu boolean (true hoặc false), nhưng mục đích và cơ chế 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...
1129

Khi thực hiện xóa một phần tử ở giữa một mảng lớn trong JavaScript bằng phương thức splice(), điều gì xảy ra bên dưới tầng bộ nhớ của động cơ JavaScript (Engine) và cách tiếp cận thay thế nào hiệu quả hơn nếu thao tác này diễn ra thường xuyên?

Junior

Cơ chế hoạt động của Array.prototype.splice()

Mảng trong JavaScript (đặc biệt là Dynamic Array) được cấp phát một vùng nhớ liên tục (Contiguous Memory Allocation) để đảm bảo độ phức tạp truy xuất ngẫu nhiên là $O(1)$.

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

Trong quá trình phát triển ứng dụng web, việc chuyển đổi dữ liệu từ mảng sang dạng bảng băm (Dictionary / Hash Map) bằng phương thức reduce hoặc vòng lặp để phục vụ tìm kiếm là một kỹ thuật phổ biến. Hãy giải thích lợi ích về độ phức tạp thuật toán của kỹ thuật này.

Junior

Bài toán tìm kiếm trên mảng thông thường

Giả sử bạn có một mảng chứa 10,000 đối tượng người dùng. Nếu bạn cần tìm kiếm thông tin của một người dùng dựa vào userId nhiều lần trong ứng dụng, việc sử dụng phương thức Array.prototype.find() hoặc Array.prototype.filter() sẽ có độ phức tạp thời gian là $O(N)$ cho mỗi lần tìm kiếm. Nếu thực hiện tìm kiếm trong một vòng lặp khác, độ phức tạp tổng thể sẽ tăng lên mức $O(N^2)$, gây nghẽn cổ chai hiệu nă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...
1131

Tại sao việc chặn Event Loop (Event Loop Blocking) lại nguy hiểm đối với các ứng dụng Node.js và làm thế nào để phát hiện các tác vụ gây nghẽn này trong môi trường thực tế?

Junior

Bản chất vấn đề

Node.js hoạt động dựa trên mô hình Single-threaded (luồng đơn) với cơ chế Non-blocking I/O và Event Loop. Khi một tác vụ CPU-bound nặng (như tính toán số nguyên tố lớn, mã hóa mật khẩu bằng thuật toán đồng bộ, hoặc xử lý mảng dữ liệu khổng lồ) được thực thi trên luồng chính, nó sẽ chiếm dụng toàn bộ tài nguyên của CPU.

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

Memory Leak (Rò rỉ bộ nhớ) là gì trong Node.js và nguyên nhân phổ biến nào dẫn đến tình trạng này ở các ứng dụng cấp độ Junior?

Junior

Khái niệm

Memory Leak xảy ra khi ứng dụng Node.js phân bổ bộ nhớ cho các đối tượng (objects) nhưng sau đó không giải phóng chúng khi không còn sử dụng nữa, khiến trình thu gom rác Garbage Collection (GC) không thể thu hồi. Lâu dần, heap memory sẽ cạn kiệt và ứng dụng bị crash với lỗi JavaScript heap 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...
1133

Sự khác biệt cốt lõi giữa process.nextTick() và setImmediate() trong Node.js là gì và chúng được thực thi như thế nào trong Event Loop?

Junior

Khái niệm và cơ chế hoạt động

Mặc dù cả hai đều dùng để trì hoãn việc thực thi mã lệnh cho đến các vòng lặp sau của Event Loop, nhưng chúng thuộc các hàng đợi (queues) hoàn toàn 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...
1134

Tại sao việc sử dụng Streams lại được khuyến khích thay vì đọc toàn bộ file lớn vào bộ nhớ RAM trong Node.js?

Junior

Vấn đề khi không dùng Streams

Khi xử lý các file có kích thước lớn (ví dụ: file log, file video dung lượng vài GB) bằng các phương thức như fs.readFile(), Node.js sẽ cố gắng nạp toàn bộ nội dung của file đó vào bộ nhớ RAM dưới dạng một Buffer duy nhất trước khi trả về 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...
1135

Package.json và Package-lock.json đóng vai trò như thế nào trong quản lý dependency và tại sao việc xóa package-lock.json trên môi trường Production là một sai lầm nghiêm trọng?

Junior

Vai trò của từng file

  1. package.json:

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

Làm thế nào để triển khai thuật toán đảo ngược một Danh sách liên kết đơn (Reverse Linked List) một cách hiệu quả và giải thích cơ chế quản lý con trỏ?

Junior

Để đảo ngược một Danh sách liên kết đơn (Singly Linked List), chúng ta cần thay đổi hướng của các con trỏ next từ node hiện tại trỏ về node trước đó thay vì trỏ về node 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...
1137

Làm thế nào để tìm node ở chính giữa của một Danh sách liên kết đơn mà chỉ được phép duyệt qua danh sách một lần duy nhất?

Junior

Để tìm node giữa của một Danh sách liên kết đơn (Middle of the Linked List) mà chỉ duyệt qua một lần (O(N)), chúng ta áp dụng kỹ thuật Two Pointers (Hai con trỏ) với tốc độ khác nhau, thường gọi là thuật toán Tortoise and Hare (Rùa và Thỏ).

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

Trong các ứng dụng Enterprise, khi nào nên sử dụng cấu trúc dữ liệu Linked List thay vì Array (Mảng), và những điểm yếu cốt lõi cần lưu ý là gì?

Junior

Việc lựa chọn giữa Linked List và Array phụ thuộc vào bài toán nghiệp vụ cụ thể liên quan đến thao tác dữ liệu và hiệu năng phần cứ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...
1139

Làm thế nào để tìm node thứ k tính từ cuối lên trong một Danh sách liên kết đơn với chỉ một lần duyệt duy nhất?

Junior

Để tìm node thứ k tính từ cuối lên (Nth node from the end of Linked List) mà chỉ duyệt qua danh sách một lần, chúng ta tiếp tục áp dụng kỹ thuật Two Pointers nhưng với khoảng cách cố định giữa hai con 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...
1140

Làm thế nào để xóa một node bất kỳ trong Danh sách liên kết đơn khi bạn chỉ nhận được tham chiếu đến chính node đó mà không có con trỏ trỏ đến `head`?

Junior

Đây là một câu hỏi phỏng vấn kinh điển nhằm kiểm tra tư duy giải quyết vấn đề linh hoạt với cấu trúc con trỏ. Khi bạn không có head, bạn không thể duyệt từ đầu để tìm node đứng trước node cần xóa.

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