Take the 2-minute tour ×

Background: IT Recruitment in UK has absolutely exploded over the last five years and I get quite a few calls from recuiters each week with positions. One recruiter offered to put me forward for a great looking position at a great salary in the area I wanted, so I had a phone interview which went very well and genuinely expect the face-to-face interview to go well.

Unfortunately, as I do have to sift through quite a few wildly inappropriate positions I either confused two job descriptions or simply didn't read it properly. Anyway it turns out that the job is a VB.NET developer and I am a C#/Java developer. While I'm confident I can do the job, I'm concerned that accepting it might hinder me later in my career if I ever wanted to return to C#. I'm also concerned that many of my peers are quite snobbish about VB and am not sure how popular that position is.

Actual Question(s): As as C# developer (with 4 years exp), considering accepting a position as a VB developer, in 5 years will I be able to take another position back in C# (or Java) without having to return to my current level of seniority?

Also, if anyone's actually made this transfer - was working in VB disappointing or did it feel limiting?

share|improve this question

closed as off topic by gnat, Walter, Caleb, Doc Brown, gbjbaanb May 25 '12 at 13:45


You are kind of asking us to predict the future, on a topic that's extremely localized (too many unknown factors, most specific to your personal situation and skillset). With the European economy being what it is, I think the only valid answer is: Who knows? –  Yannis Rizos May 25 '12 at 12:05
"Damage ones career because of shifting fom C# to VB.NET" - that sounds totally superstitious to me. –  Doc Brown May 25 '12 at 12:45
If you stay in the .NET eco system, and learn all the new technologies available to both C# and Basic, would that do? –  user1249 May 25 '12 at 12:57
I've gone back and forth. It's all .Net. Just sell it as you know both languages. And if possible keep a hobby project in c# to keep your skills up to date. –  CaffGeek May 25 '12 at 13:33

7 Answers 7

up vote 6 down vote accepted

I was in a similar position and after making the switch I can tell you this:

The language probably won't matter. Especially in this case because all of the ones you are referring to are using OOP principles. Take the position if you feel it's the right position for you. I would also like to add that just because the shop is mostly VB now does not mean in a few years they won't be using other languages. Where I'm at we are constantly growing from that perspective so we can use the correct tool for the job.

Regarding the question about damaging your career...honestly I would take a language agnostic developer on my team over a specialist any day. So no, I don't think any reasonable person is going to look at a good programmer and say, "Oh, we can't hire him because he used VB."

share|improve this answer
There are a number of unreasonable people out there who will reject a candidate immediately if they see VB of any type on a resume. –  jfrankcarr May 25 '12 at 13:27
@jfrankcarr - Certainly true and nobody in their right mind would want to work for someone who is that pedantic, so OP might do himself a favour by getting some VB on his resume to avoid the disappointment of learning too late that his new boss has come straight from a Dilbert comic. –  Joel Brown May 25 '12 at 13:40
@jfrankcarr - I found that prefixing VB with Objected Oriented made people think twice before making assumptions about what being a VB programmer meant. –  Mark Booth May 29 '12 at 15:00

I moved from programming MASM and C/C++ (with a little QuickBasic) to VB in 1993, moving through VB1 to VB6. I started picking up C# with the arrival of .NET although most of my programming work was in VB.NET to begin with. Recently I've been doing projects in both VB.NET and C# almost interchangeably (along with some agonizing VB6 legacy code). I've also worked on Java and PHP projects.

Having flexibility is important to some employers and they like to see someone who can code no matter what language. Other employers only want to hire somebody who's a narrow specialist and will reject someone who doesn't fit their preconceived notions, such as people who program in VB are bad programmers.

So, maintain your flexibility, always be learning and practicing and understand that you will occasionally encounter people who have a problem with your background, no matter what it is.

