What is the best programming language to learn these days? this is a question that I hear all the time and this question usually generates all sorts of responses, both good and bad. The reality is that when people ask that question they do it for different reasons and so there is no right answer. Programming languages are like people, they are all alike but yet unique. For someone new to programming I recommend learning about programming without picking a programming language, at least not from the start.

Programming in a hackathon

Learn about programming before picking a programming language

Learning about programming is much more than just learning a programming language. Programming is about finding solutions to a problem and you do this by performing tasks such as understanding and analyzing these problems to find the right solution for these problems. There are many things to be learned about programming that do not require the commitment to a programming language, start with that, learn about logic, computing, and start by playing with some programming languages once you understand the concept of programming.

When you are ready to learn your first programming language or are already a software developer and perhaps are looking to learn a new programming language just for fun, then I recommend you just start playing with a dynamic language and a static one.

Static or dynamic Languages

If you are new to programming, let me explain the difference between static and dynamically typed languages. In short, a statically typed language is where the type of a variable is known at compile time, this means that you as a programmer must specify the type of each of your variables as it is the case in static languages such as C, C++, C#, Java, etc… In dynamic languages the majority of its type checking occurs during runtime as opposed to compile-time. As a programmer, a dynamic language allows you to move a bit faster as you don’t have to specify the type of your variables, etc.

Marketability of programming languages

If instead you are looking to increase your marketability, then here is some data to help you decide. The numbers below are changing constantly, however the general position for all programming languages listed below is very consistent. All of the data from the chart below came from digging in the number of current job openings in the Unites States for the specified programming languages in the following job listing sites: Indeed, Dice, LinkedIn, StackOverflow Careers.

Number of Job openings by programming language in the U.S.

One programming language that has become popular in recent years is JavaScript. In the past, JavaScript was mostly used as a utility language and most programmers used it to compliment (and hack) their user interfaces. With the increase of HTML5 apps and the many JavaScript based frameworks, this programming language has become more relevant and the number of companies (and startups) looking for experienced JavaScript developers has increased, a lot.

Currently, JavaScript is the second most popular requested skill in programming jobs posted in the largest job search engines out there in the United States.

Conclusion

If you are looking to learn a programming language to increase your chances of being hired, look at the chart above, keep monitoring the demand as it might change in the future AND learn at least one static programming language such as C# or Java and one dynamic language such as JavaScript, Python or Ruby.

A good programmer is the type of person who is always learning, and enjoys doing it. Most programmers I know are highly skilled with one programming language but familiar with most. Knowing a bit about multiple programming languages gives you the flexibility to learn and become more experienced with certain languages when you have the need. For example, for many years I was a Visual Basic developer until the day came when most job openings from companies working with .NET technologies where looking for C# developers, I started looking at the language, tried to create a few simple programs and eventually got a job as a C# developer.
After getting into C# I started to learn PHP and JavaScript as I ran across a few projects that needed that expertise. Learning these programming languages wasn’t hard, it was mostly teaching myself to do things differently, discovering and taking advantage of each of these languages’ capabilities and features instead of complaining or getting stuck on its differences.

Today, I try to keep myself current with some of the newer programming languages and frameworks, it is our duty as professionals to stay current and as challenging as this is, learning is always enjoyable. If you have any thoughts or questions about the chart above please leave a comment below.