In this post I'm going to talk about the best programming languages to learn in 2018.
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 this decision.
One of the easiest ways to pick the best programming language to learn for 2018 is by listening to the market.
The market will tell you what the trending programming languages are for the future. We must be aware of the trends and watching the news and the rise of new technology so we can adjust the sails on which programming languages to learn, especially in 2018 with a lot of new things coming up.
This post was not based solely on my opinion. I researched a lot and I came up with these top 10 programming languages to learn in 2018.
The next one might surprise some people. It's shown up on a few surveys. I've gathered data from many surveys and this one has shown up quite a few times, but I'm not basing it just off of the survey data. It's definitely not at the top but it's close. It's number 5 according to the survey data, but I wouldn't really call it number 5. It's more like #2, and here's why.
I think we should throw out SQL. It's “technically” a programming language but you're not likely to get a job with just SQL. I'd call it more of a necessary skill that a language. So that would put Python at #4. But here's the really interesting thing on the stack overflow survey. There's a section that says: “To be adopted or migrated to be—or to migrate too soon”, and Python is 12%. It's the highest number by a pretty good amount. So let's suppose those people actually do migrate to Python in 2018. That means Python would be sitting around 42% – making it #2!
There's a lot of good things going for Python here for 2018. One of them, like I said, is that a lot of companies, a lot of teams are migrating to Python and they're already using Python. It's already a popular language. There's already plenty of jobs out there. Not only that, but here's the thing, when you look on Amazon, when you look at the books, the most popular programming books, most of them are Python. I know this because I have books. I look. I've got The Complete Software Developer's Career Guide. And I've got Soft Skills: The Software Developer's Life Manual and those are pretty high-ranking books. I'm always looking at the book rankings, and I can see clearly that the books that are ranking the highest in many categories are Python books, especially beginner Python books. That's interesting.
Most of the new books that are coming out that are popular that are doing well on Amazon, which is a really good indicator, are beginner books or beginner books on Python. Most of those are beginner books. Those are actually the most popular programming language books. That's a real good indicator of the future, because if all these people are reading Python books and learning Python, there's a reason for it. That tells you that there's going to be a high demand. That tells you that that is also a good language for beginners. If you're considering learning a new programming language for 2018, Python makes a lot of sense. It's a really good language, high adoption, high movement in that space. There's a lot of stuff that's going on in that space.
All right. Next. What's next in this list? This one is kind of hard. This is where it gets a little bit more difficult to pick number three here. Based on the survey data, based on just what I know in general here. Again, I'm not doing this completely based on the survey data. I'm going to go with C#. I was deciding between C# and Java. Obviously, I've given you a hint of what the next one is going to be, but I chose C# for a really, really good reason. The reason why is because I have practical knowledge here. Not that it's bias but what I'm saying is that I know that C# can be used in every single platform. I have developed iOS and Android apps using C#, using Xamarin. You can also do Linux apps and Mac apps. You can pretty much work on any platform including Arduino and any of the embedded systems, Raspberry Pi and stuff like that all using C#.
C# is a very versatile language. Plus, it's a very corporate language as well. It's also a really good language and it's not that difficult to learn, although I have to say, with all the features that they're adding and how much that language has expanded, it's definitely gotten more complex, but it is very expressive and very good language. C# I would definitely put up there very high. You're going to be able to find a job with C#. No problem. It's just going to be an easy place to fit into a Microsoft Shop.
The thing about C# also is that if you're wondering between C# and Java, if you're like, “Well, which programming language should I learn?” I would probably see—this is where it edges out. I'd say C# simply because if you know C#, you'll pretty much know Java, but I feel like there's a little bit more of opportunities for higher paid jobs in the C# zone and it's a little bit easier to get into that environment because there's—to be honest with you, there's less highly skilled C# developers than Java developers. Sometimes it might be hard to get into a Java environment because sometimes—especially as a beginner, sometimes the Java people are a little bit more experienced. Whereas, C# because it's Microsoft Shops, because it's not as rigorous sometimes. It's easier to get a job with C#. It's a really good language. I highly recommend it.
Java is obviously the next one on there. Just before I go too far, I want to tell you where C# and Java ranked on some of these. I'm looking at the Stack Overflow one. C# was actually number 4 and Java was actually number three. Java was actually higher on the Stack Overflow one. Now, part of the reason why is because the people that probably took the Stack Overflow survey were probably highly—more technical. People that were actually on Stack Overflow and whatnot. That doesn’t necessarily represent the real world. This is what's interesting here.
Some of the other things to consider were on that Stack Overflow Survey were the most loved, dreaded and wanted languages. C# was pretty high on the most loved language. That was pretty good. It was number eight. I mean that is actually pretty high. Java was not on the most loved languages. It's kind of interesting. You see how that works here. Then the TIOBE one that they do every year, Java was number one on that one and C# was like number five.
Again, Java and C# are almost the same language at this point. It's really hard. If someone made the argument that said, “John, no. Java should be number three and C# should be number four,” I wouldn't argue very hard with that. I've put it at number four. Again, Java, very good language. Very good language for corporate development, environments. A lot of companies have a lot of technology invested in Java. It's a huge ecosystem. There's a lot of very high paying jobs in Java.
It's not quite as easy. There's not as many introduction type of courses and whatnot to learn Java as there is C#. That's one downside. Same thing on the Python side. Python has a lot of beginner stuff out there. I do have a course actually, I created on Pluralsight, two courses on learning Java. I think honestly that they're the best courses for learning Java, but you can check those out. Again, there's plenty of other resources, but I want to give you a resource that you might find useful.
If you want to sign up for Pluralsight, by the way, you know, go ahead and sign up through that link that I had showed you. You really should. It's easily—I mean if you're interested in expanding your career and learning new technologies, no-brainer like the easiest money I spent every month when I was learning and trying to develop my skills. Sign up here: Pluralsight 10 day Trial.
Next one on this list is one that's going to surprise you perhaps, which is PHP. PHP. Oh, gosh, that's the language that I don’t really have any love for at all. I have to tell you. I don’t like it. It's just a clunky language. It's slow. There's all kinds of bad things I could say about PHP. You know, if you're a PHP developer, sorry about that, but then why is it hitting number five on my list? I'll tell you because it's used everywhere because, you know, WordPress is writing something like 90% on the web and it's PHP. Most of the major companies, Facebook and Twitter started out PHP. PHP is really a—as much as it's a nasty language, it's really quick to learn, and to prototype and to get stuff done. That's why it's still around.
Like I said, if you learn PHP, if you're thinking about a language to learn for 2018, especially if you're thinking about potentially becoming a freelancer or doing some kind of freelance work, hey, make some WordPress plugins. Be an entrepreneur. Make some WordPress plugins, maintain WordPress sites. There's a lot of benefit to that. I mean if you learn PHP, you're always going to have a job. You're going to open up a whole wide world of more freelancing jobs because a lot of people that just have a WordPress site, they need some custom PHP work done. I need custom PHP work done from time to time. Again, not the best language in my opinion, but a good one to learn, a good one to make some money.
Now, Go is interesting. Why is Go so good here? Okay. So the usage on this was only 8%, but the people that were saying that it's going to be adopted or migrated too soon was 11%. It was actually one of the few languages that had a higher migration than it did have a current usage.
What does that mean? To me, that's simple. That means growth. That means that more and more companies are going to start using Go and are migrating to Go. That's a good one to learn for 2018, honestly. It's not the easiest language to learn, but it's a really good language. Like I said, I've taught a course on Go. I was an early adopter on Go. I really think that the technology is good and it's a language that is growing. There's a good opportunity here.
This is one of those languages where I think there's not enough Go developers and that ecosystem can be expanded a lot, especially if you want to create frameworks and things like that. If you're willing to invest some time and learn Go, and become an expert, you're going to be in high demand. There's not going to be as many jobs right now, but I think in 2018, you'll see more of them and you're going to see that there's not enough people to fill those positions. If all of these companies are migrating to Go and you don’t have enough Go developers, this is a good place to be.
This is tough here. But I pick Swift. I pick Swift for a couple of reasons. One, iPhones. That's not going away anytime soon. Even though there's really good solutions like C# to do cross platform development using Xamarin and there's a lot of cross platform stuff, so many more apps are being developed on iOS and that's kind of the flagship. A lot of companies are developing that or they're basically getting to the point now where they're saying, “Hey, look. We're going to do iOS and Android. We're just going to do them and we're not going to worry about any other platforms. We don’t worry about a cross platform solution.” Swift is a go-to language, the winning language for iPhone, for iOS at this point.
Now, iOS is expanding. Obviously, you've got the watch now, the wearables. You've got iOS, the TV, and you've got obviously the phones and the iPads. There's a huge, huge market and this is the market that actually makes money. Every company now pretty much has to have an iOS app. That's why I think Swift is a good idea. I would not invest in Objective C, not at this point. It doesn’t make any sense. Swift is a better language overall and there's a lot of opportunities. When I look at the surveys, again, Swift is popping up for the first time. I mean it's a new language, but, again, it's one of those ones too on the Stack Overflow Survey. I'll tell you right here. Up with Go, Swift has 9% of developers that said they use it regularly, but it has 11% saying that they're going to adopt or migrate to it. That's another huge, huge growth opportunity. If you're going to learn a new programming language, you want to move into a growth opportunity. If you're going to do iOS development, bar none, I would recommend that you go to Swift.
We're moving on. Next one is—this one might be a surprise as well. Rust. Now, why did I put Rust on here? Okay. If I look at the surveys, where is Rust falling? On some of these, it's not even showing up, but it does show up as the number one most loved language, again, on that Stack Overflow Survey. What does that tell me? What does that tell me here? It tells me that this is a really good language that developers like.
Again, this is a very small market. There's not a lot of companies using Rust. I haven’t seen it take off, but if developers like Rust the most, this is something to really consider, especially if you're thinking—if you already have some programming language and you're thinking about getting into a new programming language that you would like to learn. Maybe not for a beginner. If you're a beginner, maybe don't start with Rust. If you are an experienced programmer and you're looking for a new language in 2018, Rust is a pretty good choice because developers love this language. This reminds of Ruby back in the day when everyone was so in love with Ruby because it was a fun language to work in.
I've done a little bit of Rust work and I really liked the language. I'd like to dive into it more, but I'm not really doing technical stuff anymore except every once in a while. It's a good language to bet on. It's not one to like bet your career on, but I would say that if developers like this language so much that it's got a good chance of gaining some ground and popularity, and possibly at some point displacing C and C++ for a low-level type of language.
Again, I don’t know. I don’t have a crystal ball. Again, I wouldn't bet my whole career on this. If you're already an experienced developer, you already have some experience on your belt, it might make sense to try and go down the Rust path, trying to build some expertise there and see if you can get some highly paid consulting gigs doing Rust stuff, because it's going to be rare to find Rust developers.
Kotlin is the new kid on the block for Android. Again, I put this down on the list because I'm still not 100% sure. It looks like most Android development is going to go this direction like Objective C switched to Swift, but I'm not 100% sure on this. I think it's worth—if you're going to learn a new programming language, again, if you're going to give in the Android development, it's a lot better. It's easier to use than Java and it's basically got native Android support right now. It's fully supported in Android Studio (the Android development IDE) and there's a lot of really easy ways to get started with Kotlin to develop Android apps.
Again, it's that whole battle between iOS and Android. If you're going to go the Android route, I'm learning Kotlin, if I'm developing for iOS, I'm learning Swift. If you're just doing Android development you could go down the Java route, but it probably makes sense to just go with Kotlin. It's becoming really popular. It's one of those ones that could fade out but it's not looking that way. That's why I haven’t ranked it so high up there on the list, but I still think it's a good one. This is another one that if you're an experienced developer, you might take a risk and learn and see where it goes so you have that skill set. This is something you could freelance.
C & C++
I've done some videos where I've talked about how you shouldn’t learn C or C++, but I will say this, as a beginner, don’t. Start with Java or C# (or both) and then think about learning C and C++ later. As an experienced developer, if you are looking for a new language to learn in 2018, as much as I think that C++ and C is going to die, it's not. It's not going to die. There is so much going on. VR is “resurrecting” C and C++ development because VR games are very computationally intensive. A lot of mathematics, heavy mathematics. If you're going to go into the VR world, C and C++ might be a good choice for you, especially with the Unreal Engine to be able to learn how to do that, which is becoming popular in the VR stuff, Oculus Rift and whatnot. I don’t see that going away. I see the future going that direction and we need a lot of horsepower to be able to do this stuff.
Right now, Rust is not an option for doing this kind of stuff. C and C++ is. I've put them together. Again, they show up in the top of the surveys as well. It's really hard for me to deny it. Even though I have a personal bias and I would say that. Again, I used to love C++. I used to be an expert on that language, but I just feel like it's not a very good beginner language and I feel like there's other more efficient languages today. Like I said, I can't go against the grain just like—I may not like the language, but I have to say that it's a good one for 2018. But I would not recommend it if it were not for VR. I believe VR changes the game here and makes it so that I can actually recommend C and C++. Not for a beginner but for someone who is experienced.
“What are the top programming languages to learn in 2018” is a difficult question. There's a lot of advice on what programming languages are the best programming languages to learn, and a lot of it is bullshit. I'll tell you this: a lot of people just take some stupid surveys and take them for factual, reliable information. There's a couple of them that came out like the stack overflow survey, which is a pretty decent survey but there's a few other ones and they basically just repeat verbatim and say: “Okay, Well, these are the top programming languages, so these are the top ones to learn.” There's a lot more to consider than what is the most popular programming language.
Also, not only that but the other thing to consider here is that just because something is “popular” doesn’t mean that it's a programming language you should learn. It doesn't necessarily mean it's the best language for your career. Not to mention there's usually conflicting data. It depends on how you survey people and what you survey them on. There's a lot of junk data. To be honest, there's a lot of people that put in data that doesn’t make any sense.
For example, in a lot of the surveys, I see stuff like programming languages listed as SQL. I mean it is a programming language, technically, but you're not getting a job just knowing SQL. It doesn’t make sense. Stuff like that you just need to know as part of your job. Then the other thing that I see is HTML and CSS. Again, not really a programming language and something that you just need to know. It's web development. Everything on the web has HTML and CSS. It's kind of silly when you look at it that way. All these factors make it very difficult to find the true “top 10 programming languages for 2018”.
If you watch the YouTube video I linked below, I've included some extra data at the end of the clip. Be sure to check that out for some of my top “prospects” that didn't quite make the top 10 programming languages list.
Once again here are the Top 10 Programming Languages To Learn In 2018:
Do you agree that these will be the trending programming languages in 2018? Leave a comment below!