share|improve this answer
+1 for flexibility is attractive to some employers (I'd argue: the ones that are best to work for) –  Joel Brown May 25 '12 at 13:43

Well since VB.Net and C# use the same framework, changing from one to the other is more a question of how to write your code. I did the switch from VB.Net to C# about 2 year ago and it just toke me about 3 week to have the same level of efficiency in C# that I had in VB.Net. Last month, I had to change job and now I'm back in VB.Net. This time, it only toke about an hour to make the switch. As for the seniority level, I don't why you would go back since you already know the framework and the major difference in between the two language is how you declare your variables and functions.

In the beginning with the Framework 1.0, it was true that VB.Net was an inferior language than C#. Now these days with the changes and improvement that Microsoft put in the language over year, VB.Net is now on the same level as C#. It is true that some functionality of C# aren't available in VB.Net but the same thing can be say about C#.

If you do the switch, there is one thing you should always do, remove the Import of the Microsoft.VisualBasic namespace. That namespace contains the function of the old VB6 and it only there for backwards compatibility when VS convert old VB6 project to .Net. So using function from that namespace is like going back in time instead of moving forward.

share|improve this answer
Ahem. In case you haven't noticed, much of the improvements have gone the other way: VB.NET features and VB.NET IDE features having been carried over to C#. –  reinierpost May 25 '12 at 12:45
You're confusing the Microsoft.VisualBasic.Compatibility.VB6 namespace with the Microsoft.VisualBasic namespace. The Compatibility namespace has the VB6 backward compatible functions. The VB namespace has VB language functions. While many are redundant in C#, there are some useful functions in there for the C# developer in certain situations. –  jfrankcarr May 25 '12 at 13:25

If anything, having experience of C# and VB.Net will give you a wider range of career options in the future. It will show your flexibility, and having both skills will open doors in the future.

The only real down-side to VB.Net in comparison to C# is that its users are more likley to come from a background where they have picked up ugly practices, which can make maintainance of their code a bit of a pain. (I'm certainly not saying that all VB.Net code is all bad - just that it is more likely to be).

Apart from that (and a slightly more verbose syntax) there really is very little difference between programming in C# and VB.Net.

With your 4 years of C# already it shouldn't be difficult for you to keep up with advances in C# whilst you're in a VB.Net job. As a result, there really is nothing to loose.

For this reason, when it comes to choosing a position, I'd say that there are far more important considerations: the type of industry you're programming for, the working environment, the corporate culture of your prospective employer, how easy the commute will be etc.

share|improve this answer

I'm concerned that accepting it might damage my career by moving into a language that most of my peers consider inferior.

I completely understand you, as I'm also considering a new position where I would have to work with another language than C#, which I'm used to. I think it's very normal to be reluctant about changing programming language, because it takes you out of your comfort zone. But it's important to remember that programming is not about knowing the syntax of a language. It's about knowing the principles behind software development, how to organize and architect your code so it's easy to understand and maintain.

Regarding your actual question whether or not it would damage your career. I would absolutely say no. It's another line on your resume, and will most likely expand your experience. Sure, you would probably have to spend some time getting back to C# if you changed job again, but it's not like you have to start all over again, learning C#. I would say it's only a matter of days or a couple of weeks, before you would be back on track with C#, and be as productive as you were before.

So the bottom line must be, that you should not turn the position down because of VB.NET. Do as Kramii and others suggests and look at all the other factors, because that's what really matters, in my oppinion.

share|improve this answer

Are you talking about VB6 or VB.net? If it is VB6 I wouldn't even consider the position.

Supposing it is VB.net, if you were a C# developer, then you already know .net libraries that are the same. If you will be able to use OOP concepts, patterns, and architectural guidelines, you will use those skills in any object oriented language.

I am a Java programmer, who has worked on vb.net 2003 for 8 months. When I came back to java, I kept using the same patterns and OOP concepts a in Java 1.6.

There is always a certain amount of change even if you stick to the same language: some examples are Java 1.4 vs 1.5 and 1.6 vs 1.7.

share|improve this answer

I think that your sentence :


It is like : ehi i'm a c#/Java developer so i'm superior to all programmers that work in VB.NET ... It is an absurd and no-sense exclamation ! What kind of damage could make working in Visual Basic ?

When i started my developer careers my boss told me that a good developer is not who knows well a programming language(syntax) but that is the way of thinking that make the difference !!!

The language you use is not so important ...

share|improve this answer
I think you've read a little too much into that statement - it is simply saying that I have only worked in C#/Java development whereas this position uses a different language. The whole question is asking if C# is so different from VB that I couldn't go back. –  Richard May 25 '12 at 13:16
You couldn't go back ? If you couldn't go back you are not flexible ... I would not hire a not flexible person, in any kind of job ... –  aleroot May 25 '12 at 13:18
