Câu hỏi phỏng vấn .NET Developer.
.NET framework đã trở thành một cái tên nổi tiếng và dễ nhận biết trong thế giới khung framework. Ngày càng có nhiều lập trình viên sử dụng .NET cho trong công việc vụ hàng ngày của mình. Do vậy, các công ty đang tìm kiếm những người thành thạo về .NET framework trong việc tạo ứng dụng và phát triển web. Nếu bạn đang muốn ứng tuyển vào vị trí công việc như vậy, hãy tìm hiểu các câu hỏi phỏng vấn .NET để cuộc phỏng vấn trở nên tốt đẹp hơn. Dưới đây là một số câu hỏi phỏng vấn bạn tham khảo
Các câu hỏi phỏng vấn về NET Developer
Câu 1: .NET là gì?
Nhà tuyển dụng có thể giả sử rằng:
Hãy tưởng tượng rằng tôi không biết gì về .NET. Bạn hãy giải thích cho tôi .NET là gì, .NET viết tắt của cái gì, v.v.
Người phỏng vấn muốn bạn giải thích mọi thứ trong câu hỏi phỏng vấn .NET bằng cách diễn đạt riêng của bạn. Tôi sẽ cung cấp cho bạn một số định nghĩa đơn giản, chính xác để bạn có thể đưa ra câu trả lời của mình.
''.NET'' không phải là từ viết tắt cho một cụm từ nào cả. Tuy nhiên, thuật ngữ đầy đủ phải là “Microsoft .NET”, vì Microsoft đã sáng tạo ra khung framework này.
Nói một cách đơn giản, .NET là một khung phát triển phần mềm và trang web. Nó được coi là một trong những framework tốt và đáng tin cậy. Tuy nhiên, việc học và tìm hiểu về .NET framework không phải đơn giản. Rất nhiều người yêu thích .NET vì ‘khả năng tương tác ngôn ngữ’ của nó - bất kỳ ngôn ngữ nào trong .NET đều có thể sử dụng code được viết bằng ngôn ngữ khác.
Các nhà phát triển khác đánh giá cao .NET còn là vì nó có nhiều chức năng và cài đặt sẵn.
Câu 2: .NET hỗ trợ bao nhiêu ngôn ngữ?
Tại thời điểm viết bài viết này, thì .NET hỗ trợ 44 ngôn ngữ khác nhau.
Câu 3: Tuổi thọ của các mục trong ViewState là bao lâu?
Các mục trong ViewState sẽ tồn tại cho đến khi trang mà chứa chúng ngừng hoạt động.
Câu 4: ‘CTS’ là gì?
CTS là từ viết tắt của Common-Type System (Hệ thống loại chung). Hệ thống này ra lệnh các loại dữ liệu được sử dụng trong hệ thống.
Bạn nên chú ý đến các câu hỏi liên quan đến CTS - đây là các câu hỏi phỏng vấn .NET khá quan trọng.
Câu 5: Định nghĩa ‘encapsulation’.
Encapsulation là một chức năng bao gồm các phương pháp và dữ liệu khác nhau trong một dự án. Điều này được thực hiện để đối tượng của chương trình có thể thực hiện các chức năng một cách trơn tru và không có bất kỳ lỗi nào.
Câu 6: Điểm khác biệt giữa ‘class’ (lớp) và ‘object’ (đối tượng) là gì?
Đây là một trong những câu hỏi phỏng vấn .NET dựa trên định nghĩa, câu hỏi này khá dễ nếu bạn đã quen thuộc với các ngôn ngữ lập trình .NET.
Nói một cách đơn giản, một “object” (đối tượng) là một cái gì đó xảy ra hoặc nằm trong “class” (lớp). Lớp (class) định hình đối tượng trông như thế nào, cách chúng hoạt động và loại thuộc tính nào chúng có. Đổi lại, các đối tượng hành động tương tự tạo nên các lớp đó.
Câu 7: Có sự khác biệt giữa ‘debug’ và ‘trace’ hay không?
Câu trả lời là có. Lớp Trace có thể được sử dụng để gỡ lỗi và phát hành một số bản dựng nhất định, trong khi Debug chỉ được sử dụng để gỡ lỗi.
Câu hỏi này có thể được coi là một câu hỏi mẹo trong danh sách câu hỏi phỏng vấn .NET vì bạn dễ dàng quên chức năng bổ sung của Trace.
Câu 8: Điểm khác biệt giữa ‘in-process’ và ‘out-of-process’ là gì?
Cả hai khái niệm này đều liên quan đến quản lý bộ nhớ phiên. In-process (quá trình lưu trữ trong) lưu trữ tất cả dữ liệu từ một phiên phát triển trên máy chủ web. Trái ngược với điều đó, out-of-process (quy trình lưu trữ ngoài) lưu trữ cùng một dữ liệu trên một khu vực quản lý bộ nhớ ngoài. Có lẽ một trong những khu vực lưu trữ bộ nhớ ngoài phổ biến nhất sẽ là SQL server.
Câu 9: MSIL là gì?
MSIL (Microsoft Intermediate Language) có nghĩa là Ngôn ngữ trung gian của Microsoft. Nó được sử dụng để xác định các giá trị, lưu trữ bộ nhớ và các tác vụ cao cấp tương tự khác. Mỗi mã code mà .NET sử dụng trước tiên phải đi qua MSIL.
Câu 10: Điểm khác biệt giữa ‘managed code’ và ‘unmanaged code’ là gì?
Managed code (Mã được quản lý) là một loại mã code được tạo và biên dịch trong .NET framework. Ngược lại, unmanaged code (mã không được quản lý) đến từ một khung framework xây dựng phần mềm khác và mang theo tất cả các tính năng và cài đặt của khung khác.
Câu 11: Có thể cài đặt thủ công bộ đếm thời gian ‘session out’ không?
Câu trả lời là có. Đây là một câu hỏi phỏng vấn .NET với các câu hỏi mở rộng sau đó, vì nó sẽ không chỉ dừng lại ở “có” hay “không”.
Câu hỏi mở rộng có thể là “Bằng cách nào?” Và bạn phải thực sự thực hiện và truy cập web.config.
Câu 12: Có thể kết hợp các ngôn ngữ khác nhau trong thư mục ‘App_Code’ không?
Câu trả lời là không. Tập tin bạn đang làm việc phải được viết bằng một mã code cụ thể. Bạn không thể kết hợp các ngôn ngữ coding trong thư mục.
Câu 13: Có sự khác biệt giữa ‘stack’ và ‘queue’ hay không?
Câu trả lời sẽ là có. Một cách giải thích ngắn gọn và rõ ràng có thể là stacks là LIFO và queues là FIFO.
LIFO có nghĩa là Last in, first out (“nhập sau, xuất trước”). Stack xử lý các loại giá trị theo hệ thống phân cấp từ trên xuống. Mặt khác, FIFO có nghĩa là First-in, first-out (“nhập trước, xuất trước”). Queues tuân theo nguyên tắc này và chèn các mục từ phía dưới trong khi xóa các mục ở phía trên.
Kinh nghiệm phỏng vấn lập trình viên .NET thành công
Để có thể phỏng vấn thành công vị trí lập trình viên .NET, bạn hãy nhanh tay lưu lại những kinh nghiệm sau đây.
Trước khi phỏng vấn
Để có thể đến được vòng phỏng vấn, bạn cần chuyển bị cho mình 1 bản CV mô tả kinh nghiệm, các dự án đã từng thực hiện. Đối với những bạn sinh viên mới ra trường, có thể để đồ án tốt nghiệp và các chứng chỉ, công việc parttime mà bạn đã từng làm. Bạn có thể tham khảo các mẫu CV tốt nhất tại TopCV.
Sau khi đã vượt qua vòng CV, trước khi đi phỏng vấn bạn sẽ cần lưu ý những điều sau.
Chuẩn bị kiến thức chuyên môn kỹ càng
Đối với vị trí lập trình viên .NET, bạn sẽ cần chuẩn bị kiến thức cơ bản về lập trình OOP, ngôn ngữ lập trình C#, ASP.NET MVC, Web API, Entity Framework, ADO.NET.
Ngoài những kiến thức trên, bạn cũng cần phải lưu ý thêm về:
- Kỹ năng Unit Test: Kỹ năng viết đoạn code kiểm thử mức đơn vị, trong .NET thông thường sẽ sử dụng MSUnit.
- Kỹ năng về SQL Server
- Kỹ năng quản lý Source Code
- Một số Design Pattern
- Kiến thức về Frontend
- Tối ưu hóa code, cách viết code sạch
Trong quá trình phỏng vấn
Trong quá trình phỏng vấn, ngoài việc trả lời những câu hỏi chuyên môn về vị trí lập trình viên .NET, bạn sẽ cần phải lưu ý thêm một số điều sau:
- Lựa chọn trang phục phù hợp cho bản thân
- Nên thể hiện thái độ tự tin khi phỏng vấn để nhà tuyển dụng có thể tin tưởng hơn vào những câu trả lời của bạn
- Tìm hiểu trước thông tin cơ bản của công ty trước khi đi phỏng vấn
- Nên chuẩn bị trước 1 đến 2 câu hỏi để hỏi ngược lại nhà tuyển dụng khi nhận được câu “Bạn có thắc mắc gì về công việc/Bạn có thắc mắc gì với công ty không?”
- Gửi lời cảm ơn đến người phỏng vấn sau khi hoàn thành buổi phỏng vấn. Điều này sẽ thể hiện sự chuyên nghiệp của bạn
Câu hỏi phỏng vấn
Có sự thay đổi nổi bật nào trong .NET Framework 4.6.2 không? Tại sao lại bao gồm những thay đổi này?
↳
Có rất ít thay đổi/ bản vá lỗi trong .NET Framework 4.6.2 và các phiên bản mới hơn không tương thích hoàn toàn với các phiên bản .NET cũ. Các bản sửa lỗi này chỉ được bao gồm khi cần để đảm bảo bảo mật, tuân thủ những tiêu chuẩn phổ biến trong ngành hoặc để hiệu chỉnh sự không tương thích trước đó.
Ngoài ra, có một số bản sửa lỗi được bao gồm trong những phiên bản này sẽ chỉ được bật nếu bạn chọn viết lại ứng dụng cho những phiên bản đó. Những thay đổi này được gọi là những thay đổi tái định hướng mục tiêu.
Chính sách Vòng đời cho các phiên bản khác của .NET Framework là gì?
ODBC là gì?
ADO là gì?
Sự khác biệt giữa ODBC và ADO là gì?
Tuổi thọ của các mục trong ViewState là bao lâu?
‘CTS’ là gì?
Định nghĩa ‘encapsulation’?
Điểm khác biệt giữa ‘class’ (lớp) và ‘object’ (đối tượng) là gì?
Có sự khác biệt giữa ‘debug’ và ‘trace’ hay không?
Điểm khác biệt giữa ‘in-process’ và ‘out-of-process’ là gì?
MSIL là gì?
‘Inheritance’ là gì?
Điểm khác biệt giữa ‘managed code’ và ‘unmanaged code’ là gì?
‘Int’ và ‘System.Int32’ có khác biệt hay không?
Định nghĩa ‘caching’ là gì?
‘Assembly’ là gì?
.NET có phải là OOP hay AOP framework không?
Có thể kết hợp các ngôn ngữ khác nhau trong thư mục ‘App_Code’ không?
Tập tin ‘.dll’ là gì?