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.