Mail Bag: What programming languages should I learn?

March 17th, 2010

After answering a fellow reader, I thought an appropriate post would be great for other readers as well.

Q: I started C a few days ago, and I think I'm doing well with it as a first programming language. Is it recommended to learn many programming languages? And what should I know in order to learn programming better?

A: When I first started programming, there wasn't an abundant amount of programming languages for me to pick from. I didn't know any better and wasn't exposed to anything but BASIC, QBASIC, and Apple Basic.

Quite a selection, huh?

Nowadays, there are so many languages to pick from that companies are tapping into each and every one of them.

Just to give you an idea of how many popular programming languages there are, check out Sporcle's "Can you name the most popular programming languages?" quiz.

Here is a step-by-step blueprint for mastering various programming languages:

  1. Pick a programming discipline
    Decide whether you want to develop web technologies, server development, or write desktop applications.
     
  2. Select a language related to you discipline
    Pick a language that is related to your discipline and start learning it. For example, you wouldn't learn COBOL when your discipline is web development. Hardly a popular language for web pages.
     
  3. Research your craft
    Find every blog, article, magazine, and podcast dedicated to that language and learn. Just because you are out of school doesn't mean that you stop learning!

One you have a solid understanding of your language of choice, branch out and examine other programming languages that are related to your discipline.

For example, if you decided to follow a web discipline and picked Microsoft .NET with C#, another language to complement your C# skills would be to start learning JavaScript since they are so close in syntax.

Once you master one language, the techniques and syntax start to meld together. A for..next loop looks the same in C++ as it does in JavaScript...and C#. The idea of associating one language's syntax with another is what will launch you into the stratosphere of languages.

One of my philosophies I've always had with programming is to always know at least two programming languages. Two reasons to follow this approach:

  1. If one language turns into a fad and fades into existence, you can always fall back on your second language to get by until the market improves.
  2. While you are in a job using your primary language, take the time to learn your secondary language.

If you continue to increase your programming skills and learn additional programming languages, your skills will be in demand and you won't need to worry about the market.

Do you have any advice for our reader? Post your comments below and let's discuss!