Top 30 câu hỏi phỏng vấn kỹ thuật lập trình viên .NET (C#) cấp Senior – By Khang Yang

Đâ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í Lập trình viên .NET cấp độ Senior. Với cấp độ này, ứng viên đã rất giàu kinh nghiệm. Và cuộc phỏng vấn này mang tính chất là trao đổi để hiểu kinh nghiệm của ứng viên đang tập trung ở đâu.

Các câu hỏi này thường được sử dụng khi phỏng vấn các vị trí lập trình viên có kinh nghiệm làm việc với hệ sinh thái và công nghệ .NET / Microsoft chung chung. Các câu hỏi này không đi sâu vào cụ thể là Web (ASP.NET/Blazor/…) hay là Desktop (UWP/WPF/…) hay sâu vào Database/Cloud vì tình huống tuyển dụng này đặt ra là vì tuyển cho vị trí Senior Dev phụ trách phần Core/Logic hoặc là đang tuyển dụng cho dự án mới nhưng requirement chưa rõ ràng

  1. Best practice khi lập trình thao tác với Datetime mà user có nhiều Timezone khác nhau.
  2. Chia sẻ 1 kinh nghiệm xử lý với trường hợp dữ liệu và input người dùng đang sử dụng các chuẩn hóa Unicode (normalization form) khác nhau?
  3. Chia sẻ 1 kinh nghiệm thực tế đã từng làm với kỹ thuật lock (mutual-exclusion lock) hay tương tự.
  4. Chia sẻ 1 kinh nghiệm thực tế đã từng làm với Reflection. Reflection hay dùng ở trường hợp nào.
  5. Bạn có best practice gì cho việc lập trình throw/handle Exception không?
  6. Chia sẻ 1 kinh nghiệm thực tế đã từng làm dùng Dependency injection.
  7. Chia sẻ 1 kinh nghiệm thực tế đã từng làm dùng Stream.
  8. Chia sẻ 1 kinh nghiệm thực tế đã từng làm với Preprocessing #if #else
  9. Chia sẻ 1 mô hình cấu trúc project trên visual studio phức tạp nhất bạn đã từng làm?
  10. Chia sẻ 1 mô hình triển khai web app phức tạp nhất bạn đã từng làm?
  11. Chia sẻ 1 số option khi làm ứng dụng có kết nối với database?
  12. Chia sẻ 1 kinh nghiệm thực tế làm với XML hoặc các ứng dụng dựa trên XML?
  13. Làm thế nào benchmark khi optimize performance của ứng dụng?
  14. Làm thế nào trace bug phát sinh bởi các 3rd party dll?
  15. Chia sẻ kinh nghiệm liên quan đến CIL (Common Intermediate Language)
  16. Có khác biệt gì giữa việc dùng file Embedded Resource và dùng file Resx?
  17. Chia sẻ tình huống phải cài đặt assembly vào GAC ( Global Assembly Cache )
  18. Chia sẻ 1 kinh nghiệm dùng .NET Standard (hay PCL)
  19. Chia sẻ 1 kinh nghiệm xử lý các assembly bị conflict version
  20. Giả sử có 1 form trên web app có 2 cascade dropdown list. Sau khi vận hành bảo trì 1 thời gian, Client báo sau khi chọn dropdown 1 (vd Product category) thì dropdown 2 (vd Product) load ra khá lâu. Sau khi kiểm tra thì mình thấy lượng data Product của 1 số category rất rất rất lớn nên ajax lấy về khá lâu. Đề xuất giải pháp với Client.
  21. Giả sử khách hàng cần tích hợp đến 1 web service nhưng chỉ cho phép IP nước Mỹ có thể truy cập. Site production của khách hàng nằm bên Mỹ nhưng để team có thể dev được ở Việt Nam thì giải pháp mình là gì?
  22. Giả sử Project manager trao đổi với bạn rằng khách hàng đang muốn team mình nhận project A, code base là C#. Hiện tại project A được xây dựng và vận hành bởi 1 công ty khác. Để team mình có thể tiếp quản và phát triển tiếp, bạn đề xuất quy trình mặt kỹ thuật sẽ như thế nào? (Giả sử bạn không phải chịu trách nhiệm về hợp đồng, chi phí)
  23. Giả sử bạn mới vào công ty và được giao join vào 1 project .NET với 1 số ticket maintain & extend feature nhưng source code không có requirement/document, bạn sẽ tiếp cận để hoàn thành ticket như thế nào để kịp deadline?
  24. Trong 1 cuộc họp offline, Client có ý muốn upgrade ứng dụng .NET Framework cũ (vd: 2.0) lên version mới nhất và nói bạn cho ý kiến. Bạn sẽ đề xuất thế nào?
  25. Project bạn bao gồm nhiều Class library vì code theo kiểu modularity. Có 1 ticket cần fix 1 bug của libA.dll. Vậy khi release chỉ release mỗi libA.dll thôi hay vẫn cần các dll khác nếu như các class library khác không bị thay đổi.
  26. Project cần thêm chức năng tự động gửi mail các báo cáo dạng excel đến các Admin User của hệ thống với lịch trình nhất định. Bạn hãy đề xuất thiết kế kỹ thuật và cách deploy.
  27. Project hiện đang có 1 website public ngoài internet. Client muốn làm thêm 1 web service dành cho các desktop app nội bộ connect sử dụng. Bạn hãy đề xuất thiết kế kỹ thuật và cách deploy.
  28. Client có 2 project web và muốn phát triển để User có thể single sign on. Bạn hãy đề xuất thiết kế kỹ thuật và cách deploy.
  29. Client đang có sẵn 1 hệ thống ERP cũ với cơ sở dữ liệu Oracle, team mình nhận dự án để làm 1 website để show các phân tích báo cáo (không cần realtime) dành cho các User C-Level. Bạn hãy đề xuất thiết kế kỹ thuật và cách deploy mà an toàn với team .NET của bạn nhất.
  30. Client muốn mình đảm bảo site đó chịu được 1K concurrent users khi chạy campaign. Bạn hãy đề xuất thử kế hoạch để trả lời Client.

Dù kết quả thế nào thì thái độ là quan trọng. Ứng viên ở level cao thì phỏng vấn viên càng phải tránh những hành vi nhạy cảm như hỏi sâu tiếp vào những chỗ đã biết chắc ứng viên không có kinh nghiệm, thách đố hoặc xem thường quá trình làm việc của ứng viên. Đồng thời khi ứng viên trả lời sai thì cần có cách trả lời tinh tế về cái mình đang mong đợi từ họ.

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