What Programming Language Should I Learn?

What Programming Language Should I Learn?

One of the most common questions I get from new programmers starting out in the field of software development is which programming language they should learn

For some aspiring developers, this question ends up being a stumbling block they never get over.

Today I want to talk about "What Programming Language Should I Learn?"

I have been coach several programmers who were always second-guessing themselves or changing their minds, jumping from programming language to programming language, always worrying about making the wrong decision. They stress over the question, “What programming should I learn?”.
If you’ve stressed over this, then this post is for you.

Let me dive into the main talk
1. The Actual Language Doesn’t Matter All That Much: Yes you heard me right. There are several reasons I make this statement, but one of the main ones is because so many programming languages, at their core, are very similar. Yes, the syntax is different. Yes, programming languages may look different. They may even have completely different sets of features.
However, at their core, all programming languages share more than you might first suspect. Almost all programming languages will have:
  • Basic constructs for branching
  • Basic constructs for Looping
  • Calling methods or procedures
  • A way to organize code at a high level

Many programming languages are so similar that if you know one language, you almost already know the other. C# and Java are pretty good examples. JavaScript is very similar to both of those.
Learning your first programming language is always the most difficult. Once you learn a programming language, though, learning a second one is easier. After you know two or more programming languages, each additional programming language is exponentially easier to learn.

Not only are programming languages more similar than you might think, but you’ll also easily be able to switch to a different programming language and learn it later on. That means, even if you learn one programming language and decide it’s not the right one, or you get a job where you’d be using a different programming language, it’s not a big deal. You’ve already done the hard work of learning your first programming language.

Considerations for Picking a Programming Language

Therefore, I really don’t think it matters all that much what programming language you decide to learn first when you're looking to become a software developer, but if you are still having some trouble making a decision, here’s a list of 5 things to consider:
  • Job prospects and future
  • Technology that you’re interested in
  • Difficulty level
  • Resources available to you
  • Adaptability

1. Job Prospects and Future

I’d say, for most of you,the most important thing to consider is what jobs a particular programming language is likely to help you get and what the future of that language is. Now, for most popular programming languages, at any given time there are going to be plenty of jobs available. Different programming languages may rise or fall in popularity, but if you are concerned with job availability, you might want to consider one of the main, popular programming languages.

If you are just starting out, I’d try to stick to something a bit more mainstream. Another consideration to take into account, along with job prospects, is what the future is likely to hold for the programming language you are considering. At the time of writing this book, Objective-C would probably not be a good choice of a language to get started in, simply because most iOS developers are switching to Swift, and Apple is heavily investing in the Swift programming language.
  • C#
  • Java
  • Python
  • Ruby
  • JavaScript
  • C++
  • PHP
There is no shortage of jobs for developers who program in one of these languages. That said, depending on where you live in the world, you may need to be a bit more selective if you aren’t willing to relocate. 

2. Technology That You Are Interested In

One excellent consideration when picking a programming language is simply what technology you are interested in. If you start with a technology, the programming language choice may be easier.

I know plenty of developers who are interested in developing Android apps because they love the technology. For most of them, Java is going to make sense because that is the native language in which to develop Android applications. (Although, you could also develop Android applications in many other languages, like C#, Ruby, and even JavaScript.) 

It definitely doesn’t hurt to pick your first language based on what you are most interested most, because learning your first programming language can be difficult. The more you are interested in and excited about what you are learning, the easier it will be to stick with it and get through the difficult parts of the learning curve.
Don’t be afraid to pick a programming language based on what excites you or what you are interested in. Your enthusiasm can carry you through the rough patches in the learning process.

3. Difficulty Level

Some programming languages are just much more difficult to learn than others.
I usually don’t recommend starting out by learning C++ because, in comparison to many other programming languages, C++ is rather difficult to learn. C++ has you dealing with managing memory and pointers and quite a few other nasty constructs that can throw a beginner for a loop. It’s a great language—still one of my favorites—but not the easiest one to learn.

A language like C#, Python, Ruby, or PHP is going to be much easier starting out.There are even beginner languages specifically tailored to learning programming, like Scratch or Basic.
I don’t want to discourage you from learning a more difficult language like C++ if that is what you really want to do, but you should at least know what you are getting into and decide if you’d rather your first language be something easier.

4. Resources Available to You

you also might want to consider what resources are available to you for learning a programming language. Some obscure programming language may not have as many books, online videos, or other resources available, which might make them more difficult to learn. Other more popular programming languages may have plenty of tutorials online, boot camps you can enroll in, and books and other resources you can utilize. So, be sure to look into how many and what resources are available out there for you.
You can learn JavaScript online through your web browser without installing anything on your computer. While this isn’t as big of a concern today as it used to be since there are so many resources for beginners out there, it’s still something to take into consideration.
A language like C++ will require downloading some tools and software, which might not be easy to do or as easily available. For the final resource, I’d consider looking to the people you know. Who can you turn to for help? Is there someone that can answer your questions if you get stuck or help accelerate your learning? I certainly wouldn’t make resources the biggest consideration to take into account when choosing your first programming language, but it’s still one you should contemplate.


5. Adaptability

Finally, let’s talk about adaptability.
Different programming languages are going to be more adaptable to different situations and technologies.
For example, the C# programming language is one of the most adaptable thanks to companies like Microsoft and Xamarin (now part of Microsoft). If you learn C#, you are not just constrained to Windows or web programming. C# is available on just about every platform today, so it is highly adaptable. You can use C# to write Linux and Mac applications, and you can even write Android and iOS applications, completely in C#.

Plenty of other programming languages are also highly adaptable. For instance, Ruby has been ported to many different platforms and is used in quite a few areas of technology. JavaScript is also highly adaptable. You can even use JavaScript to control Arduino boards and do robotics.

Other programming languages are not as adaptable. If you learn R or Go, for example, you are going to be a bit more restricted to the technologies and platforms those languages were designed for.
More and more programming languages—especially popular ones—are being ported to more platforms and used in a variety of different technologies, but there are still some that are not as versatile.

So, if you think you might want to be a web developer today but do Android development tomorrow, or you want to get involved in a bunch of different platforms or technologies, you might want to consider how adaptable the language is you are trying to learn.

Some Final Thoughts on Picking a Programming Language 

Even Though i have been able to discuss some of the considerations to make before picking a programing language i want to still let you know that picking the programing language is not the big deal What is important is that you pick something and stick with it long enough to get through the learning curve required to gain proficiency. Plenty of programmers who are just starting out get frustrated because they feel like they are just not getting it.


Still, know that Today’s programming is done at a higher level. Programming today involves utilizing libraries and frameworks much more than language features.

Sure, it’s important to know a programming language—and to be good at it—but absolute mastery just isn’t as valuable a skill as it was. That is why I say don’t worry about that looming question, “What programming language should I learn?”. Just make sure you do learn one and stick with it—at least for now.