How to Pick a Programming Language

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.

How to Pick a Programming Language

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.

The Job You Want

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.

Your Specialty

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:

R

Scala

Python

So by looking at your speciality first you have just narrowed down the list of languages from thousands… down to three.

Specialty Based Mapping

Since I find this approach to be the most effective, let’s walk through a mapping of development specialties to popular languages.

Full stack development. If you want to be a full stack developer, the Ruby on Rails stack may be the best choice for you. This stack offers a great set of tools for web developers and allows for the build out of robust applications.

Front end development. For front end developers the path to follow resides on the JavaScript track. The JavaScript programming language has emerged as the clear winner in the front end development space. And by becoming fluent in JavaScript you will be able to work with the popular front end frameworks such as React and Angular.

Server side development. The world of server side development can be a bit intimidating. If you review the server side languages you’ll discover lower level languages such as C, C++, and Java. However programming languages such as Ruby, Python and Go also specialize in server side development. Through my programming journey I have worked to specialize in one interpreted language and one compiled language. I chose Ruby for my interpreted language. And for my compiled language I started with C, however I haven’t found very many practical uses for my C knowledge through the years. And I have moved onto the Scala language since it is a good fit for building big data algorithms.

Summary

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.