.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 trong hướng dẫn ngay hôm nay!
Trước hết chúng ta sẽ tìm hiểu xem .NET là gì và nó viết tắt cho cái gì, tại sao mọi người lại sử dụng nó v.v… Đó là các câu hỏi phỏng vấn .NET tương đối căn bản, sau đó chúng ta sẽ tìm hiểu sâu hơn về lập trình .NET với các câu hỏi nâng cao.
Mục lục
- 1. Những điều cơ bản về .NET
- 1.1. Câu hỏi 1: .NET là gì?
- 1.2. Câu hỏi 2: .NET hỗ trợ bao nhiêu ngôn ngữ?
- 1.3. Câu hỏi 3: Tuổi thọ của các mục trong ViewState là bao lâu?
- 1.4. Câu hỏi 4: ‘CTS’ là gì?
- 1.5. Câu hỏi 5: Định nghĩa ‘encapsulation’.
- 1.6. Câu hỏi 6: Điểm khác biệt giữa ‘class’ (lớp) và ‘object’ (đối tượng) là gì?
- 1.7. Câu hỏi 7: Có sự khác biệt giữa ‘debug’ và ‘trace’ hay không?
- 1.8. Câu hỏi 8: Điểm khác biệt giữa ‘in-process’ và ‘out-of-process’ là gì?
- 1.9. Câu hỏi 9: MSIL là gì?
- 1.10. Câu hỏi 10: ‘inheritance’ là gì?
- 1.11. Câu hỏi 11: Điểm khác biệt giữa ‘managed code’ và ‘unmanaged code’ là gì?
- 1.12. Câu hỏi 12: ‘int’ và ‘System.Int32’ có khác biệt hay không?
- 1.13. Câu hỏi 13: Định nghĩa ‘caching’.
- 1.14. Câu hỏi 14: ‘assembly’ là gì?
- 1.15. Câu hỏi 15: .NET có phải là OOP hay AOP framework không?
- 2. Câu hỏi ngôn ngữ lập trình .NET nâng cao
- 2.1. Câu hỏi 1: Có thể cài đặt thủ công bộ đếm thời gian ‘session out’ không?
- 2.2. Câu hỏi 2: Có thể kết hợp các ngôn ngữ khác nhau trong thư mục ‘App_Code’ không?
- 2.3. Câu hỏi 3: Tập tin ‘.dll’ là gì?
- 2.4. Câu hỏi 4: Có sự khác biệt giữa ‘stack’ và ‘queue’ hay không?
- 2.5. Câu hỏi 5: ‘boxing’ là gì?
- 2.6. Câu hỏi 6: Chỉ số của khóa chính trên bảng có thể được điều chỉnh hay thay đổi không?
- 2.7. Câu hỏi 7: Làm thế nào để xác thực dữ liệu đã có trên trang Web?
- 2.8. Câu hỏi 8: Điểm khác biệt chính giữa ‘functions’ và ‘stored procedures’ là gì?
- 2.9. Câu hỏi 9: LINQ là gì?
- 2.10. Câu hỏi 10: Có sự khác biệt giữa ‘stacks’ và ‘heaps’ không?
- 2.11. Câu hỏi 11: Định nghĩa ‘variable’ và ‘constant’.
- 2.12. Câu hỏi 12: Garbage Collector là gì?
- 2.13. Câu hỏi 13: Có thể chỉ định các sửa đổi truy cập trong một giao diện không?
- 2.14. Câu hỏi 14: ‘tuple’ là gì?
- 2.15. Câu hỏi 15: Có bao nhiêu loại chỉ mục trong .NET?
- 3. Tóm tắt
Những điều cơ bản về .NET
Đây chủ yếu là các câu hỏi liên quan đến định nghĩa bạn thường gặp trong các cuộc phỏng vấn. Vì .NET được coi là một trong những framework công nghệ khó nên tìm hiểu sâu hơn về .NET framework là điều cần thiết, mặc dù vậy, cũng đừng bỏ qua các câu hỏi căn bản.
Ưu đãi mới nhất đang hoạt động ngay bây giờ:
GET 50% OFF
DataCamp Black Friday Sale
During this DataCamp Black Friday, you can access the top-rated courses with a 50% discount. Enroll now for way less!
Câu hỏi 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.
Vậy, .NET là gì?
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 hỏi 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 hỏi 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 hỏi 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 hỏi 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 hỏi 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 hỏi 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 hỏi 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 hỏi 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 hỏi 10: ‘inheritance’ là gì?
Đây không phải là một trong những câu hỏi phỏng vấn .NET chính nhưng nó thường được hỏi vì liên quan đến .NET framework.
Inheritance (Kế thừa) xảy ra khi một lớp nhỏ hơn đảm nhận các tính năng và tham số của lớp khác lớn hơn. Lớp lớn hơn này sau đó được xem như là một “lớp mẹ” của lớp nhỏ hơn (lớp con).
Bạn cũng có thể mở rộng câu hỏi phỏng vấn .NET này. .NET chỉ hỗ trợ kế thừa đơn lẻ. Điều này có nghĩa là lớp con nhỏ hơn chỉ có thể kế thừa (inherit) từ một lớp mẹ.
Câu hỏi 11: Đ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 hỏi 12: ‘int’ và ‘System.Int32’ có khác biệt hay không?
Bạn còn nhớ về câu hỏi phỏng vấn.NET mẹo mà tôi đã đề cập? Đây là một trong những câu hỏi như vậy.
Không có sự khác biệt nhiều giữa “int” và “System.Int32”. “Int” có thể được hiểu đơn giản là một phiên bản ngắn hơn của “System.Int32”.
Câu hỏi 13: Định nghĩa ‘caching’.
Đây là một thuật ngữ quen thuộc nếu bạn đã có kinh nghiệm lập trình. Câu hỏi về “Catching” là một trong những câu hỏi phỏng vấn .NET phổ biến.
Caching (Bộ nhớ đệm) là một quá trình khi bạn giữ các tệp và dữ liệu thường được sử dụng nhất trong một bộ nhớ riêng. Vị trí riêng biệt này - bộ đệm cache - là nơi bạn có thể truy cập tất cả các tệp được chỉ định. Bộ nhớ đệm tiết kiệm cho các nhà lập trình .NET rất nhiều thời gian và tăng khả năng quản lý bộ nhớ.
Câu hỏi 14: ‘assembly’ là gì?
Assembly là nơi chứa tất cả các công cụ cần thiết để xây dựng trang web và chương trình sử dụng .NET. Một nhà phát triển có thể cần có nơi tập trung private (riêng) và shared (chung).
Câu hỏi 15: .NET có phải là OOP hay AOP framework không?
OOP (Object-Oriented Programming) nghĩa là Lập trình hướng đối tượng, còn AOP viết tắt của Aspect-Oriented Programming (Lập trình hướng khía cạnh). Vậy, .NET sử dụng cái nào?
Câu trả lời đã được ẩn ý trong các câu hỏi phỏng vấn .NET đề cập trước đó. .NET hoàn toàn là một khung OOP - các khái niệm đã đề cập như Encapsulation và Inheritance là một số tính năng chính của khung lập trình hướng đối tượng.
Đây có lẽ là một trong những câu hỏi phỏng vấn .NET framework thú vị nhất. Tuy nhiên, câu trả lời đã khá rõ ràng nếu bạn biết sự khác biệt giữa OOP và AOP.
Câu hỏi ngôn ngữ lập trình .NET nâng cao
Hãy nhớ rằng từ “advanced” (nâng cao) không có nghĩa, bạn phải là một chuyên gia lập trình .NET hơn 20 năm mới trả lời được. Nó đòi hỏi bạn thực sự đã sử dụng .NET, chứ không chỉ nghe nói về nó, để trả lời các câu hỏi phỏng vấn .NET nâng cao.
Câu hỏi 1: 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 hỏi 2: 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 hỏi 3: Tập tin ‘.dll’ là gì?
Bạn có biết cảm giác khi chơi trò chơi yêu thích và đột nhiên có ý tưởng tuyệt vời để chỉnh sửa nó, nhưng lại phát hiện ra một loạt các tập tin “DLL” bị mất sau khi quá trình sửa đổi hoàn tất?
Tập tin DLL là những tập tin cần được ẩn. Đây là thuật ngữ viết tắt của “Dynamic Link Library”. Các thư viện này rất rộng lớn, chứa một lượng lớn tệp và lệnh. DLL cũng có thể được chia sẻ giữa các chương trình và ứng dụng khác. Đây chỉ có thể là một phần nhỏ trong các câu hỏi phỏng vấn .NET nhưng lại tạo ra một sự khác biệt lớn.
Câu hỏi 4: 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.
Câu hỏi 5: ‘boxing’ là gì?
Boxing là một quá trình khi bạn tạo các đối tượng từ các loại giá trị nhất định. Các quy trình này là ẩn.
Đây là một trong những câu hỏi phỏng vấn .NET có thể có câu hỏi mở rộng sau đó, có thể là “unboxing là gì?”. Nói một cách đơn giản - unboxing là quá trình ngược lại của boxing.
Câu hỏi 6: Chỉ số của khóa chính trên bảng có thể được điều chỉnh hay thay đổi không?
Câu trả lời sẽ là không.
Câu hỏi 7: Làm thế nào để xác thực dữ liệu đã có trên trang Web?
Client-side validation (Xác thực phía khách hàng) được nhiều người coi là cách tốt nhất để xác thực dữ liệu từ trang web. Lý do chính là bạn không cần sử dụng bất kỳ tài nguyên nào để đạt được điều này - người dùng ghé thăm trang web chính là những người giải quyết quy trình này.
Câu hỏi 8: Điểm khác biệt chính giữa ‘functions’ và ‘stored procedures’ là gì?
Mặc dù hai tính năng này có nhiều điểm khác biệt và câu hỏi phỏng vấn .NET kiểu này có thể khiến bạn rơi vào “bẫy” và dễ trả lời sai. Features (Tính năng) có thể thực hiện một số nhiệm vụ khác nhau, trong khi stored procedure (quy trình được lưu trữ) chỉ được thiết kế cho một nhiệm vụ duy nhất.
Câu hỏi 9: LINQ là gì?
LINQ (Language Integrated Query) là một truy vấn tích hợp ngôn ngữ. Đây là một mô hình do Microsoft tạo ra với cú pháp cụ thể riêng. LINQ dựa trên ngôn ngữ lập trình C # và có thể được triển khai như một thư viện sang các ngôn ngữ coding khác.
Câu hỏi 10: Có sự khác biệt giữa ‘stacks’ và ‘heaps’ không?
Có – stacks lưu trữ các loại giá trị, trong khi heaps lưu trữ các loại tham chiếu.
Câu hỏi 11: Định nghĩa ‘variable’ và ‘constant’.
Một variable (biến) là một nơi trên máy tính nơi dữ liệu được lưu trữ. Mỗi biến có một loại dữ liệu được chỉ định. Các biến có một tên cụ thể được gán cho chúng.
Constants (hằng số) gần như giống với các biến ngoại trừ việc chúng có các giá trị cụ thể gắn liền với chúng,không thể thay đổi.
Ví dụ về hằng số:
const int interestRate =73;
Đây là một trong những câu hỏi phỏng vấn .NET yêu cầu bạn thực hành một số kiến thức coding, vì vậy đừng quên nâng cao kỹ năng cho bản thân!
Câu hỏi 12: Garbage Collector là gì?
Garbage collectors (Gom rác) là những công cụ đặc biệt trong .NET được thiết kế để giải phóng không gian không sử dụng và do đó làm cho framework chạy và hoạt động nhanh hơn.
Công cụ có thể được truy cập bằng lệnh System.GC.Collect()
Câu hỏi 13: Có thể chỉ định các sửa đổi truy cập trong một giao diện không?
Giả sử rằng câu hỏi liên quan đến các công cụ sửa đổi truy cập mục thì câu trả lời là không, Vậy tại sao? Đơn giản vì giao diện luôn được ở chế độ công khai.
Câu hỏi 14: ‘tuple’ là gì?
Tuples (Bộ dữ liệu) là bộ sưu tập các loại dữ liệu cùng loại hoặc khác nhau. Các kích thước của bộ dữ liệu luôn được cố định (1 - 8) - nhà phát triển phải áp dụng kích thước mà họ muốn tại thời điểm khai báo “declaration”.
- Dễ sử dụng
- Cung cấp nội dung chất lượng
- Minh bạch giá cả
- Chứng chỉ miễn phí sau hoàn thành
- Tập trung vào các kỹ năng khoa học dữ liệu
- Thời gian học tập linh hoạt
- Thiết kế đơn giản (không có thông tin không cần thiết)
- Khóa học chất lượng cao (ngay cả khóa miễn phí)
- Đa dạng tính năng
- Chương trình nanodegree
- Phù hợp với doanh nghiệp
- Chứng chỉ hoàn thành trả phí
- Được tạo dựng tốt trong ngành
- Đa dạng các tính năng để lựa chọn
- Các khóa học trình độ đại học
- Các khóa học trình độ đại học
- Phù hợp với doanh nghiệp
- Trả phí cho chứng chỉ hoàn thành
Câu hỏi 15: Có bao nhiêu loại chỉ mục trong .NET?
Có hai loại chỉ mục - chỉ mục cụm clustered và chỉ mục không phân cụm non-clustered.
Bạn có biết?
Bạn đã bao giờ băn khoăn nền tảng học online nào tốt nhất cho sự nghiệp của bạn chưa?
Tóm tắt
Trong hướng dẫn này, chúng ta đã nói về một số câu hỏi phỏng vấn .NET cơ bản và nâng cao và những gì .NET thể hiện.
Khi chuẩn bị cho cuộc phỏng vấn, hãy cố gắng tìm ra càng nhiều câu hỏi khác nhau càng tốt. Dần dần, bạn sẽ thấy các câu hỏi nghe tương tự nhau và thậm chí còn dễ hơn.
Điều đó là bởi vì bạn đã trải nghiệm nhiều dạng câu hỏi khác nhau và bộ não dần ghi nhớ thông tin dễ dàng hơn. Một khi cảm thấy đủ tự tin với các kỹ năng và lý thuyết thì hãy bắt đầu thực hành và áp dụng những gì bạn biết về lập trình .NET và các ngôn ngữ lập trình khác với các khóa học và trang hướng dẫn tại BitDegree.