We have discussed the importance of picking a development specialty, such as front end, server side or mobile. However, simply choosing a specialty is not enough. You also need to decide on what programming language you want to focus on. No book or guide can tell you what language you should learn. That’s a decision that can be made only by yourself. So in this guide my goal is to help you decide how to pick a programming language based on your long term objectives.
If you went through the exercise for picking your developer specialty, you will notice a similar pattern for deciding on a programming language. A quick perusal of Wikipedia will reveal that there are literally thousands of programming languages to choose from. If you take the approach of looking at each language one at a time you might be able to make an informed decision sometime in the next hundred or so years.
Since iteratively going through the full list of languages isn’t practical, I recommend two processes for helping you decide how to pick a programming language.
First on the list is basing your programming language choice on the job you want. If you’ve heard the phrase, “dress for the job you want”, it also applies to development. For example, if you want to work for Microsoft or with Microsoft based products it wouldn’t make sense for you to spends years learning Python and Django. Instead you will want to focus on learning the .NET development stack and languages such as C#.
This strategy can be smart in certain cases, such as with Microsoft since there are countless .NET framework positions available on the job market. This means that even if you can’t get hired on with Microsoft, you can still get a job for an organization that utilizes the .NET stack.
However this approach doesn’t work quite as well for more specialized languages and companies. For example, imagine that you spend years learning Facebook’s flavor of PHP, codenamed HipHop. If you fail to get a job working for Facebook you will discover that not very many companies utilized the HipHop framework and your job opportunities will be limited.
I view this approach as a bit risky because it tends to place all of your eggs in one basket.
My personal favorite approach is to pick a language that fits in with your development specialty. I’m partial to this strategy because it’s what I used in my development journey and it worked quite well for me.
Deciding how to pick a programming language based on your development specialty means that you look at the types of applications you want to build. And then you work backwards to put together a list of languages that are best suited for your objectives.
For example, let’s take the case study of you deciding that you development specialty is going to be building big data applications. My taking this approach you can dramatically narrow down the list of programming languages that fit with your goals. Many languages can perform big data processing, but only a few languages truly specialize in it, such as:
So by looking at your speciality first you have just narrowed down the list of languages from thousands… down to three.
Since I find this approach to be the most effective, let’s walk through a mapping of development specialties to popular languages.
In summary, as with picking your development specialty, my recommendation to aspiring students is to experiment with a number of languages before deciding on which ones to learn extensively. There are a number of tools online that make it helpful to see a side by side comparison for various languages. For example, one of the deciding factors that led me to learning Scala was looking through the Scala algorithm implementations on Rosetta code. So don’t rush into picking out a programming language. Give the decision plenty of thought and research and you will put yourself in a better position for making the right choice.