A note: views expressed here are mine and mine only. In no way this represents Infinum, but it does affect the way I teach at Infinum Academy. I take great pride in that. If you don’t agree with me – that’s fine and I would like to hear you out. Tweet at me, or email me :). The end goal is to help people.
If you’re gonna stop reading now and comment anywhere – comment on this statement: “start with anything.” You can start with either of them or even something else (my first JS project was Backbone.js). Teach your self the basics of the language and learn to avoid the pitfalls of endless Twitter/Hackernews/Reddit debates “my framework is better than yours”.
Importance of having a stable base
css. But at the end of the day the problem has to be solved, and whatever you pick I guarantee it you can apply that knowledge across the whole ecosystem.
When you pick a framework to work with you undoubtedly pick a community too. You’ll probably want to follow people working on the same tool as well, maybe even listen to a podcast, subscribe to a newsletter. What you are doing is fine, really! – but understand that you are entering a huge echo chamber.
What you are also doing is perpetuating the self-generated discussions how your tools are the easiest to learn (OMG just look at how I can make a component with zero boilerplate), or even how performant your language is (0.545345ns first paint!!! #perf). What also happens inevitably is commenting on how your tools are the best! And again – all of this is normal!
But(!), you’re also never learning about other tools and what they do good or even better. And this is really bad – for you and for your community.
There is a time and a place to worry about performance and boilerplate – but that time is not when you’re just starting out.
I’m really proud of two of my past students, now colleagues and friends. Both of them started with React, but now are proficient and working with Angular and Backbone respectively. If they spent time discussing and going back and forth between frameworks, or even (and this hurts me to write) listened to influencers preaching a framework other than what they chose and then kept switching they would not be where they are now. And I’m glad to say that they are both very respected members of the JS team.
To a junior dev
Whatever you start with is fine. Also, it’s fine to start with a framework that has the cutest logo (the only reason I started learning GO). Just stick with it to the end and you’ll be able to pick up any framework that you wish later. Stop focusing on why JSX sucks, or why vuex is a terrible choice for beginners.
For those just learning to code now- remember when you were learning to drive? You had to think about everything constantly- but eventually the car became an extension of yourself. That’s how it will be. You will eventually have muscle memory built into many tasks. Stick with it.— Sarah Drasner (@sarah_edo) April 3, 2018
Spend that time building and learning so one day you’ll be able to pass that knowledge onto another person. And maybe, just maybe, we can focus more on our end users and our products a bit more instead of angry tweeting about webpack vs. fusebox, angular vs. react, …
Not so long ago I was also one of the people defending my choice over other. I was wrong and I’m making sure to make an effort now to invest time into understanding what the base should be. At the end of the day it’s just a tool; you can use one but don’t be one.
I have a getting started guide written over at Infinum’s blog. It still is what I think a good starting point is, and what I’ll recommend if you ask me. This blog post doesn’t change how I feel about the one published on Infinum’s blog, and vice versa.