What is the best programming language to learn if one's only previous background is in beginning vb, but no intermediate or advanced vb is available?

+10  A: 

The best transition for you would probably be VB.NET as you would be comfortable with the syntax yet you would be able to work with a more powerful language and library framework.

Andrew Hare
+2  A: 

I would recommend C#. Don't be temped to go to Vb.Net, because not only it is really ugly (ok, this is my personal opinion), but also I think Vb.Net could be a bit misleading and C# seems to be more popular.


I would suggest to get into, it is comprehensive to start with and endless in possibilities. That would get you through a decent number of examples, all varying in the method so you can get a good grasp of all the things you can do with it.

+1  A: 

It seems to me that the best to learn would be to continue learning the VB, although if it is not VB .NET to move on to VB .NET. The reason for this is simply because VB is the language that there is some familiarity with.

Although really, choosing a programming language does depend on the project and goals of the program, so it should depend more upon the ultimate goal of what is to be programmed than skills. Once you know one language it is fairly easy to switch between them.


You can start with and once you are very good in it you can check out some c# code (Its pretty easy too) and c# is very similar to java. And so if you are interested you can learn java too :)

+3  A: 

if you feel like you a beginner on vb, then i dont see a problem on making some effort on learning c# you can become a beginner in c# also very fast

Oscar Cabrero
+12  A: 

There is no best language to all depends on what you are trying to do.

If web apps-there are multiple languages that share the same style but different syntax:

C#, Perl, Java,

When it comes to drivers and low level programming:

C and C++ is preferably more attractive

I started with VB also when I got into writing code, but instead of the common idea to move to instead of C#, I moved to C#. Because C# to me syntax looks easier on the eyes, but that's just
my preference. So a person can not say that would be better choice for someone that came from VB instead of C#, Java, Perl, or Python. But keep in mind that the good thing about high-level languages is that once you know one; you know them all, just different syntax. only thing left is to learn the pros and cons of them.

Different syntax is also not a problem. You'll be up to speed in a matter of hours. It's the libraries that usually take the most time getting used to. You'll waste time finding equivalences that you knew from your previous environment, and you'll reimplement what already exists.
Wouter van Nifterick
Different syntax not a problem - true, but for some people it can be that's why the text is boded
My comment was mostly meant as an addition to yours. I did vote you up.
Wouter van Nifterick
C#, Perl, Java, Why is perl in that list? I mean, is pretty different syntactically, but perl isn't remotely the same kind of language in any way.
Matt Briggs
+15  A: 

I'd go to Python. It's a lovely language to use, and very well documented for beginners.

+8  A: 

I would suggest Python. From a syntax perspective you will find it very similar to VB. Python was created as a teaching language so it is very easy to learn. Going this route will also introduce you to scripting languages and let you think outside the box more.

+1  A: 

The best programming language, offering the best solution your needs and is the most convenient software development. However, we think you know VB, C# would be a better choice.

+1  A: 

Previous experience shouldn't be an issue, just as language you end up using isn't an issue. I'd say it's more important to think about what you're interested in, what tools you have available, what you would like to accomplish, and realistically what your aptitude is. Some people are saying VB.Net and C#, but if you don't have access to Visual Studio w/o paying for it, it might not be worth it to you. If money is an issue, you're probably better off with Java since so many tools are free. As a programmer, you'll eventually want to know many languages and paradigms, and if you start with the harder or easier languages and/or environments, there's always pros and cons for both. If you start with VB.Net because the learning curve will be the easiest, you'll one day wish you had a stronger background in lower level programming. And if you start with C++ to get a more solid low level background, you'll at times regret it because of the steep learning curve. It's all a matter of preference. In my opinion, I'd recommend the following:

C# if you have access to the latest Visual Studio and supporting tools. .Net is growing in great directions and there are a lot of great frameworks for all types of common tasks/projects.

Java if you don't have access to Visual Studio...simply because everything will be free and Eclipse is a good environment to work in with tons of free plugins for whatever you might want to get into.


You can use .net ! There you can develop things in So you can re-use your existing knowledge.

The Impact of the languages on the market is also relevant to make a decision. Java/JEE offers a platform which a very high business impact. You should also look at C++, Python etc.

C# is a stolen Java. The syntax is mostly equivalent. If can learn one of them, you can write both.

Martin K.
+1  A: 

I went from BASIC -> VB -> C++ (and everything else).

Don't be put off by people who bad mouth VB or similar langauges... they may make valid points, but it doesn't really matter where you start from. Once you know how to program some language the rest is easy, its more about learning "how to learn effectively" than learning the language itself, and with the internet the way it is today its easier than ever... Googling for tutorials or specifications will typically reveal more than enough to learn a new language.

I'd recommend anyone to learn C++ and assembler on your target platform, its a great learning experience since it exposes you to how things work on a low-level and gives an appreciation of mechanisms like garbage collection or dynamic typing that is difficult to attain when your language of choice provides you these things on a plate.

To be honest though learn what you want to learn... it really depends on what you want to program. :)


First, forget BASIC. Don't be discouraged from the following quote:

"It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration." -- Edsger Dijkstra

Then, learn a programming language. I will do the same as the other posters here and list my favourites, in order: Common Lisp, Haskell, Scheme, Python, Clojure.

+1  A: 

I'm going to reccomend C#. You may find that down the line you wish to switch languages, this is relatively easy once your have learned to think about problems in a logical way. In my option C# provides a very easy way of starting out, with an easy to setup development environment and some excellent drag and drop tools that really make you feel like you are making progress early on. Other languages may look simpler but you will be hard pressed to find one that has you developing useful GUI apps in such a short space of time.

