Interview practice
Luyện câu hỏi trước khi gặp mentor
Question bank
Ôn tập phỏng vấn
Chọn nhóm câu hỏi, tự trả lời, mở đáp án mẫu và dùng checklist để đánh giá độ đầy đủ.
15
Câu hỏi trọng tâm
Cấu hình lộ trình phỏng vấn
Chọn role, kỹ năng bắt buộc và trình độ. Hệ thống sẽ lọc ra bộ câu hỏi kèm đáp án mẫu để ôn tập ngay.
Chọn role
Kỹ năng bắt buộc
Chọn trình độ
Plan đang chọn
Role: Frontend React Developer
Trình độ: Tất cả
Kỹ năng: JavaScript, React, Next.js, Security, Behavioral
10
câu hỏi phù hợp
0%
0/10
Tiến độ lưu local trên trình duyệt.
Prompt luyện tập
Viết ví dụ console.log có Promise và setTimeout rồi dự đoán thứ tự chạy.
Câu trả lời mẫu
Promise callback đi vào microtask queue, còn setTimeout đi vào macrotask queue. Sau khi call stack rỗng, event loop ưu tiên chạy toàn bộ microtask trước rồi mới đến macrotask.
Checklist cần có
- Nêu call stack
- Phân biệt microtask/macrotask
- Có ví dụ thứ tự log
Prompt luyện tập
Đưa ví dụ function tạo counter hoặc debounce và giải thích biến nào được giữ lại.
Câu trả lời mẫu
Closure xảy ra khi một function ghi nhớ lexical scope nơi nó được tạo ra, kể cả sau khi scope bên ngoài đã chạy xong. Nó hữu ích cho debounce, memoization, factory function và giữ state private.
Checklist cần có
- Nêu lexical scope
- Có ví dụ state private
- Nói được rủi ro giữ reference quá lâu
Prompt luyện tập
Trả lời trong bối cảnh gọi API và cập nhật UI loading/error.
Câu trả lời mẫu
Dùng try/catch quanh await, phân biệt lỗi network, lỗi business và lỗi validation. Ở tầng UI cần set loading trong finally, hiển thị thông báo rõ, và log lỗi đủ ngữ cảnh ở tầng phù hợp.
Checklist cần có
- Có try/catch/finally
- Phân loại lỗi
- Không expose lỗi nhạy cảm
Prompt luyện tập
Trả lời theo format: nguyên nhân render, cách đo, cách tối ưu, tradeoff.
Câu trả lời mẫu
Component render lại khi state, props hoặc context liên quan thay đổi. Tối ưu bằng cách giữ state đúng phạm vi, tách component, memo hóa tính toán đắt và tránh tạo object/function mới không cần thiết.
Checklist cần có
- Nói rõ state/props/context
- Không lạm dụng memo
- Ưu tiên thiết kế state tốt
Prompt luyện tập
Dùng ví dụ filter danh sách khóa học và card con.
Câu trả lời mẫu
State nên đặt ở component thấp nhất nhưng vẫn bao phủ các nơi cần đọc hoặc cập nhật. Nếu chỉ một input và một list dùng filter, đặt state ở parent gần nhất. Tránh đưa state lên global khi chưa cần.
Checklist cần có
- Nói lowest common ancestor
- Tránh global state sớm
- Có ví dụ props flow
Prompt luyện tập
Trả lời theo dữ liệu, tương tác, bundle size và bảo mật.
Câu trả lời mẫu
Server Component phù hợp cho đọc dữ liệu, render nội dung tĩnh hoặc bảo mật token server. Client Component cần cho state, effect, event handler và API browser. Tách đúng giúp giảm JavaScript và giữ logic nhạy cảm ở server.
Checklist cần có
- Nêu event handler cần client
- Nêu dữ liệu server
- Nêu bundle size
Prompt luyện tập
Đặt trong bối cảnh form admin tạo lesson.
Câu trả lời mẫu
Server Action là function server có thể gọi trực tiếp từ form hoặc client, phù hợp mutation gắn với UI. Dù vậy vẫn phải validate input, kiểm tra session/role và revalidate path sau khi ghi dữ liệu.
Checklist cần có
- Validate input
- Check auth/role
- Revalidate/redirect rõ ràng
Prompt luyện tập
Nói cách dữ liệu khóa học thay đổi sau khi admin cập nhật.
Câu trả lời mẫu
Next.js có nhiều lớp cache cho render và fetch. Khi dữ liệu thay đổi qua mutation, cần revalidatePath hoặc revalidateTag để route liên quan lấy dữ liệu mới. Dữ liệu theo user thường nên dynamic hoặc đọc ngoài cache public.
Checklist cần có
- Nêu revalidatePath/tag
- Phân biệt public/user data
- Có ví dụ admin update
Prompt luyện tập
Nêu cả nội dung markdown, video embed và admin content.
Câu trả lời mẫu
XSS là khi attacker chèn script chạy trong browser người dùng. Giảm rủi ro bằng escape output mặc định của React, sanitize HTML nếu render markdown, validate URL embed YouTube và không dùng dangerouslySetInnerHTML khi chưa kiểm soát.
Checklist cần có
- Nêu escape/sanitize
- Nêu validate URL
- Nêu tránh dangerouslySetInnerHTML
Prompt luyện tập
Trả lời theo STAR: Situation, Task, Action, Result.
Câu trả lời mẫu
Một câu trả lời tốt nêu bối cảnh cụ thể, phản ứng bình tĩnh, cách bạn xác minh vấn đề, thay đổi code/process và kết quả sau đó. Tránh đổ lỗi, tập trung vào học hỏi và tiêu chuẩn kỹ thuật.
Checklist cần có
- Có STAR
- Không đổ lỗi
- Có kết quả cụ thể