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

Làm thế nào để xử lý bài toán SSL Termination tại Load Balancer và tại sao kiến trúc này lại tối ưu hơn việc xử lý SSL trực tiếp trên Backend Server?

Junior

SSL Termination (hoặc SSL Offloading) là quá trình giải mã (decrypt) lưu lượng HTTPS thành HTTP tại tầng Load Balancer trước khi chuyển tiếp request đến các Backend Server.

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

Trong kiến trúc Microservices, tại sao việc sử dụng Database per Service lại quan trọng đối với tính sẵn sàng (Availability) của hệ thống?

Junior

Việc sử dụng Database per Service giúp cô lập dữ liệu, đảm bảo rằng lỗi ở một dịch vụ không gây ra hiệu ứng domino (cascading failure) lên toàn bộ hệ thống. Nếu một dịch vụ gặp sự cố về database, các dịch vụ khác vẫn có thể hoạt động bình thường. Ngoài ra, nó cho phép mỗi dịch vụ lựa chọn công nghệ database phù hợp nhất với nhu cầu truy vấn, giúp tối ưu hóa hiệu năng và khả năng mở rộng độc lập.

2043

Sự khác biệt giữa Load Balancer và Reverse Proxy là gì trong việc đảm bảo tính sẵn sàng của ứng dụng?

Junior

Load Balancer tập trung vào việc phân phối lưu lượng truy cập (traffic) đến nhiều server khác nhau để tránh quá tải, đảm bảo không có server nào trở thành điểm nghẽn (bottleneck). Reverse Proxy đóng vai trò là cổng trung gian, xử lý các yêu cầu từ client trước khi chuyển tiếp vào server nội bộ. Reverse Proxy thường cung cấp thêm các tính năng như SSL Termination, Caching và tăng cường bảo mật bằng cách ẩn địa chỉ IP của server thực tế.

2044

Tại sao việc áp dụng cơ chế Retry với Exponential Backoff lại cần thiết khi gọi các API bên thứ ba?

Junior

Khi gọi API bên thứ ba, các lỗi tạm thời như timeout hoặc network jitter là không thể tránh khỏi. Nếu gọi lại (retry) ngay lập tức, hệ thống có thể làm trầm trọng thêm tình trạng quá tải của dịch vụ đích. Exponential Backoff giúp tăng dần thời gian chờ giữa các lần thử lại, giúp dịch vụ đích có thời gian phục hồi. Ví dụ: lần thử 1 chờ 1s, lần 2 chờ 2s, lần 3 chờ 4s. Điều này giúp tăng tính ổn định và tránh bị chặn do gửi quá nhiều request trong thời gian ngắn.

2045

Caching giúp cải thiện tính sẵn sàng của hệ thống như thế nào và rủi ro lớn nhất khi sử dụng Caching là gì?

Junior

Caching giúp giảm tải cho database bằng cách lưu trữ kết quả của các truy vấn thường gặp vào bộ nhớ đệm (như Redis hoặc Memcached), từ đó tăng tốc độ phản hồi và giảm áp lực lên hệ thống lưu trữ chính. Rủi ro lớn nhất là tính nhất quán của dữ liệu (Data Consistency). Khi dữ liệu gốc thay đổi nhưng cache chưa được cập nhật hoặc xóa bỏ (cache invalidation), người dùng sẽ nhận được thông tin cũ, dẫn đến sai lệch logic nghiệp vụ hoặc trải nghiệm người dùng kém.

2046

Giải thích khái niệm Health Check trong Docker và vai trò của nó đối với tính sẵn sàng của container?

Junior

Health Check là cơ chế để hệ thống giám sát biết được một container có đang thực sự hoạt động đúng chức năng hay không. Nếu một container đang chạy nhưng dịch vụ bên trong bị treo (deadlock), Health Check sẽ phát hiện trạng thái unhealthy. Khi đó, các orchestration tools như Kubernetes có thể tự động khởi động lại container đó để khôi phục dịch vụ. Ví dụ trong Dockerfile: HEALTHCHECK --interval=30s --timeout=3s CMD curl -f http://localhost/health || exit 1.

2047

Sự khác biệt cốt lõi giữa Server Components và Client Components trong Next.js App Router là gì và khi nào bạn nên sử dụng từng loại?

Junior

Bản chất sự khác biệt

Trong Next.js App Router, các thành phần được chia thành hai loại chính:

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

Cơ chế caching và revalidating dữ liệu trong Next.js App Router hoạt động như thế nào? Phân biệt Static Data Fetching và Dynamic Data Fetching.

Junior

Cơ chế Caching trong Next.js

Next.js tự động mở rộng hàm fetch gốc của JavaScript để cung cấp hệ thống Data Cache mạnh mẽ trên server. Dữ liệu được fetch sẽ được lưu trữ qua các yêu cầu render và các lần deployment khác nhau cho đến khi được revalidate.

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

Server Actions trong Next.js là gì? Làm thế nào để xử lý form submission và validate dữ liệu an toàn với Server Actions?

Junior

Khái niệm Server Actions

Server Actions là các hàm bất đồng bộ (async functions) được thực thi trên server. Chúng có thể được gọi từ cả Server Components và Client Components để xử lý các thao tác ghi dữ liệu (mutations) như thêm, sửa, xóa dữ liệu trong database mà không cần phải tự mình tạo các API Route riêng biệt (/api/...).

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

Làm thế nào để tối ưu hóa hiệu năng tải trang (Performance Optimization) cho một ứng dụng Next.js lớn?

Junior

Các chiến lược tối ưu hóa hiệu năng trong Next.js

Để đảm bảo ứng dụng Next.js đạt điểm số cao trên Lighthouse và mang lại trải nghiệm mượt mà cho người dùng, Junior developer cần nắm vững các kỹ thuậ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...
2051

Giải thích mục đích và cách sử dụng Middleware trong Next.js. Nêu một ví dụ thực tế về việc ứng dụng Middleware trong bảo mật.

Junior

Mục đích của Middleware trong Next.js

Middleware cho phép bạn chạy mã trước khi một yêu cầu (request) hoàn toàn được hoàn thành. Dựa trên request đến, bạn có 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...
2052

Mục đích của async pipe là gì?

Junior

AsyncPipe thực hiện subscribe vào một observable hoặc promise và trả về giá trị mới nhất mà nó đã phát ra (emitted). Khi một giá trị mới được phát ra, pipe này sẽ đánh dấu component cần được kiểm tra thay đổi (change detection).

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

Tôi có cần Promise cho Vuex không?

Junior

Có, Vuex yêu cầu Promise. Nếu các trình duyệt bạn hỗ trợ không triển khai sẵn Promise (ví dụ: IE), bạn có thể sử dụng thư viện polyfill như es6-promise thông qua npm hoặc yarn.

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

Ký hiệu Theta (Theta Notation) là gì?

Junior

Ký hiệu Theta (Theta Notation)

  • Ký hiệu Theta được sử dụng để cung cấp một cận cho một thuật toán cụ thể sao cho nó có thể bị "kẹp" giữa hai hằng số (một cho giới hạn trên và một cho giới hạn dưới) đối với các giá trị đủ lớn

Alt text

2055

Cấu trúc dữ liệu Stack là gì và độ phức tạp thời gian của các thao tác cơ bản ra sao?

Junior

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