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

Trong thiết kế API, làm thế nào để lựa chọn giữa việc sử dụng HTTP Status Codes và Custom Error Codes trong Response Body?

Junior

Việc lựa chọn cần tuân thủ nguyên tắc phân tách giữa tầng giao thức và tầng nghiệp vụ:

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

Tại sao việc sử dụng HTTP Method PUT và PATCH lại khác nhau trong thiết kế RESTful API và khi nào nên dùng loại nào?

Junior

Sự khác biệt nằm ở tính chất của thao tác cập nhậ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...
1443

Làm thế nào để thiết kế API đảm bảo tính bảo mật khi truyền tải dữ liệu nhạy cảm qua môi trường Internet?

Junior

Để đảm bảo an toàn, cần áp dụng các tầng bảo mật 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...
1444

Khi thiết kế API, tại sao chúng ta nên sử dụng HATEOAS và lợi ích thực tế mà nó mang lại là gì?

Junior

HATEOAS (Hypermedia as the Engine of Application State) là một thành phần của kiến trúc REST, cho phép server cung cấp các đường dẫn (links) trong response để client biết được các hành động tiếp theo có thể thực hiệ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...
1445

Làm thế nào để xử lý sự cố container bị dừng đột ngột với mã lỗi Exit Code 137 khi chạy các ứng dụng trong Docker, và cách khắc phục triệt để ở cấp độ Junior?

Junior

Bản chất vấn đề

Exit Code 137 cho biết container đã bị kernel của hệ điều hành chấm dứt đột ngột bằng tín hiệu SIGKILL. Nguyên nhân phổ biến nhất là do container đã vượt quá giới hạn bộ nhớ được cấp phép và kích hoạt cơ chế OOM (Out Of Memory) Killer của Linux.

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

Làm thế nào để thiết lập kết nối mạng giữa hai container độc lập sử dụng User-defined Bridge Network trong Docker?

Junior

Bản chất vấn đề

Mặc định khi sử dụng mạng mặc định (bridge network), các container không thể phân giải tên miền (DNS resolution) của nhau trừ khi dùng cơ chế --link đã lỗi thời. Để các container có thể giao tiếp an toàn thông qua tên container, chúng ta cần tạo một User-defined Bridge Network.

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

Sự khác nhau cốt lõi giữa Bind Mounts và Volumes trong Docker là gì, và khi nào nên sử dụng loại nào cho môi trường phát triển và sản xuất?

Junior

Bản chất vấn đề

Cả Bind Mounts và Volumes đều cho phép container lưu trữ dữ liệu bền vững trên máy chủ vật lý (host machine), nhưng cơ chế quản lý và vị trí lưu trữ 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...
1448

Làm thế nào để dọn dẹp các tài nguyên rác (dangling images, stopped containers, unused volumes) để giải phóng dung lượng đĩa cứng trên Docker Host?

Junior

Bản chất vấn đề

Quá trình phát triển phần mềm liên tục build image và chạy container tạo ra rất nhiều lớp dữ liệu tạm thời (dangling images) và các volume không còn sử dụng. Nếu không dọn dẹp định kỳ, dung lượng ổ cứng của server sẽ nhanh chóng cạn kiệ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...
1449

Làm thế nào để xử lý tình trạng xung đột cổng (Port Conflict) khi khởi động nhiều container chạy cùng một ứng dụng trên một máy chủ?

Junior

Bản chất vấn đề

Khi chạy nhiều container cùng ánh xạ (map) ra một cổng cố định trên máy chủ host (ví dụ cổng 80), Docker sẽ báo lỗi Bind for 0.0.0.0:80 failed: port is already allocated do cổng mạng của host đã bị chiếm dụ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...
1450

Trong quá trình phát triển ứng dụng web, khi một Junior Developer cần tìm kiếm một phần tử trong một mảng tĩnh chứa hàng nghìn đối tượng, họ thường sử dụng phương thức Array.prototype.find() hoặc Array.prototype.filter(). Tại sao việc lạm dụng các phương thức này trong các vòng lặp lồng nhau lại gây suy giảm hiệu năng nghiêm trọng và cách giải quyết tối ưu cho cấp độ Junior là gì?

