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

Quy trình TDD (Test-Driven Development) hoạt động như thế nào qua vòng lặp Red-Green-Refactor và những lợi ích cốt lõi của nó đối với lập trình viên Junior là gì?

Junior

Test-Driven Development (TDD) là một kỹ thuật phát triển phần mềm trong đó bạn viết Unit Test trước khi viết mã nguồn thực tế (Production Code). Quy trình này giúp định hình thiết kế phần mềm ngay từ giai đoạn đầu.

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

Async Unit Testing trong JavaScript/TypeScript hoạt động ra sao và làm thế nào để tránh các lỗi phổ biến liên quan đến Promise và Asynchronous code?

Junior

Trong các ứng dụng Enterprise hiện đại, hầu hết các business logic đều xử lý bất đồng bộ (Asynchronous) như gọi API, truy vấn cơ chế Cache, hoặc đọc ghi file. Việc viết Unit Test cho async code đòi hỏi sự hiểu biết về Event Loop và cách test runner xử lý Promise.

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

Nguyên tắc FIRST trong Unit Testing là gì? Hãy phân tích từng tiêu chí và cho ví dụ về việc vi phạm nguyên tắc này trong dự án thực tế.

Junior

Nguyên tắc FIRST là tập hợp các chuẩn mực vàng do lập trình viên huyền thoại Robert C. Martin (Uncle Bob) đúc kết nhằm xây dựng một Test Suite chất lượng cao, chạy nhanh và đáng tin cậy trong các dự án Enterprise.

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

Value Types (Struct, Enum) và Reference Types (Class) trong Swift khác nhau như thế nào và tiêu chí lựa chọn nào cần áp dụng cho ứng dụng Enterprise?

Junior

1. Sự 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...
680

Optional Chaining và Optional Binding (if let, guard let) trong Swift hoạt động như thế nào và best practices khi xử lý giá trị nil trong ứng dụng thực tế?

Junior

1. Cơ chế hoạ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...
681

Closure trong Swift là gì và cách sử dụng Capture List để tránh lỗi Memory Leak (Retain Cycle) khi làm việc với các tác vụ bất đồng bộ?

Junior

1. Bản chất của Closure

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

Extension trong Swift là gì và những điểm cần lưu ý khi áp dụng Extension để mở rộng chức năng của các kiểu dữ liệu có sẵn?

Junior

1. Định nghĩa và Tính 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...
683

Giữa Delegate Pattern và Closures trong Swift, khi nào nên sử dụng phương án nào để truyền dữ liệu giữa các View Controller?

Junior

1. Delegate Pattern

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

Sự khác biệt cốt lõi giữa INNER JOIN và LEFT JOIN trong SQL là gì và lập trình viên cấp độ Junior thường gặp những cạm bẫy nào khi sử dụng chúng?

Junior

Bản chất cơ chế hoạt động

  • INNER JOIN: Chỉ trả về các bản ghi có sự khớp nhau (matching rows) ở cả hai bảng dựa trên điều kiện kết nối (ON clause). Nếu không có bản ghi tương ứng ở bảng bên phải hoặc bên trái, dữ liệu đó sẽ bị loại bỏ hoàn toàn khỏi kết quả.
  • LEFT JOIN: Trả về tất cả các bản ghi từ bảng bên trái (Left Table) và các bản ghi khớp từ bảng bên phải (Right Table). Nếu không tìm thấy bản ghi khớp ở bảng bên phải, các cột tương ứng từ bảng bên phải sẽ nhận giá trị NULL.

Cạm bẫy phổ biến của lập trình viên Junior

  1. Đặt điều kiện của bảng bên phải vào mệnh đề WHERE thay vì ON: Khi sử dụng LEFT JOIN, nếu bạn đặt bộ lọc WHERE right_table.status = 'ACTIVE', vô tình điều kiện này sẽ biến LEFT JOIN thành INNER JOIN vì các giá trị NULL được sinh ra từ LEFT JOIN sẽ bị loại bỏ bởi mệnh đề WHERE.
  2. Hiệu năng truy vấn kém do thiếu Index: Khi thực hiện JOIN trên các cột không có Index, Database Engine sẽ phải thực hiện Nested Loops hoặc Hash Match tốn rất nhiều tài nguyên CPU và I/O.

