What programming language should I learn first?

What programming language should I learn first?

Jakhongir Rakhmonov

This is one of the most frequent questions I get from the new programmers who are just starting out. They are usually worried and stressed about making the wrong decision. In this post, I will dispel some of your doubts and then give you some really practical considerations for choosing your first programming language.

Memes save the world

It does not matter

I will repeat that again so that it sinks in. What language you learn does not actually matter as much as you think it does.

Let me explain.

The most important reason why I say this is that a lot of programming languages are very similar at their core. It is true that the syntax is different. It is true that they may look differently. They may even have completely different sets of features.

However, at their core, all those programming languages share more than you might suspect.

For example, they all have constructs for looping, conditional statements, branching, calling methods or procedures and the like.

There are even a few programming languages that are so similar that if you learn one, you almost know the other. C# and Java are pretty good cases in point.

This brings us to my next point: once you learn one programming language in a solid way, learning a second is easier. After you know two or more, each additional programming language is exponentially easier to learn.

This means that even if you learn one programming language and decide that it is not the right one for you or you get a job where you will be using a different programming language, it is not a big problem. You have already done the hardest part of the work of learning your first programming language. You will have much easier time switching to another one.

Don't believe me? Let me prove it to you.

This is an active vacancy at Google:

This one is from Microsoft:

See? They know that a good software engineer is not tied to one programming language and will be able switch to any other one easily.

Of course, not all vacancies are like this but most are.

Even in interviews, you can use whatever language you are most comfortable with.

Considerations to pick a programming language

You still need to make a decision. I get it and now am going to give you a few things to consider to choose your first language.

Job prospects

The most important thing to consider is if that language is likely to get you a job.

For most programming languages, there are going to be a lot of jobs available at any given time. But for your first one, you might want to go with one of the main, popular programming languages in order to increase your chances of getting a job.

At the time of writing, I think those are:

  • Java
  • Python
  • Ruby
  • JavaScript
  • Golang

(I will be expecting Kotlin and Swift developers in my DMs after this)

There is more jobs than developers available for these programming languages.

Future of the language

Another thing to consider is what the future of the programming language likely is. For example, Objective-C would not be the greatest idea because the iOS world is switching towards Swift and Apple is heavily investing in the Swift programming language.

(I will be expecting Objective-C developers in my DMs after this)

Of course, it is very difficult to predict the future unless you have a crystal ball but due diligence never hurts.

What technology you are interested in

If you start with the technology you are interested in, picking the programming language may be easier.

Love Android development? Learning Java or Kotlin makes a lot of sense.

Love iOS development? Swift is the way to go.

Backend? It is hard to be wrong here. Java, Python, Ruby, JavaScript are all good choices.

Difficulty level

Some programming languages are just more difficult to learn.

C++ is a clear example. There is memory management, pointers and other nasty constructs that may discourage beginners. It is a great language but not the greatest one for your first programming language.

Python, Ruby or PHP is going to be much easier to learn.

Resources available

Some less-known programming languages may not have a lot of books, tutorials, videos or other resources available to you. So be sure to look into if you have enough resources available for you.

Another thing to consider is whether you have a proper machine. For iOS and Mac development, you will need an Apple computer which might be too expensive.

(I will be expecting Hacintosh users in my DMs after this)

For 3D game development, you may need a computer with strong graphics card.

For JavaScript development, on the other hand, you just need a browser.

Final thoughts

I have given you some considerations to take into account when choosing your first programming language. But I want to stress this out again. The actual language is not important that much. What is important is that you choose one language and stick to it until you gain some proficiency. Then, it will get easier. I promise.


Report Page