Jack Ryan
+1  A: 

You can also watch and learn VB.Net as you know the sintax of VB, but keeping in mind that you should learn C# because is CLR Native; once you grasp the basis of VB.Net it would be easier to learn C#

Jhonny D. Cano -Leftware-
+2  A: 

Depends on what you want to do with the language. If you want to be in the .NET domain learn C#, it's a properly designed language, although bloated with features. You can also give Python with IronPython a try.

With Delphi getting popular recently I can recommend it too. Pascal was my first language and I think it's decent for learning programming.

If you want to learn more advanced programming concepts look into Scheme, Python, Haskell etc.

You can also give Java a try, I think beginners tend to get a better grasp of OOP with it. But it may be frustrating.

+2  A: 

If you are still a beginner with VB, why give up on it so soon?

You didn't specify if you are a beginner with VB6 or VB.NET.

If it's VB6, I would definitely suggest you move on to VB.NET. You'll be free to do just about the same things you did with VB6, but with better controls, smarter IDE, and the posibility/options to really do a lot cooler stuff as you are ready.

Jumping from VB6 to C#, while that may be a wise business move, isn't really the most obvious jump, especially if you're still just beginning.

VB syntax is somewhat unique, but the basic concepts and constructs are very similar to almost all other languages.

I would suggest sticking with VB for a while longer. ... at least until you consider yourself confident with a healthy handful of general programming concepts that you have been able to put to use through VB.

There's nothing wrong with keeping some aspects of your work flow in a comfort zone. Sticking with VB can be your comfort zone while you continue pushing yourself to learn more about general programming concepts.


Go for something very different to get yourself a new point of view, a functional language like Heskell or Clojure or a logical language like Prolog for example.

Benjamin Confino

I've found that for a lot of people, the easiest language to transition to from VB is REALbasic. Its syntax is quite similar to VB, but the language itself is much more object-oriented. It's also much easier to get started with than VB.NET and the .NET framework.

Paul Lefebvre

If you are looking for a more advanced version of Visual Basic there is none. The only thing I can think of would be XNA for C# if you want to make games.

if you want to go deeper into games than C# I suggest C++ with the Dark GDK on it (its free)

But there are many other languages like COBOL (for commecial data programs for buisiness) , FORTAN (for maths and scientific programs) , ADA (for real time systems , robots , machines things that require quick processing) , ALGOL (General Purpose) , BBC Basic (for begginers and casual programmers) , COMAL (learning to program , good for brushing up on your general skills) , HTML (Creation of web pages) , JAVA (Internet programming , online games) , LOGO (Learnig programming) , PASCAL (Learning to program) , PROLOG (Artificial Intelligence programming)

Of course all of those are specifically designed for their purpose unlike Visual Basic which is a general purpose programming language (like C++ and C# too)


As someone who started with Basic>VB>

I'd recommend ANY language where alot of the low level details are not taken care of(C,C++,Assembly ...others). Vb is great for some tasks, but if you get used to using all the easy tricks, it becomes much harder to go back later and try to learn memory allocation/pointers/some aspects of Oo design etc.

Chromableed Studios
+1  A: 

Depends on what you want.

For Career: Look at jobs in your area (or where you'd like to live) and see what seems to be in most demand. is great for that - search for java, c#, in your zip code. If you go .net, c# is usually the better way to go for job availability and higher salary. Also, it would obviously be a bit easier to learn .net than something like java if you already have vb experience.

For Fun: Like someone else mentioned, Python - what a beautiful language. I played with php and ruby; both good, but Python just seemed more enjoyable to write in.

+1  A: 

Learn Rebol with it you can easily create DSL to learn C#, Java etc.

Rebol Tutorial

Personally, I would go for a language that has a good grounding in OO functionality if your background is in procedural languages such as VB. As others have said, Java or C# would be 2 good choices, because they will not bog you down on things like pointers. Additionally, C# will allow you - further on down the track - to do some cooler stuff such as things like lambda expressions, Iterators, LINQ, ect. But a 'C Style' language with object orientation will provide you with the most flexibility to learn other languages down the track if you would like.

However, I would choose the one that YOU want to write programs in the most, because realistically, new languages will also have new concepts, and for a new language to feel "normal", will take some time. and the best way to do that is to chuck yourself in the code of the applications that YOU want to learn about, either by copy/paste, or working through exercises. Which may even be C or C++, but i would hazard a guess that most of the developers here that have replied with crazy languages like prolog, have already learned c, or C++ or java or whatever beforehand. Documentation is a key here also. Whatever you choose, make sure there is lots of hard-copy books on the language that contain edited, well laid out and explained code. I would not recommend javaScript, PHP or Perl, based on what i have seen in documentation around the web. Related fields are also important. say for instance if you wanted to learn topics like concurrent programming, web services, RPC etc. you would want the examples to be in the language of your choice too. :)


Stick with one language until you learn it fully. Be it C# (C Sharp) because its community is growing faster compared to Visual Basic. It’s modern, and very much fun. You can do games, databases, applications with it. Go to and download free Download Visual C# 2008 Express Edition. Then go to and start learning. The tutorial is very easy for fresh beginners. Stick with the tutorial until you finish whole. Learn topic by topic and never skip a single sentence. Never ever give up until you learn the language. After learning one language you will not ask this question. And after that learn C++ and/or python (it’s free) if you prefer to be a professional.