By John Sonmez October 18, 2016

Top Programming Languages To Learn In 2017

A lot of people ask me about what programming languages they should learn. I found myself in a difficult situation because this is a very hard question to answer.There are a lot of things that need to be taken into account before making a decision, especially when it comes to which programming language you should learn.

One of the easiest ways to decide between which programming language to learn for 2017 is by listening to the market. The market will definitely tell you what will be the trending programming languages for the future.

So, how do you know what are the most in-demand programming languages for 2017?

According to my research, these are the programming languages you should be focusing in 2017:
– JavaScript
– Python
– Elixir
– Rust
– Swift

So… Do you agree with these? What are your thoughts? Leave a comment below!

Transcript Of The Video

John Sonmez: 

Hey, what’s up, John Sonmez from simpleprogrammer.com. I thought I would do a video about what programming language should I learn in 2016. This will probably carry over to 2017 since we’re more than halfway through 2016. I’ve had this on my board thinking about making this video, but you know, hopefully you still find it valuable.

This is sort of a tough choice because, well, if you’re a beginner and you’re trying to figure out what programming language should you learn there’s definitely some subtleties, some thoughts on that that are different than this. There are kind of 2 paths here. If you’re a beginner, what programming language should you learn in general and it being 2016 at least when I’m recording this video? Then if you’re an experienced programmer, if you want to learn a new programming language, what programming language should you learn or where should you shift your focus potentially?

First, let’s address beginners here. If you’re a beginner, if you’re starting out, you don’t know software development, you’re at this channel because you want to learn a programming language, you don’t know which programming language you should learn in 2016, well, first of all I’m going to point you to my new book. Actually, which you can sign up to get free and I have a chapter in here talking about how to decide what programming language you should learn and how to learn it. That’s probably going to be a lot more valuable than anything I’m going to say here in this short video. Definitely sign up there and check it out and you can get access to that. The full book might be up by the time you’re watching this video. You can just buy the book, if you want, but you can get free access. It’s posted on the blog and you can sign up if you sign up there.

I will address it a little bit here. If you are starting out in 2016 and you want to learn a programming language you’re going to want to weigh 2 things. I’m going to tell you when I talk about in general what programming languages are popular and what you might want to learn you’re going to want to just take that advice and you’re going to want to apply one more layer to it which is that you need something that is going to be easy enough to learn and valuable enough that it is going to get you started right away, because the biggest obstacle to success is getting started. You’ve got to overcome that. You’ve got to build momentum.

Even though another programming language might be optimal, what I mean by that is that there might be a better programming language in general for your career that you’re going to make more money or whatever, the biggest problem that most people are going to face that are trying to become a software developer is that it’s hard and they don’t hang on long enough. What ends up happening is they give up, they’re not taking action. They’re just learning. You want to be able to take action as soon as possible.

With that said, let’s talk about in general, 2016, where are we at? Surprisingly a couple of different studies I’ve seen have said that the most popular programming language for employers that employers are looking for is still Java, by a large margin. How did we find this information? By looking at job recs and seeing what jobs are available and what languages are being requested.

Java’s pretty high up there by a pretty high margin and then comes C# and C++ and then JavaScript. If you’re just thinking about, hey, what is the most universal programming language that I could learn today? Java is a really good choice.

Now, why is Java a good choice besides it being popular? Well, let’s talk about that. First of all, if a lot of employers are looking for people who have Java experience it doesn’t necessarily mean that you’re going to be writing code in Java also, right? It doesn’t stop you, it’s just that Java may be or they may have existing systems in Java. So having that background and knowing Java could get you those jobs. That’s really important. But also Java is a pretty good programming language in general, right? Why? Because it’s simpler than C++, it’s simpler than some of the more advanced programming languages. It’s not esoteric. It’s pretty standard. It’s improved a lot. It’s a very easy to use programming language. There’s a lot of libraries out there. There’s a lot of help on there. If you want to learn Java you can check out my PluralSight course. I actually created a PluralSight course on how to learn Java, it’s a 2-part course and I show you how to do that. I’ve actually got several of them. The reason why I did that as opposed to C# or other programming language is because it’s a really good language to get started and it’s fairly easy but not super easy and it’s very useful. Like I said, there’s a lot of resources and it’s valuable. In general, if you know Java, you’re going to be able to do a lot.

If you compared it to C++, I did this video on how to learn C++ or basically telling you not to learn C++ especially for beginners which you can check out here, C++ is probably a deeper skill set. It’s more valuable in general like in being a programmer because you understand a lot more complex computer science topics and computer engineering topics, but it’s more difficult.

Again, some of you that said, “Oh, well you should learn C++” I totally agree. C++ is valuable but it’s more theoretically valuable. What I mean by that is the process of learning C++ is still valuable today, but the language itself is not as valuable. It’s how difficult it is, it’s the concepts that you learn that are going to help you with every other programming language, but it’s just not a great place to start especially today when there’s many other choices there.

That takes care of Java. C# is sort of in the same boat. If I were to tell someone between C# and Java today I would probably actually tell them in 2016, even though there is more jobs that are being requested for Java that C# is probably better. If you know one, you know the other pretty much so you could pretty much pick and choose. It’s not going to be a big deal there, but the reason why C# is because Microsoft is really changing its game here in 2016. We’re seeing Microsoft adopting open source, we’re seeing it buy companies like Xamarin, we’re seeing them build iOS apps, we’re seeing Microsoft really focusing on getting C# on multiple platforms. We’ve got the .NET runtime running on Mac and Linux now and being supported and being open so C# is probably a decent choice. It’s got a lot of really good language development that’s going on actively whereas Java is a little bit slower to move although it’s been moving lately.

