2008-08-18 34 views
6

Tôi đã là nhà phát triển VB.net được vài năm nhưng hiện tại tôi đang áp dụng cho một số công ty sử dụng C#. Tôi thậm chí đã được thông báo rằng ít nhất một trong số các công ty không muốn các nhà phát triển VB.net.Câu hỏi phỏng vấn về C# và các điểm tương đồng/khác biệt VB.net

Tôi đã tìm kiếm trực tuyến để tìm sự khác biệt thực sự giữa hai và đã hỏi về crackoverflow. Sự khác biệt lớn duy nhất là một vài khác biệt cú pháp mà là tầm thường với tôi bởi vì tôi cũng là một nhà phát triển Java.

Điều gì sẽ là một phản hồi tốt cho người phỏng vấn khi họ nói với tôi rằng họ đang tìm kiếm nhà phát triển C# - hoặc câu hỏi tương tự?

Trả lời

9

tôi đã phỏng vấn người cho một vài vị trí C# và đây là lời khuyên chung của tôi cho các nhà phát triển VB.Net phỏng vấn cho một C# vị trí:

  • Hãy chắc chắn rằng bạn là rõ ràng rằng bạn đã làm việc VB .Mạng lưới. Điều này có vẻ hiển nhiên nhưng là một cái gì đó dường như không phải là (theo kinh nghiệm của tôi).
  • Cố gắng cung cấp mẫu mã, nếu có thể. Tôi đã nhìn thấy một số VB khủng khiếp.Net (và C#) được viết bởi các lập trình viên VB dường như không học nhiều trong quá trình chuyển đổi sang .Net.
  • Có thể viết bằng C# trong khi phỏng vấn, nếu được hỏi. Tôi biết không có nhiều sự khác biệt thực sự giữa hai, nhưng tôi không muốn trả tiền cho bạn để tìm hiểu cú pháp mới.

Đối với câu hỏi cụ thể của bạn: Tôi đã hỏi loại câu hỏi đó trước và điều tôi muốn nghe là cách hệ thống và khung cơ bản giống nhau. Nếu có thể, hãy nói về bộ sưu tập rác, IDisposable, finalizers, sự nguy hiểm của các khối mã không an toàn, stack vs heap, vv Tất cả các loại công cụ để cho thấy rằng bạn thực sự hiểu những phức tạp của khuôn khổ .Net. Đúng hay sai, di sản của VB mang lại cho nó một mong đợi của một thiếu hiểu về lập trình cấp thấp hơn và cửa sổ nói chung (trong đó, trớ trêu thay, một nhà phát triển C++ sẽ có một nhà phát triển C# ... vv).

Cuối cùng, cách bạn tạo nên trải nghiệm của mình có thể tạo nên một thế giới khác biệt. Nếu bạn định vị bản thân là một nhà phát triển .Net, chứ không phải VB.Net hoặc C#, người ngu ngốc, giả mạo, banter có thể không tham gia vào cuộc trò chuyện. Điều này tất nhiên đòi hỏi bạn thực sự biết cả VB.Net và C# tại thời điểm phỏng vấn, nhưng đó là một chính sách tốt bất kể.

Sự thật của vấn đề là nếu bạn thấy rằng người phỏng vấn bạn viết bạn đơn giản bởi vì trước đây bạn đã phát triển trong VB.Net, nó có khả năng sẽ không phải là nơi bạn muốn làm việc.

2

Tôi nghĩ sự thật sẽ xảy ra về điều này:

Tôi là nhà phát triển phần mềm, cú pháp của ngôn ngữ là phần cuối cùng của câu đố. Bằng cách sử dụng tôi, bạn sẽ có được một người có kinh nghiệm giải quyết vấn đề và logic. Tôi đã có kinh nghiệm với môi trường .NET, CLR và ngăn xếp Windows liên quan, bao gồm cả máy chủ SQL và Windows. Tôi không biết cú pháp C#, nhưng, tôi được sử dụng để tiếp cận hướng đối tượng, tôi sẽ không có vấn đề nhận được hoàn toàn lên đến tốc độ trên các điểm tốt hơn của cú pháp trong vòng một vài tuần. Bạn có thể thấy từ những ví dụ về mã của tôi rằng tôi là một nhà phát triển có kinh nghiệm, tôi đảm bảo với bạn quá trình chuyển đổi sẽ liền mạch. Tôi đã bắt đầu học ngôn ngữ, tôi đã không có bất kỳ vấn đề nào cho đến nay.

3

Một số khác biệt (nghĩa là hơn đáng kể hơn so với cú pháp) mà phù hợp bắt tôi ra đôi khi:

  • VB.NET không có đại biểu vô danh
  • khối mã không an toàn đang không ở trong VB.NET
+1

VB có các đại biểu ẩn danh, đó chỉ là một thuật ngữ khác cho các chức năng ẩn danh. Những gì VB không có là các trình con ẩn danh. Tất cả các đại biểu vô danh trong VB phải trả về một giá trị. –

+0

Chỉ trong VB v9 +. Nhận xét này có liên quan đến VB v8. – DAC

1

Thực sự? Nếu bạn là một nhà phát triển Java, tôi sẽ dẫn đầu với điều đó. Một nhà phát triển Java với một số kinh nghiệm trong .NET nói chung sẽ tạo ấn tượng tốt hơn một nhà phát triển VB có kinh nghiệm với Java. Nếu bạn có thể trả lời các câu hỏi về sự khác biệt giữa .NET và Java, bạn nên có hình dạng tốt.

Tôi cũng khuyên bạn nên tìm hiểu cú pháp C# càng sớm càng tốt. Nếu bạn có kinh nghiệm với VB và Java, nó sẽ không mất nhiều thời gian.

Rất nhiều nhà phát triển gặp vấn đề với VB và những người sử dụng nó. Có hiệu lực hay không bạn sẽ phải đối phó với thực tế đó.

3

Tôi yêu C# đến chết, nhưng tôi ghen tị với các tham số tùy chọn của VB.NET. Tự động hóa văn phòng trong C# rất rất, rất đau đớn.

+4

C# 4.0 sẽ đưa các thông số tùy chọn và nhập động cho COM vào hỗn hợp, điều này sẽ làm cho mọi thứ ít đau đớn hơn nhiều. –

2

@DAC - VB bây giờ (trong .net3.5) đã hỗ trợ cho lambdas:

Function(x) x.ToString() 

Trong một cuộc phỏng vấn tôi muốn nói rằng sự hiểu biết CLR và những gì các mã thực sự làm là điều quan trọng, và bạn cũng vui khi được viết mã (giả sử bạn là).

+1

Có và không. VB có các hàm ẩn danh, nhưng không có các trình con ẩn danh. Kể từ khi xử lý sự kiện luôn luôn là chương trình con, các nhà phát triển VB bỏ lỡ ở đây. –

0

VB hoặc C# cả hai là cú pháp chỉ khác nhau nhưng nếu bạn đang áp dụng cách logic là như nhau.

2

Tôi cũng là người lập bản đồ C# cho đến chết nhưng sự khác biệt không chỉ là cú pháp. Có những nơi VB thắng tay xuống

  1. thông số bắt buộc
  2. Late binding

Làm việc với COM từ C# có thể là một mối quan hệ rất bực bội. (Đó không phải là để nói không thể!)

Các vấn đề liên quan