TOP 10 Programming Languages To Learn For 2017 (& Beyond)

Hey, what’s up, John Sonmez from 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.

100 Replies to “TOP 10 Programming Languages To Learn For 2017 (& Beyond)

  1. I have been in the industry for over 20 year, I started programming in MS Basic, then VB, moved to Fortran 77 (Cray super computers), did some assembly and a whole bunch of  C, I taught myself C++ but never really used it, along the way I learned Perl, java script and every unix shell there was.  If I had to pick one language that was the most beneficial and universal I would say it was C. I learned it in college and has been a solid base that has helped me learn everything else and it is still very useful. For what it is worth, peace!

  2. C++ is best, you will be junior for the first 10 years, but hey in other languages you will be a junior forever.

  3. Loving your video, clear structure and job market analysis is what I also always teach my student. But one should never underestimate the style, culture and general "feel" of the language. These are subtle things – that in the end make a huge difference – and impact the way the student is going to treat the language: just learning, or actually being bitten by a coding bug and writing code the whole night through.

  4. well, after watching this video I can see that I've messed up on my choice XD the first language that I decided to learn by myself was C++ 😛

  5. Even if this is a video from Oct.2016. you make sense on the topic, many people like me do not stick with something if it doesn't interest me in the first 10 minutes. reason is, the way things are taught in a mono tone voice or teaching something in a beginners level as we already know what they are talking about without explanation. As some educators start with, this is how you do this. ok, explain it, don't tell me to just read a book. I went to college and received my degree in Computers, and most of the time I needed to explain what he/she said or meant. The reason I went to college was, a career adviser from high school told me I needed to, to get a good paying job.
    Come to find out after I spend 90k getting my degree, I actually don't need to. But you need some kind of paper stating you know this or know that, so get certified & when in an interview prove to them what you are able to do. that little certification shows you are dedicated. Don't just stop on that little piece of paper, keep learning. when in a computer business, its great to show & put on the wall for clients to see real, certificates saying CompTIA A+ cert, or MCSE, MCSA, CCSE, .NET. start with one and go from there. If I am wrong, well ignore this & do your own thing. This is just an opinion. Hope everyone has a good one.

  6. I disagree, I use C++ and after 10+ years, I really do not want to see Java.

    I like operator overloading, it helps a lot to make code cleaner looking.
    Does not exists in Java.

  7. I found Python to be an easy choice. Its a fun high level language with clean easy to read syntax, thats easy to pick up (though not trivial to master) has 25 years worth of library and tooling support, and a huge amount of online material for learning and troubleshooting. Its hugely popular for startups and central to many fields such as machine learning/data science and backend web developement so its a very practical choice.

    While I am happy to learn new technologies such as React and Go (and indeed learning other important technologies is pretty much mandatory), Python is my hub language, the one I'll continue to use for personal projects and learning new problem/computer science domains and continue to gain the deepest knowledge of.

    I think it makes sense to have one language you're really strong with, and there isnt a better choice in terms of the speed with which it allows you to develope than Python, nor do I see that changing anytime soon.

  8. learn javascript. why you ask? its because all browsers have javascript. no need to setup an environment which is the hardest part for beginners. also the web has infinitely much example code for javascript. and also web-standards are longlasting.

  9. what should I learn for starters. I have a career lined up with a president of a company. I just need to get the knowledge he said

  10. Dear Sir I want to become a developer but I don't know from where to start please I am beginner reply as soon as possible.
    Even I haven't yet decide a language so please guide me .

  11. I'm going to buy your book eventually. However, I have 1500 page Introductory Java, C++, and a 600 page python book to read 🙁 Your book seems like it's almost required for developers. I've looked at the index. It seems great.

  12. lol im sure dislikes are from him promoting java. the theoretical cs community hates java with a passion.

  13. What a great video and I love how you're in excellent shape! You guys should check out my top 10 programming languages to learn in 2017 video. I guarantee you that you won't be disappointed!

  14. I have a serious question for you guys? Will anyone hire you of you are self taught and no certificates?? How can I love to someone that I know the language if I don't have a diploma or a certificate?

  15. Great Video,
    Just for the purpose of improvement..

  16. I am a student majoring in Cybersecurity AAS, but I think that development and programming is better suit for me. Right now I am in second semester in community college. Is good to change the major now?

  17. please suggest me where can i go for higher studies.because in this time i completed my BTEC HND COMPUTING,now i want to top up to level 6 to complete my full houners degree,please help to choose my path my way.thanks

  18. I'm required to take both C and C++ in college and haven't had a lot of problem with them. I have always been interested in computer technology so when the difficult stuff I find really interesting.

  19. i hate how people think one language is better than the other, those are the people who haven't made anything other than hello world lmao, and lets not forget languages are just tools the real potential lies in us the programmers

  20. I'm about 3 months into Python and hopefully starting my CS degree in January at 24 years old. There's a few things that really interest me with where software is going. Blockchain/cryptocurriencies, augmented reality glasses and VR gaming(I also enjoy creative writing so gaming might be my route). These all seem very advanced to me however and I would like to get into the software industry sooner rather than later. So I think mobile app development would be the best stepping stone into those and I would enjoy it. It sounds like C# would be the best language to learn for this because I could do ioS or Android(right?). My questions are should I try to become proficient with Python before jumping to a new language, would it be optimal to start with C or C++ before C#, and is anyone else that has started as late as I willing to share their experience?

  21. I don't agree with the factors used for this advice. Number of jobs != your chance of getting a job. And it's also not the same as your chance of being happy in a job.

    Actual selection is fair, but I think you underplayed elixir, and ruby is definitely not dead. As far as I'm aware uptake is still growing. Not as fast as others perhaps, but who cares. There are enough mature ruby applications that you could have a job for life maintaining. Shopify isn't migrating to java any time soon 😉





    2) ANDROID APPS: MICROSOFT C#, vb, vba, microsoft cloud setups



    no calls for: c++. java, cobol, RUBY OR ANY OTHER GARBAGE HE MENTIONED

    Every job that I have gotten in the last 10 years involves PHP or ASP
    web work + app for android + c# or vb + mysql or access or oracle or msql
    usually involves tieing together an ibm or microsoft package with web site.

    for jobs that I write and run on my computers: i use c#, c++, cobol, html, php
    and one of a dozen wed site creator packages dream weaver, page breeze, etc
    and stock photos and video!

    so you also need to learn how to use some photo and video editing software
    and free programs will do. I like the free products

    never get calls for: c++, cobol, c, java, ruby, pyhton

  23. Hi John 🙂
    Your list is lacking in Lisp-y languages… e.g. Clojure
    (Better yet, Scheme (Racket), Common Lisp (e.g. sbcl), Haskell (if you must :-), Lua).

  24. I agree with you re Java vs. C#… trouble is, the preening gatekeepers (recruiting 'consultants' (pehh!)) are buzzword-matchers, and will drop you off the shortlist if they are looking for one of those skills but you have the other. Part of the larger problem of Recruiting-Via-AssHats.

  25. How about kotlin? I think it is one of the most beautiful, elegant and concise languages. Completely integrable with Java projects, supported by android, compile in JavaScript …

  26. You have excellent advice , but I'm not sure what message you're trying to send by your dress and presentation. Are you saying that unless somebody's as shredded as you, you can't become a programmer? Is this how you recommend somebody rocks up to a job interview? Does Bill Gates or Mark Zuckerberg benchpress 400 lb? … – I'm guessing a lot of people are going to get mad and write angry replies, but sorry, this doesn't make sense to me.

    I'm actually scrolling down so I don't have to watch you – it's offputting. And no, I'm not an anti-fitness slob, either.

  27. Man I looooved it much so far ….
    Still i have question C# or java you recommend to someone knows nothing "zero" and he will learn coding totally independently
    In the past i wanted to make a game but …
    Now I wanna start up again making apps Games anything
    I think I will go with C# how about that
    If you will give me a free resources videos or platforms that are interactive
    I will really appreciate it
    Thanks again buddy u r awesome
    Mohammed from Yemen

  28. Thank you for using credible sources. I am due to graduate in 2018 with a CS degree being skilled in Java. It is good to know Java is still going strong even after 4 years in college.

  29. Well. Depends what type of programming you wanna do. I love low level stuff and started in IT with assembly and then C. Then some C++. Also tuched Delphi and even Prolog and off course VHDL. I have liked website development as a hobby. Now mainly do C and some Java.

Leave a Reply

Your email address will not be published. Required fields are marked *