Which Tech Should You Learn Now?

The Climb — Alps Unveiled VR Trailer

There are so many tech stacks and platforms to chose from. Should you learn Angular 2, React, Node, or something else entirely? Let’s take a look at some data and trends and try to identify the most valuable technologies you could be learning today.

JavaScript

JavaScript is the most popular programming language in the world. A large number of all developer jobs require some JavaScript skills, and with Universal JavaScript, companies are realizing tremendous productivity benefits sharing more code between clients and the server. React Native allows JavaScript developers to target mobile devices including iOS and Android using the same architecture they use for the web platform.

On top of all that, JavaScript is easy to learn — so easy that kid-focused programs like Code.org are using it as a tool to teach children how to code.

JavaScript is very important today, and will remain at or near the top of the language popularity rankings for at least the next 3–5 years. If you’re deciding on a first language to learn, JavaScript is a very solid choice.

Hot Frameworks

If I were picking one stack to back right now, it would be Node + React (with Redux). Easy choice, but let’s look at some data.

According to StackOverflow’s 2016 developer survey:

“Full-Stack Developers who know JavaScript and develop for the Cloud, or work with React or Redis are paid better than their peers.”

According to Indeed.com salary searches in March, 2016, developers familiar with Angular, Node, React or any combination of the three make significantly more than average JavaScript developers, and all three technologies show up in a significant number of job openings. Angular currently tops the salary premium, and there is some excitement about Angular 2, but…

According to our own JavaScript Scene survey last year:

Almost half (45%) currently use Angular, and more than half (66%) are interested in React. There are fewer people interested in Angular than using Angular, and that may spell a pending decline in Angular use.
Angular currently dominates the front end component library landscape, but judging by these results, React seems poised to give Angular a run for its money in the coming months.

This trend seems to be playing out as predicted, but we’ll know more after the next JavaScript scene survey (coming soon).

That said, Angular is still very popular, and I believe the over-all popularity of Angular is still growing — just not as fast as the popularity of React. Candidates with Angular experience get paid more than average, but that’s also true of React and Node.

So, my advice based purely on statistics: Learn React and Node first. If you’re interested in Angular, learn that, too, and it will certainly not look bad on your resume.

For state management, Redux is currently my pick. It’s a solid architecture based on pure functions, it has great dev tools, including time travel debugging, and it’s built to scale to any size app.

For I/O, you’re still going to encounter mostly RESTful APIs (see Chapter 8 of “Programming JavaScript Applications”), but GraphQL and Relay may be set to take off. The Meteor team has announced that they will build a reactive GraphQL query system similar to the DDP solution that currently powers their live query updates. Having used their existing solution, that sounds promising to me. Meanwhile, the Netflix team is pushing Falcor.

It’s early days for these new query systems. I believe RESTful APIs will be popular for several years at least, but GraphQL could become an important technology if enough developers adopt it and build great tools for it. Several other web-based query languages have appeared and vanished in recent years (notably, eBay’s now defunct ql.io). Developer adoption will play a major role in the success of new options.

AR & VR

A developer ignoring AR/VR would be like the music industry ignoring the internet. Eventually, today’s model won’t exist anymore.

Long term, I’m confident that AR & VR will completely replace traditional apps. In the first episode of JavaScript Questions, I mentioned that the coming AR/VR revolution is the biggest threat to JavaScript. It’s a lot more than that. It will completely redefine the human experience. In case you missed it, here is the episode:

If you want to start learning AR/VR development, I have good news and bad news. The good news is, you can start experimenting with the platforms for free. There are plugins available for Unreal Engine 4 and Unity that can help you get started with AR, but as I mentioned in the video, the AR revolution will not live up to its initial hype for the first 3–5 years, so you have plenty of time to learn. You can start by practicing with VR. I think you’ll find AR tracking capabilities using these options disappointing for a few years.

If you want much better tracking and AR capabilities without the wait, and you have $3k to spend on a platform with no current consumer market, Microsoft’s Hololens developer kit is shipping in about a week.

Meta’s SDK will be shipping Q3 this year, and costs less than $1,000, but it’s tethered and you’ll need a powerful computer to pair it with. Meta is the company that blew Robert Scoble’s mind and demoed at TED 2016 in February:

In the short term (3–5 years), JavaScript is absolutely a good learning investment. In the long term, C# is probably a good choice, too. Meta and Hololens programming environments are both built on top of the Unity framework, and the Unity asset store has a large number of assets you can include in your app. Check out Microsoft’s Holographic Academy to start learning about AR development with Hololens.

I know some of you are thinking that you can use JavaScript with Unity, but that’s not really true. While Unity’s scripting language does have `.js` file extensions, the similarity doesn’t go much deeper. Unity’s “JS” is really UnityScript, and while it’s superficially similar, it’s a very different language that doesn’t implement any version of the JavaScript specification.


Learn JavaScript from Eric Elliott
Become a Lifetime Access Member:
Webcasts
Video experiences
Books & more…

Eric Elliott is the author of “Programming JavaScript Applications” (O’Reilly), and “Learn Universal JavaScript App Development with Node & React”. He has contributed to software experiences for Adobe Systems, Zumba Fitness, The Wall Street Journal, ESPN, BBC, and top recording artists including Usher, Frank Ocean, Metallica, and many more.

He spends most of his time in the San Francisco Bay Area with the most beautiful woman in the world.