Chapter 49. How to Choose Your Next Programming Language?

We have discussed the importance of picking a development specialty, such as frontend, 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 for the initial, or next, stage of your career.

No book or guide can tell you what language you should learn next, of course. That's a decision that can be made only by your. So, in this chapter my goal is to help you decide how to pick a programming language based on your current 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 hundreds 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 next 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 utilize the HipHop framework and your job opportunities will be limited. I view this approach as a bit risky because it tends to place all 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 your development specialty is going to be building big data applications. By 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 specialty 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.
  • Frontend development: For frontend developers the path to follow resides on the JavaScript track. The JavaScript programming language has emerged as the clear winner in the frontend development space. And by becoming fluent in JavaScript you will be able to work with popular frontend 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.
  • The data scientist: The world of data science can appear at first sight to have impossible demands on a developer to also be a high mathematician. However, if you explore the modern Python libraries, you'll find a rich set of ready-made algorithms so you can be creating your own neural networks and machine learning systems very quickly indeed. I'd recommend Python for this reason if you're already familiar with the language. If you have a bit more of a statistical background, then I'd recommend that you explore further how the R language can get a gateway into a new career path.

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 over the years. Also, I have moved onto the Scala language since it is a good fit for building big data algorithms.

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.144.86.134