How to be a Benevolent DictatorIntroduction to System.Enum

The VB.NET Salary Gap

September 17th, 2007

What are they putting in your wallet?Have you ever wondered what the salary difference is between a VB.NET and a C#, C++ or Java job? I did a little research on this tonight, courtesy of, the job listing aggregation site I have in my sidebar. What I found really wasn’t all that surprising but it was interesting none the less.

The Gap

We’ll start off with what I found: A VB.NET programmer is worth roughly $6000 less a year than a comparable C#, C++, and Java programmer. This gap holds true across all job levels, entry level, mid-level, and senior. Here are screen shots of the aggregate numbers: VB.NET Jobs Aggregate Salary C# Jobs Aggregate Salary

So, Should You, and I, Learn C#?

Over all, I think this salary gap is a perception thing. The management who sets the salary levels probably is comfortable with looking at VB code and thinks because it’s readable it must be easy. Likewise, they see a few curly braces and semi-colons in C#/C++/Java and think, “Oh, this must be hard.” Ultimately, it’s our job as VB programmers to show them that our skills and ability are on par with the others. That is certainly one of the goals I have in minds with this site.

Should you switch to C#? Well, that’s really a personal decision, but I think that there is great value in being comfortable in coding in either VB.NET or C# within the .NET framework. At the core, they really aren’t all that different. Outside the Framework, it is always helpful to your career and general programming skill to know multiple languages. Who knows when a Java or C++ algorithm might be helpful to your VB.NET application? Knowing how to translate it would be quite helpful to you.

My approach is going to be to always be in learning mode. If I’m learning something new, whether it’s in VB or C# or another language, I think I’m headed in the right direction. What’s you’re take on this? Is the potential for a $6k a year worth switching exclusively to C#? Leave me a comment and let me know.

Share This Article: These icons link to social bookmarking sites where readers can share and discover new web pages.
  • Digg
  • Reddit
  • StumbleUpon
  • Technorati
  • DotNetKicks
  • DZone

Entry Filed under: Personal Development

Rate This Article:

Not That GoodCould Be BetterOKGoodGreat (4 votes, average: 3.5 out of 5)
Loading ... Loading ...

