Top 20 câu hỏi phỏng vấn kỹ thuật vị trí Lập trình viên ASP.NET MVC cấp Middle – by Khang Yang

Câu hỏi chia thành 4 nhóm:
Lập trình Phía Web Client
Lập trình Phía Web Server
Cơ sở dữ liệu SQL Server
Tư duy lập trình

Đây là bài viết tổng hợp các câu hỏi kỹ thuật Khang hay dùng để có thể đánh giá nhanh khả năng ứng viên vị trí Junior/Middle ASP.NET Developer. Trước đây thì Khang thích phỏng vấn bằng cách cho làm thử bài tập để review code luôn cho chính xác nhưng có nhiều lúc phỏng vấn nhanh trong 30′-45′ thì có thể sử dụng 1 số câu hỏi kỹ thuật kết hợp đánh giá kinh nghiệm và kỹ năng khác thì cũng chấp nhận được. Bộ câu hỏi update lần cuối tháng 10/2018. Vì là kinh nghiệm chủ quan nên bài viết này mục đích đầu tiên là ghi chú cho bản thân. Thứ 2 là nếu bạn hữu nào cảm thấy thích hợp có thể đọc, có thể áp dụng thử đối với đơn vị của mình thì quá tốt.

Tùy vào yêu cầu tuyển dụng / mô tả công việc mà sẽ có những thay đổi phù hợp… và độ mở cũng khác nhau. Nếu cấp độ càng cao ~Senior thì cần áp dụng cách phỏng vấn kiểu khác.

Đối với ASP.NET Core: ở mức độ Junior/Middle thì không phân biệt ASP.NET MVC và Core nhiều vì các kỹ năng tương tự 90%.

Nhóm câu hỏi Lập trình Phía Web Client

  1. Các trường hợp bạn dùng công cụ Inspector trong trình duyệt?
  2. HTTP GET vs HTTP POST?
  3. Thẻ Form trong HTML dùng để làm gì / Có thể không dùng Javascript vẫn có thể POST/GET được không?
  4. Mô tả cách viết style hoặc dùng thư viện frontend để xây dựng 1 giao diện lưới sản phẩm 3 cột nếu xem trên laptop/tablet, 1 cột nếu xem trên điện thoại
  5. Mô tả ý tưởng xây dựng 1 Grid control có hỗ trợ sort theo column bằng thư viện frontend tự chọn mà không dùng 3rd party UI Component.

Nhóm câu hỏi Lập trình Phía Web Server

  1. Mô tả cách xây dựng chức năng load data từ SQL Server lên Html table dưới View trong ASP.NET MVC
  2. Mô tả cách xây dựng chức năng upload ảnh trong ASP.NET MVC
  3. Xử lý như thế nào khi gặp lỗi Circular references (khi serialize object có quan hệ vòng)
  4. IQueryable vs IEnumerable / Vấn đề Client Evaluation trong EntityFramework
  5. Đề xuất giải pháp xử lý long running process: Gửi mail hàng loạt, Tổng hợp số liệu, …

Nhóm câu hỏi Cơ sở dữ liệu

  1. Trình bày thiết kế table cho cây đa cấp với nhu cầu truy xuất các node cấp dưới (cả trực tiếp và không trực tiếp) nhanh chóng
  2. Trình bày cách làm dữ liệu giả cho 2-3 table phục vụ demo có thể thường xuyên cập nhật, reset
  3. Làm thế nào biết được table hiện tại có phụ thuộc hay được table/view/sp khác phụ thuộc? Có khi nào không kiểm tra được không?
  4. Trình bày cách tối ưu hóa tốc độ thực thi tính năng search trong ứng dụng ở phía database
  5. Cluster Index vs Non-Cluster Index?

Nhóm câu hỏi Tư duy lập trình

  1. Có vấn đề gì nếu khi rẻ nhánh trong code mình dùng hết if và không dùng else không?
  2. Nhập 1 số thực để tìm kiếm trên 1 mảng số thực trả về số thứ tự của mảng thì thực hiện như thế nào?
  3. Nhiều khi viết module quản lý các đối tượng gồm rất nhiều thông tin, mình thấy khai báo nhiều field mệt quá và nghĩ ra giải pháp chỉ tạo 1 class duy nhất có attribute_name, attribute_type, attribute_value. Giải pháp này có vấn đề gì không?
  4. Khách hàng cần xây dựng công cụ có input là 1 file csv chứa name, age và output 1 file csv kết quả có cột email được điền vào. Dữ liệu được tổ chức trong rất nhiều file csv không theo thứ tự, cấu trúc bao gồm name, age, email, hầu như không cập nhật. Cặp name + age là duy nhất. Bạn hãy nêu ý tưởng để lập trình nhanh ra công cụ đó sao cho chạy nhanh và không cần setup database.
  5. Giả sử bạn có trong tay tập khách hàng tiềm năng. Mỗi khách hàng tiềm năng đã được ước lượng doanh thu dự kiến và thời gian bán hàng. Cho bạn có 1 tuần, bạn cần tính thử xem doanh thu lớn nhất mà bạn đạt được là bao nhiêu. Đồng đội của bạn đề xuất cứ chọn khách hàng có doanh thu từ lớn tới bé và cộng doanh thu dự kiến lại tới khi tổng thời gian bán hàng vượt quá 1 tuần thì ngưng. Bạn thấy tính như vậy hợp lý không?

Cám ơn bạn đã xem bài viết!

Trả lời

Mời bạn điền thông tin vào ô dưới đây hoặc kích vào một biểu tượng để đăng nhập:

WordPress.com Logo

Bạn đang bình luận bằng tài khoản WordPress.com Đăng xuất /  Thay đổi )

Google+ photo

Bạn đang bình luận bằng tài khoản Google+ Đăng xuất /  Thay đổi )

Twitter picture

Bạn đang bình luận bằng tài khoản Twitter Đăng xuất /  Thay đổi )

Facebook photo

Bạn đang bình luận bằng tài khoản Facebook Đăng xuất /  Thay đổi )

Connecting to %s