Ví dụ minh họa

-- Sai lầm phổ biến biến LEFT JOIN thành INNER JOIN
SELECT c.customer_name, o.order_id 
FROM customers c 
LEFT JOIN orders o ON c.id = o.customer_id 
WHERE o.status = 'PENDING';

-- Khắc phục đúng bằng cách đưa điều kiện vào mệnh đề ON hoặc xử lý NULL
SELECT c.customer_name, o.order_id 
FROM customers c 
LEFT JOIN orders o ON c.id = o.customer_id AND o.status = 'PENDING';

Lưu ý kinh nghiệm thực chiến

Luôn xác định rõ chiều dữ liệu chính (Main Entity) trước khi viết câu lệnh JOIN. Đảm bảo các cột tham gia điều kiện ON đã được thiết lập Index đầy đủ để tối ưu hóa Execution Plan.

685

Tại sao việc sử dụng toán tử LIKE với ký tự đại diện ở đầu chuỗi (như '%abc') lại làm suy giảm hiệu năng nghiêm trọng trong SQL và cách khắc phục?

Junior

Bản chất cơ chế hoạt động

Khi bạn thực hiện tìm kiếm với mệnh đề WHERE column_name LIKE 'abc%', Database Engine có thể tận dụng B-Tree Index vì nó biết rõ chuỗi bắt đầu từ đâu và tiến hành Index Seek hiệu quả. Ngược lại, khi sử dụng LIKE '%abc' hoặc LIKE '%abc%', ký tự % ở đầu buộc hệ thống phải quét toàn bộ Index hoặc toàn bộ bảng (Full Table Scan / Index Scan).

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

Sự khác biệt giữa câu lệnh TRUNCATE và DELETE trong SQL là gì? Khi nào lập trình viên nên chọn loại nào trong môi trường sản xuất?

Junior

Bản chất cơ chế hoạt động

  • DELETE: Là một câu lệnh DML (Data Manipulation Language). Nó xóa dữ liệu từng dòng một và ghi lại từng thao tác vào Transaction Log. Cho phép sử dụng mệnh đề WHERE để xóa có điều kiện, kích hoạt các Trigger liên quan và có thể Rollback nếu nằm trong một Transaction.
  • TRUNCATE: Là một câu lệnh DDL (Data Definition Language). Nó hoạt động bằng cách giải phóng các trang dữ liệu (data pages) được cấp phát cho bảng thay vì xóa từng dòng. Không ghi chi tiết từng dòng vào Transaction Log, không kích hoạt Trigger, không thể dùng mệnh đề WHERE và tự động reset lại giá trị Identity (Auto-increment) về ban đầu.

So sánh hiệu năng và an toàn

  • Hiệu năng: TRUNCATE nhanh hơn rất nhiều so với DELETE, đặc biệt trên các bảng có hàng triệu bản ghi vì nó ít tốn tài nguyên Log và khóa (locks) hơn.
  • An toàn: DELETE an toàn hơn khi cần xóa có chọn lọc và có thể khôi phục dữ liệu nếu có lỗi xảy ra trong Transaction. TRUNCATE cực kỳ nguy hiểm nếu thực hiện nhầm vì dữ liệu bị xóa vĩnh viễn và không thể Rollback trong hầu hết các cấu hình thông thường.

Ví dụ minh họa

-- Xóa toàn bộ dữ liệu bảng logs nhưng giữ lại cấu trúc và reset identity
TRUNCATE TABLE system_logs;

-- Xóa dữ liệu có điều kiện trong bảng orders
DELETE FROM orders WHERE status = 'CANCELLED';

Lưu ý kinh nghiệm thực chiến

Trong môi trường Production, không bao giờ chạy TRUNCATE thủ công mà không có sự đồng ý của quản trị viên hệ thống. Hãy sử dụng DELETE kết hợp với Batching (chia nhỏ số lượng bản ghi xóa mỗi lần) để tránh gây ra hiện tượng Lock Escalation làm treo hệ thống.

687