22 Comments Add your own

  • 1. frizzo  |  September 17th, 2007 at 3:47 pm

    Check out the link at from a couple of years ago.

    One of the reasons to learn C# is the money, according to a study back then.

  • 2. jfrankcarr  |  September 17th, 2007 at 4:01 pm

    Thanks Frizzo

    Yes, as the article you linked says, “Perception is Reality”.

  • 3. Ian Suttle  |  September 17th, 2007 at 4:57 pm

    I believe this is more than a perception issue. As a manager one typically finds VB.Net engineers come from a VB background including ASP, VB6, etc. This doesn’t mean the engineer isn’t smart or good at their job, but it might indicate a lack in experience from a quality object oriented perspective. In the end it comes down to the needs of the employer and the position.

  • 4. jfrankcarr  |  September 17th, 2007 at 5:20 pm

    Thanks Ian

    I still think we’re talking perception though. A programmer who did ASP/VBScript and VB6 a few years ago might successfully repackage themselves as a C# programmer and they’re suddenly seen as knowing OOP, even if they really don’t. Likewise, a programmer like myself who has been practicing OOP as much as possible in VB since VB4 will probably get stereotyped as lacking a “quality object oriented perspective.”

    I do agree that it should come down to the person and how well they match the position and company’s needs. Just don’t depend entirely upon a quick scan of a resume to make this choice.

  • 5. Denny Ferrassoli  |  September 17th, 2007 at 10:36 pm

    I find it funny that there’s a difference. They both use the same framework and a lot of code (not syntax) is exactly the same. I used to code in VB.NET, took a new job and started C#.

  • 6. jfrankcarr  |  September 17th, 2007 at 11:28 pm

    Thanks for your comment Denny,

    I’ve been flipping back and forth between them some myself. It is fairly easy to pick up one after having done the other.

    I do think it’s mostly perception that causes the gap but, after I thought about it some, Ian may have a point about skill level. After all, as many badly coded VB6 apps as I’ve seen it wouldn’t be surprising to see bad VB.NET, or even C#, programs from the same programmer(s).

  • 7. Shannon  |  September 18th, 2007 at 8:30 am

    Some good points raised, Another interesting thing would be to see the difference between VB.NET and C# Salaries at different points around the world. I’ve noticed here in London, since moving here the bar is about the same, its quite possible to get £30,000-£80,000 in both C# or Vb.NET and the only preference seems to be with what the company uses.

    At the same time, where I’m orginally from (Perth, Australia), C# is miles ahead of VB salary wise.

  • 8. jfrankcarr  |  September 18th, 2007 at 8:56 am

    Thanks Shannon

    There is a lot of regional variation, no doubt, as well as variation according to employer. The numbers I gave are US only numbers and an average of all 50 states. Remember they are averages, not absolutes, so it’s quite possible to find VB.NET jobs for more and C# jobs for less.

  • 9. Tim  |  September 18th, 2007 at 9:08 am

    The reason for the gap is in your own comment:
    “Outside the Framework, it is always helpful to your career and general programming skill to know multiple languages. Who knows when a Java or C++ algorithm might be helpful to your VB.NET application? Knowing how to translate it would be quite helpful to you.”

    It is assumed that if you know C#, you probably HAVE done some C++ or Java, or that you could easily pick it up because the syntax is so similar. If you sit a C# programmer in front of Java code they are going to be completely comfortable with the syntax. That is NOT necessarily the case with a VB programmer.

  • 10. jfrankcarr  |  September 18th, 2007 at 11:25 am

    Hi Tim

    That’s an interesting point. Yes, there is a perception out there that if you know VB you only know VB but this isn’t the perception about most other languages.

    My observation is that many mid to senior level C# programmers are simply repackaged VB6 or Classic ASP programmers. They probably had done some JavaScript but no significant Java or C++ prior to taking up C#, at least not since college.

  • 11. Mazhar Hasan  |  September 18th, 2007 at 1:46 pm

    Hi! I will agree with TIM’s point, yes that may be a reason why C# devs are getting more $$$. But i agree with you on this point that one should stay open to port him self as Denny said above, both languages use same framework so what is there to hesitate? Although i am not a .NET champ like you guys, but i m still open to C# and VB, i often help and teach my fellows C# while i develop my applications in VB :) becasue i feel more comfortable with VB as i am using that since my school time with GWBasic and QBasic.

  • 12. jfrankcarr  |  September 18th, 2007 at 3:45 pm

    Thanks Mazhar

    I don’t really care which language is used myself but when a company has an investment in VB or VB.NET code and programmers they want to stick with it. This can make building credible and marketable C#/C++/Java experience difficult for some.

    I do like working in VB myself since that’s what I’ve mainly done since 1993 although I’ve been the lead on some projects that had parts being done in C++ and Java.

  • 13. Jeremy Weiskotten  |  September 19th, 2007 at 11:56 am

    It might be partly a perception thing (C#/Java is harder than VB.Net) but I think it comes down to simple free-market economics. Like supply and demand, where low supply and high demand drive prices up, a low supply of programmers and high demand for those programmers will drive salaries up. Likewise, a large pool of talent without demand for that talent will drive salaries down.

    I don’t know for a fact, but I suspect that there are more C# and Java projects than there are VB.Net projects. And there might be more VB.Net programmers than there are C# programmers (given the enormous number of VB6 programmers who likely migrated to VB.Net).

    There are anomalies, like Ruby on Rails, which, while quickly gaining popularity, isn’t as common as .Net or Java, but because it’s new the talent pool is relatively small. This keeps Rails programmers pretty well paid.

  • 14. jfrankcarr  |  September 19th, 2007 at 1:18 pm

    Thanks for your comment Jeremy

    The general industry observation, at least from around 2005, was that most VB6′ers were moving to C# or Java/LAMP if they weren’t sticking with VB6. VB.NET wasn’t that popular of a destination. I’m not sure how much this has changed since although I suspect the numbers have ticked up slightly for VB.NET.

    Of course, marketing perception has a big impact on the free market and VB is often seen as the “old and busted” vs. “the new hotness” of C#, Ruby on Rails and others.

  • 15. sustain  |  September 20th, 2007 at 1:37 am

    do yourself a favor, learn both — they are 98% the same.

  • 16. jfrankcarr  |  September 20th, 2007 at 6:03 am

    Thanks Sustain

    It would be nice if employers took the same view as you did.

    I agree one should learn both although I think the syntax differences and other language specific features account for more differences than just 2% even though under the hood it’s all the .NET Framework.

  • 17. Alastair Revell  |  September 29th, 2007 at 10:48 pm

    I think the market perception is that C# programmers will have wider experience, although given how close VB.NET and C# actually are, I believe this will be increasingly difficult to maintain in the future.

    Looking back in time, at one point it certainly could be assumed that C++ programmers would have much more experience than their VB counter-parts (although there were plenty of exceptions), for reasons similar to those expressed earlier.

    I suspect that the origins for this perception are pretty ancient - possibly going back to Dartmouth BASIC in 1964, which was conceived as a training language to FORTRAN. Indeed, Niklaus Wirth’s Pascal (arguably a training language) has suffered some derision too (eg: “Quiche eaters use Pascal”).

    My blog article Language Convergence observes that the current trend (certainly amongst .NET languages) is for languages to become increasingly similar, which obviously suggests that there should be little difference between the salaries paid to developers of the same experience level in the future, since they can easily jump ship.

    I would agree that a good number of VB6 programmers have moved directly to C#, probably because C# continues to demand higher salaries…!

    As an employer, my question to a potential employee is: “How many languages can you program in?”

  • 18. jfrankcarr  |  September 30th, 2007 at 10:31 am

    Thanks Alastair,

    You have several good points.

    It is possible that we will see a salary convergence as well as a language convergence in the future. This might be particularly true where a company has a VB.NET code base and, to get sufficient programmers, they have to hire some who have a strong C# background or vice versa.

  • 19. Bharat Jain  |  December 27th, 2007 at 6:52 am

    Either VB or C#, it hardly matters, it’s your attitude toward programming that matter.
    Be best in what you do and you will get what you deserve.
    To be a good speaker you need not be good in English, if you speak good in Spanish, there are lot many people who will convert you work to English, what you speak should be sensible.

  • 20. Charl  |  April 10th, 2008 at 6:54 am

    You are all on the right track here regarding perception.
    Perception created by marketing creates a larger demand for a language or product which in turn creates a supply of “new” C# developers!

    Further to this the wheels of salary will turn someday to some extent!


    Well, due to the large proportion of companies now requiring C# will mean slowly but surely a lack of supply in VB6 and VB.NET programmers which in turn will mean when the time is right you may be able to get way more $$$ as an old VB programmer HOWEVER bear in mind that demand will be small but lucrative at that time in yrs to come to have your skills brushed!

    A great Example is the old Cobol mainframe programmers who are earning very well due to the lack of supply in their very tight banking and other large corporate niches!

    Till then develop in whatever pays well at the time or whatever makes you happy(C#, F#, Charl#) and if you get in early as in any market (gold,stock,property,new language taking off) and at the correct timing then you will be generously rewarded

    Having said this im only getting into C# now (late!)

    Cheers all

  • 21. Dr. Charl  |  April 10th, 2008 at 6:57 am

    one thing i forgot to mention was…

    Did anyone notice who the big pusher of C# were, and did you also notice how many abundant examples, tutorials, videos suddenly started springing up in C#.

    Another thought is “Does this change in languages from vb to c# generate large new revenue streams where the old ones were becoming too stable and perhaps even declining?”


  • 22. John  |  May 11th, 2008 at 9:32 am

    I’ve been programming in VB for 12 years (3 years .NET) and am going to learn C#.


    Not for higher pay, but because there are about 6X’s more jobs requiring C# over VB.NET.

    C# = Job Security!

Leave a Comment


Required, hidden

Some HTML allowed:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Trackback this post  |  Subscribe to the comments via RSS Feed

Visit Me At My New Site, Programming In C#

Most Popular Articles

Highest Rated Articles


Most Recent Articles


 Subscribe in a reader

To subscribe by e-mail
Enter your address here

Delivered by FeedBurner

VB Opportunities