When someone wants to start programming, I find it hard to tell them what they should start with. Whatever I say is too biased, and if I suggest one thing, maybe they would have preferred a completely different area of software development.
What if… because I suggested the wrong thing, they don’t make it and give up?
I had all of these thoughts and more when I met Mike a couple months ago.
Do you get this same feeling?
JavaScript / TypeScript
If you love JS, you’ll love this heading, if you don’t, you probably wish I started with PHP, C++, Ruby on Rails, or any other language out there. I’m going to give a few reasons why I always start people off with JS.
1. High Paying
Consistently, doing full stack TypeScript, or React Native, tends to pay extremely well. I don’t recommend new developers to learn PHP, because it historically pays less on average. New developers can find themselves making 90-120k per year depending on how well they interview. With PHP, it’s much more common to start around 60-80k these days.
2. Universal Langauge
Because Node has matured so much, they can continue in one language and get introduced to both frontend and backend, without the complexity of a second language.
Sure, you can learn Rust and compile to Web Assembly and build for backend and frontend, but that isn’t as mainstream. I try to stick between high paying, high job availability, and practicality. I believe JS satisfies all of this.
3. Longevity
When I first learned React in 2014, it was a huge shift. It’s been over 8 years and JS is still king. Most people didn’t use TypeScript, and hooks didn’t exist, but overall it is very much the same: a component based architecture.
JavaScript has become very stable since ES 2015 was released. Back in 2018, I have a tweet saying: the web won’t fundamentally change in 5 years and React will still exist.
This has largely held true. I believe another 5 years or even longer is a pretty safe bet as well.
4. Ecosystem
Every year in the stack overflow developer survey, JS is at, or near the top.
In the past year or so, we are seeing a shift to faster tooling built in other languages. For instance, esbuild (written in Go) is so much faster than webpack (written in JS).
The trend seems to be: people are processing JS using faster languages.
This means JS may stay around much much longer, because the tooling behind the scenes can be written in faster languages, and the developer can continue to use JS to build anything without much of a performance loss compared to lower level languages.
Since React Native was released in 2015, there has been a trend of using JS to build everything…. and it’s no longer a crappy experience!
Before, you had to write web code to make a mobile app in JavaScript, but React Native lets you do it while rendering native user interfaces.
5. React
Okay, I cheated a little. I mentioned React many times already. Since we are able to build native windows apps, iOS, Android, and web applications using the same paradigm, there is huge value in learning JS.
Even if the community moves away from React one day, towards Svelte, or a yet-unreleased-framework, I’m focusing hard on the fundamentals with Mike, so he’s good to go either way!
Thoughts?
What do you think about my reasoning? Is there a different language you prefer that outweighs everything I discussed in this post? Be sure to leave a comment!