Learning to program:  VB, C++ or C#?

Posted on 2011-03-24
Last Modified: 2012-05-11

I don't have a technical question, more after some advice on learning a new language.

As a complete programming beginner, which is better to learn c++, C# or VB?

Which is easier and which will give me better job prospects?

Many Thanks for all advice.
Question by:JakeSpencer

Accepted Solution

Kendor earned 125 total points
ID: 35205383
C++ is definitely the toughest to learn from all the languages you mentioned - however it is not microsoft dependent as the other two. If you really know how to program in C++ theres no problem for you to get a job, nor is it a problem to learn C#.

As a beginner I would start by learning C# it is a nice and easy to learn language. Also Java would be a good option to start with.

Assisted Solution

m_walker earned 125 total points
ID: 35205554
I am a c programmer from way back and moved into c++.  The basics for c are the same for java, php, c#.  So once you learn c++ and then try to learn/use the others then most things just make sense.   That said, I think the 3GLs are getting phased out for the 4GLs like .NET  and java and scripting like php, vbscript and jscript.

I like my old borland c++ builder.  I like to have my apps as stand alone as the can be.  single file, run of a usb and so on.  

At the end of the day I think it depends on what you want to do and access to support when needed.

If c# is easier to learn, then start there.  Try to focus on concepts more then the code.... good program design can be applied to all programming, specific code is only good for that.

When learning, start with as much non-gui as you can.  gui has a lot of drag and drop, and while easy, you are not really learning it.  It is only when you start typeing in lines of code that you start to learn.  Also do the basics.  As un-exciting as it is, write the simple hello world program.  If you think you will write a great app as your first app, it will get too hard too quick.  I still right very simply apps, just to test a single function and make sure it works as I want, or to learn how a new API works.  Then once I understand it, I then design and code the real app.

I can not stress enough the code design.  Its easy to skip this and just sit down and type code, but it can end up a mess and very hard to debug.  Sit down with a pen an paper (or visio) and use blocks to outline the program flow, then wrte a function for each block.

Good luck and remember to have fun....  
LVL 37

Assisted Solution

TommySzalapski earned 125 total points
ID: 35208128
C# and VB are just about the same. Only the syntax is very different.

If you want to be able to write scripts for Windows and MS Office, then use VB.
If you want quick development for Windows and web applications, use C#.
If you want to learn how a computer works and get a base that will help you learn any language fairly quickly, use C++.

C++ applications run faster, but if you want fancy interfaces and dialog boxes, you'll have to use some third party library. I recommend learning C++ first because C# is kind of a crutch. Learning C++ is like learning to drive a manual transmission for your first car. It'll take a bit longer to learn, but then you can drive either kind of car.
LVL 26

Assisted Solution

dpearson earned 125 total points
ID: 35211698
If you're a complete beginner you're definitely best to start with C#.  C++ is much harder and VB usage is rapidly declining so it little workplace value.

C# is relatively easy to learn and sets you up well in the current job market.

It also means you'll essentially know Java (at one time both languages came from the same root) and that's probably the #1 language for getting a job today.

But C# is also very marketable.  You won't easily get a job with C++ because there are a lot of experienced C++ devs out there and it's a language that requires a strong background - so very hard to get an entry level position with C++.  So even though it's a good language to know for finding work - it's much harder to gain entry into that world if you're just a beginner.

So from your list C#.  Otherwise consider Java (they're really similar but Java isn't Windows only).


Author Comment

ID: 35213453
Many thanks for all your comments.  A friend of mine works as a C++ programmer for a large software company.  His opinions echo dpearson's above, in that as a junior programmer I am much more likely to find a job using C#, perhaps for a company who needs to automate some of their systems, rather than a c++ programmer where I would want to work for a software company.

Many thanks again for all your advice guys.  Looks like I will try C#.

Featured Post

Master Your Team's Linux and Cloud Stack!

The average business loses $13.5M per year to ineffective training (per 1,000 employees). Keep ahead of the competition and combine in-person quality with online cost and flexibility by training with Linux Academy.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

Title # Comments Views Activity
static class 3 68
zeroMAx challenge 20 100
mapAB Challlenge 35 144
Re-position sub-options beneath the TAB 7 88
This article is meant to give a basic understanding of how to use R Sweave as a way to merge LaTeX and R code seamlessly into one presentable document.
Exception Handling is in the core of any application that is able to dignify its name. In this article, I'll guide you through the process of writing a DRY (Don't Repeat Yourself) Exception Handling mechanism, using Aspect Oriented Programming.
This tutorial will introduce the viewer to VisualVM for the Java platform application. This video explains an example program and covers the Overview, Monitor, and Heap Dump tabs.
The viewer will learn how to user default arguments when defining functions. This method of defining functions will be contrasted with the non-default-argument of defining functions.

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question