How to choose your first programming language

Everyone has to start somewhere and of course that applies to programming, too. But getting started in programming puts you in front of one important question right at the start: What language should I start with?

There’s a gazillion of languages that are fitted for beginners. Some of them may prove to be your tools of choice even when you’ve gathered some experience. Others, well, won’t.

So how do most people choose their first language? Simple, they don’t. They let someone else tell them what to use. That could be their computer sience professor (which may be good or bad), their boss (probably bad) or “that friend who really knows computer stuff” (wich is almost guaranteed to be bad).

If your choice of a language is only based on one persons views, it’s not unlikely that this person will have a very subjective opinion about the “best language” for you. So I think the first thing to do is to ask more people. In times of the web, this should not be a problem. Just go to any website where programmers hang around (like stackoverflow.com) and start asking. They won’t eat you for breakfast. Most of them actually like to answer these kind of questions because it gives them the opportunity to promote their favorite tools.

Which leads you to the next problem: How can you tell wether the guy who just told you to learn “LanguageX” because it’s “the bestest of them all” is not just a fanboy of “LanguageX”? You can try the following steps, all with one single person:

  1. Ask, why you should use LanguageX. You’ll probably get more than enough answers.
  2. Ask, what the drawbacks of LanguageX are.
  3. Ask, what language does the things mentioned in step 2 better.

If the guy is unable or not willing to provide satisfying answers to questions 2 and 3, he’s probably just a fanboy and you shouldn’t pay much attention to him.

Repeat this with some more people. You’ll notice that you will get very different answers from different people but that’s OK. The whole point of this is to learn what the highlights and pitfalls of all these languages are. Any modern programming language probably “works” for anything you may want to do as a beginner but it can be very disappointing to discover major drawbacks later on after you’ve become used to it.

Of course this is not guaranteed to result in THE PERFECT CHOICE™ but it may help you get started with a lot less pain and a lot more fun because it’s just awesome to discover later on that the tool, that you started out with can still do the job for you.

After having said that, I suggest, you learn Piet because it’s just super incredibly cool and perfect in every aspect with no drawbacks at all. Period. Just look at what you can do with it

Saying “I know <programmingLanguageX />.” is like saying “I can drive a car”.

It says nothing about wether you’re a professional race driver or if you crash at least once a year.

— This especially applies to languages that are easy to get into.