Junior

Phân tích bản chất

Khi sử dụng các phương thức như find() hoặc filter() bên trong một vòng lặp khác, độ phức tạp thời gian (Time Complexity) sẽ tăng lên thành O(N * M) hoặc tệ nhất là O(N^2). Đối với các ứng dụng Enterprise có dữ liệu lớn, điều này dẫn đến hiện tượng nghẽn cổ chai luồng chính (Main Thread Blocking), gây giật lag giao diện (UI Jank).

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

Khi làm việc với các mảng dữ liệu trong JavaScript, lập trình viên thường dùng phương thức Array.prototype.sort() để sắp xếp. Hãy chỉ ra cạm bẫy tiềm ẩn của phương thức sort() mặc định khi sắp xếp mảng số nguyên và cách khắc phục triệt để.

Junior

Phân tích bản chất

Mặc định, phương thức sort() trong JavaScript chuyển đổi các phần tử thành chuỗi (string) rồi so sánh theo mã Unicode (Lexicographical order) thay vì so sánh giá trị số học. Do đó, mảng số như [10, 5, 20] khi sắp xếp bằng sort() sẽ cho kết quả là [10, 20, 5], gây ra các lỗi logic nghiêm trọng trong các hệ thống tính toán tài chính hoặc danh sách định danh.

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

Trong các ứng dụng Front-end hiển thị danh sách dài (Long lists), việc render toàn bộ mảng dữ liệu hàng nghìn phần tử vào DOM gây quá tải trình duyệt. Giải pháp kiến trúc mảng nào được áp dụng để giải quyết triệt để vấn đề này?

Junior

Phân tích bản chất

Trình duyệt gặp khó khăn khi phải quản lý và render hàng nghìn node DOM cùng lúc vì chi phí vẽ lại (Reflow và Repaint) rất cao. Việc giữ toàn bộ mảng dữ liệu trong DOM làm bộ nhớ tăng cao và giảm khung hình mỗi giây (FPS).

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

Khi thao tác với mảng trong JavaScript, các phương thức như push, pop, shift, unshift có ảnh hưởng thế nào đến hiệu năng bộ nhớ và khi nào nên tránh sử dụng shift hoặc unshift?

Junior

Phân tích bản chất

Mảng trong JavaScript được cài đặt dưới dạng Dynamic Array (vùng nhớ liền kề). Phương thức push và pop thực hiện ở cuối mảng nên có độ phức tạp thời gian trung bình là O(1). Ngược lại, shift và unshift thực hiện thêm hoặc xóa phần tử ở đầu mảng, buộc toàn bộ các phần tử còn lại trong mảng phải dịch chuyển chỉ mục (Index shifting), dẫn đến độ phức tạp thời gian là O(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...
1454

Trong lập trình hướng sự kiện, mảng thường được dùng để lưu trữ danh sách các hàm callback (Event Listeners). Việc quên xóa các callback này khi component bị hủy (Unmount) gây ra hiện tượng rò rỉ bộ nhớ (Memory Leak). Hãy giải thích cách mảng giữ tham chiếu và phương pháp xử lý chuẩn.

Junior

Phân tích bản chất

Khi một hàm callback được đẩy vào một mảng toàn cục hoặc mảng lưu trữ sự kiện, mảng đó sẽ giữ một tham chiếu mạnh (Strong reference) đến hàm và các biến ngoại vi liên quan (Closure). Nếu component bị hủy nhưng mảng vẫn lưu giữ tham chiếu này, Garbage Collector sẽ không thể giải phóng bộ nhớ của component đó.

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

Trong kiến trúc Microservices, tại sao chúng ta cần tách biệt cơ sở dữ liệu cho từng service thay vì sử dụng một Database chung, và Junior cần lưu ý gì về tính toàn vẹn dữ liệu?

Junior

Bản chất vấn đề

Trong kiến trúc Microservices, nguyên tắc cốt lõi là mỗi service phải sở hữu một cơ sở dữ liệu riêng (Database-per-Service). Điều này đảm bảo tính độc lập cao, cho phép các service thay đổi schema hoặc công nghệ database mà không ảnh hưởng lẫn 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...
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