Let’s look at now some other in6teresting things here. What programming languages are employers necessarily looking for? Again, like I said Java, and then we’ve got C#, C++, JavaScript, but what about programmers? What do developers and programmers think? What’s going on here?

JavaScript is still really important. I think it’s going to, I think it’s fading a little bit here. It’s not as popular when node.js first came out and there was that huge, huge thing. JavaScript is still valuable. It’s valuable because it’s going to be useful in multiple situations. If you’re going to be a web developer you’re going to have to know JavaScript and it can allow you to do more than that.

It kind of depends, if you’re doing web development you’ve got to know JavaScript. You might as well start there and have that be your programming language. It’s sort of a difficult programming language to learn, there are some transitions going on here. JavaScript has become a lot better of a language but there’s still a lot of old JavaScript.

As we transition to ES6 which—ECMAScript is really JavaScript, version 6 where we’re getting a lot more functionality into it, it’s better but it’s still harder to learn in general because you’ve got this mixed up world between the old stuff and now you’ve got the new stuff and not very many people are doing the new stuff and you’ve got a lot of frameworks. I would actually avoid that now is what I would say. I would say learn a basic programming language and if you haven’t learned JavaScript already and you’re doing web development, I don’t know what you’re doing.

Now there are some interesting ones to think about here besides that which is Rust. Rust is picking up a lot of steam and it’s a very popular programming language. This is one that I would recommend more for experienced developers like if you’re a C, C++ developer and you want to pick up a new language in 2016 or 2017 even pick up Rust, Rust is really good. It’s this low level systems language. It’s more elegant, more refined than C and C++ and is a good replacement for those languages and it just keeps on picking up steam. I think this is going to be a really popular language. I think it’s going to replace some of these legacy programming languages and some systems.

Now if you’re talking mobile side now we might consider Swift. Objective-C is pretty much dead. If you know Java you’re going to build a new android development but if you want to do strictly iOS development Swift makes sense. Again though, if you want to do mobile development I might instead of learning Swift, if you don’t know it already, go the C# route because Microsoft bought Xamarin. Xamarin is a really good tool. Xamarin will let you build all kinds of apps in C#. C# is everywhere. I keep coming back to it now, but because of Xamarin, because of things like Unity3D for game development C# will definitely be useful for those.

We’ve got a few more contenders in here. F#, I wouldn’t mess with this. There’s not enough traction here. It’s an interesting language and I love the language itself, but it doesn’t make a lot of sense to me. We’ve got—we’ve got some of the languages like Scala and Haskell and stuff like that. Those are interesting but, again, not so widely used. Those would be interesting if you’re an experienced developer and you want to pick up a new language, but I might encourage you actually to look at Elixir. Elixir is sort of a new programming language that is really interesting and there’s a lot of people that are jumping onboard with Elixir because it sort of has this elegance, this expressiveness of Ruby, readability of Ruby but it’s extremely powerful and it does a lot of things right. But that’s a gamble because Elixir could go down. There’s not a huge community, but it’s starting to develop, but again, for an experienced developer.

Another great one potentially for someone starting out especially if you’re anywhere in the science or academic or image processing field would be Python. Python is a very popular programming language especially with companies like Google and it will continue to be so just because there’s so much going on in the scientific realm there. It’s an easy to learn language. The fact that it uses white space for formatting makes it very readable. If you like cleanliness in your code you might enjoy that language and find that valuable.

I’m going to go through a few more here. That’s where I stand here. What would I recommend for 2016? What are the things that are showing up here? Rust, like I said is showing up. Elixir is showing up here. Go is still gaining popularity as well. I didn’t talk about Go but Go is a good one as well especially for systems type of programming but it’s also moving to the web somewhat.

Yeah, I think that you’ve got a lot of choices here. It depends on what you want to do. Again, if you’re a beginner you don’t want to try and necessarily pick the trend. You want to pick a solid base that’s why Java is always going to be a good choice or something like C# because you’re going to get—it’s an object oriented language. You’re going to cover a lot of the concepts that you need to know as a programmer and you can branch out from there.

Once you know 1 or 2 programming languages it becomes easier. Same thing with Python, for a beginner Python is going to make a lot of sense. Even for someone more experienced, if you don’t know Python already, there’s a lot of opportunity in Python as well.

Anyway, I hope that helps you. I know that’s a lot of information there and there’s a lot of different choices. I didn’t even mention programming languages I would avoid like Ruby, unfortunately. I love Ruby but it’s going down and Objective-C is definitely one you want to avoid. Anyway, if you want more tips like this, if you have more questions, subscribe to the channel. Just click that subscribe button wherever it appears, I’m not supposed to point because I don’t know where it’s going to appear, but maybe it will—I’ll be doing a video and there’ll be a subscribe button there, I don’t know.

Anyway, click the subscribe button and you’ll get more of these videos every week, actually everyday because I put out videos everyday. If you came here from the YouTube search or something you should know that this is software development career and personal development channel so I will be talking about all kinds of crazy stuff, but that’s the way I like it. Thanks for joining me. I’ll talk to you next time. Take care.

About the author

John Sonmez

John Sonmez is the founder of Simple Programmer and a life coach for software developers. He is the best selling author of the book "Soft Skills: The Software Developer's Life Manual."