Tại sao việc sử dụng hàm trên cột trong mệnh đề WHERE (như YEAR(created_date) = 2023) lại làm mất tác dụng của Index và cách viết lại tối ưu?

Junior

Bản chất cơ chế hoạt động

Khi bạn xây dựng một Index trên cột created_date, cấu trúc B-Tree được sắp xếp theo giá trị thời gian thực tế của từng bản ghi. Khi bạn bọc cột đó trong một hàm như YEAR(created_date) hoặc CONVERT(VARCHAR, created_date), Database Engine buộc phải tính toán giá trị của hàm này cho mọi dòng dữ liệu trong bảng trước khi so sánh. Điều này làm cho Index hiện có trở nên vô tác dụng, dẫn đến Full Table Scan.

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

Mục đích và cách sử dụng câu lệnh COALESCE trong SQL là gì? Tại sao nó là lựa chọn tốt hơn so với hàm ISNULL hoặc IFNULL trong các kịch bản thực tế?

Junior

Bản chất cơ chế hoạt động

  • COALESCE: Là một hàm chuẩn thuộc chuẩn SQL ANSI, nhận vào một danh sách các biểu thức và trả về giá trị khác NULL đầu tiên từ trái sang phải. Nếu tất cả các biểu thức đều là NULL, nó sẽ trả về NULL.
  • ISNULL / IFNULL: Thường là các hàm độc quyền (proprietary functions) của từng hệ quản trị cơ sở dữ liệu cụ thể (như ISNULL trong SQL Server hay IFNULL trong MySQL).

Ưu điểm vượt trội của COALESCE

  1. Tính tương thích cao (Portability): Vì tuân thủ chuẩn ANSI SQL, hàm COALESCE hoạt động nhất quán trên hầu hết các hệ quản trị cơ sở dữ liệu phổ biến như SQL Server, PostgreSQL, MySQL và Oracle.
  2. Hỗ trợ đa tham số: Bạn có thể truyền vào nhiều hơn hai giá trị để kiểm tra tuần tự.
  3. Xử lý kiểu dữ liệu chuẩn xác: COALESCE tự động suy diễn kiểu dữ liệu (data type precedence) cho giá trị trả về dựa trên các tham số được truyền vào.

Ví dụ minh họa

-- Sử dụng COALESCE để hiển thị tên thay thế nếu tên chính bị NULL
SELECT employee_id, COALESCE(preferred_name, middle_name, first_name, 'No Name') AS display_name
FROM employees;

Lưu ý kinh nghiệm thực chiến

Khi thiết kế các báo cáo hoặc API trả về dữ liệu cho frontend, việc sử dụng COALESCE giúp giảm thiểu tối đa các lỗi liên quan đến NullPointerException hoặc giá trị undefined ở tầng ứng dụng, đồng thời giúp câu lệnh SQL gọn gàng hơn rất nhiều so với việc lồng nhiều câu lệnh CASE WHEN phức tạp.

689

Trong quá trình phát triển ứng dụng thời gian thực với WebSockets, tại sao việc theo dõi và quản lý trạng thái kết nối thông qua sự kiện kết nối và ngắt kết nối lại rất quan trọng đối với Junior developer?

Junior

Việc quản lý trạng thái kết nối thông qua các sự kiện kết nối và ngắt kết nối là cốt lõi trong lập trình WebSockets. Đối với một lập trình viên cấp độ Junior, việc hiểu rõ vòng đời của một kết nối giúp ngăn chặn các vấn đề nghiêm trọng như rò rỉ bộ nhớ, treo kết nối không hợp lệ và cung cấp trải nghiệm người dùng tốt hơ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...
690

Làm thế nào để xử lý việc định dạng và phân tích dữ liệu JSON khi gửi và nhận qua WebSockets một cách an toàn nhằm tránh làm sập ứng dụng?

Junior

Giao thức WebSockets truyền tải dữ liệu dưới dạng chuỗi văn bản hoặc mảng byte nhị phân. Dữ liệu JSON là lựa chọn phổ biến, nhưng việc phân tích sai cú pháp JSON có thể gây ra ngoại lệ làm sập toàn bộ tiến trình Node.js của 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...
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