How do you learn a new technology? Like what steps do you follow? Our tech world is moving at a fast pace, with new stuff coming every day. How do you keep track of it and build up your knowledge about stuff?
Keeping up with the web development world is like drinking from the proverbial firehose. There’s a ton of new stuff coming out constantly, and the landscape is always shifting.
You can think of this in 3 phases:
- Being aware of what’s out there
- Choosing what to learn
- Learning it
Keeping Up With The Latest Tech
You can keep a pulse on what’s going on by signing up for newsletters, following interesting people on Twitter, watching relevant subs on Reddit, and keeping an eye on Hacker News, Medium articles, etc. Most popular blog posts pass through one or more of these places.
Disclaimer: When I say “keeping up” and “keeping a pulse on things,” I just mean at a cursory level – maintaining an idea of what’s available, what’s popular, how opinions are changing. I do not mean actually learning all of this stuff as soon as it becomes noteworthy. We’ll talk about learning in a bit.
There are a lot of newsletters. Here are a few that I subscribe to.
These come once per week, and they roll up all the latest good blog articles + news into one handy email (or 6), usually with summaries. I tend to scan these and just click into the things that sound interesting, rather than trying to go all depth-first-seach on the things.
- React Newsletter
- React Digest
Lots of interesting people are on Twitter, writing about React + frontend stuff. Rather than list a bunch of them individually I’ll refer you to these lists:
- Who to follow on Twitter if you’re a frontend developer
- Dan Abramov’s React list (Dan created Redux)
There are a handful of subreddits I look to for new and interesting things:
- r/reactjs – There’s a great “Beginner’s Thread” at the top if you want to ask questions.
- r/webdev – General web development questions + articles, not just React.
None of these are specific to React or frontend development, but they’re generally technology-focused or have a high concentration of tech-focused articles.
- Reactiflux – A big friendly chat room covering everything React. Sign up free, drop in and say hi! Good place to ask questions in real time.
- Hacker News – General tech and startup articles, sometimes including frontend stuff
- dev.to – Big friendly community. Not a link aggregator like Reddit; articles are written on the site itself. It’s easy to contribute articles too!
- Lobsters – General technology posts. Similar to HN, but friendlier.
- Medium – Articles are all over the map, but it does have a decent number of frontend-focused ones. Sign up for their mailing list and follow a few people who write frontend articles, and you’ll start seeing a lot of frontend stuff in your inbox. For starters, see You Might Not Need Redux.
Choosing What to Learn
With so much new stuff, how do you choose what to learn?
Let’s be clear: you actually need to choose something.
Like I mentioned above, you are not expected to learn everything that exists. Don’t do that. You will burn yourself out, and be left with skin-deep knowledge of too many things.
Now, I’m not suggesting to pick a single thing and master it to the exclusion of everything else forever. I don’t really like the phrase “Jack of all trades, master of none.” I think you can be damn good at many things, especially things that share a lot in common, like programming languages.
But that’s on a longer time scale. You can master a lot over the course of a few years. But right now, you need to focus. Learn one new tech at a time.
So pick one thing that looks fun, or popular, or will teach you a new skill, or is currently in demand, or some combination of those. Just one though.
Then go learn it.
Learning ALL THE THINGS
The easiest mistake to make is trying to learn too much at once.
You have a thing you want to build, or a job you want to apply for. It seems like the fastest way to get there is to simultaneously learn all the pieces require to do that. I get it.
Counterintuitively, the faster way is the one which, at first glance, seems slower: learning just one thing at a time.
Applied to React
In the React world, learning everything to make an app might mean React + Redux + React Router + AJAX + Webpack + CSS. And then you have to deploy it somehow.
Instead, start small. One thing at a time.
Learn just React. Make a couple little things. Copy existing things if you don’t know what to make.
Then create a few experimental Redux projects. Learn how actions + reducers + immutable state works. Keep these little experiment apps around, so you can refer back later.
Then it’s time for routing. Follow the React Router official docs (which are awesome) and build a few of the examples, and experiment on your own.
You’ve got to do more than just follow tutorials. Even if there are no provided exercises, find a way to apply what you learned to a project of your own. If you have no ideas, copy something.
The true test of “do you know a thing” is: can you create a blank project, and use that thing from scratch, without having to run to StackOverflow? Do you have the basics down, and fully understand the core concepts?
The same “start small” process applies: learn to write functions. Make a few little apps that do nothing but log some stuff to the console. Make functions that call other functions. Pass parameters around.
this works, and what the
call methods do on a function. Make more apps that log things to the console.
Learn about arrays and objects: especially the functions built into arrays, like
reduce. In modern JS we have
Object.keys. Learn the functions in the JS standard library, so you can reach for them instead of including a library like Lodash.
Pick a thing and start learning!
Learning React can be a struggle -- so many libraries and tools!
My advice? Ignore all of them :)
For a step-by-step approach, read my book Pure React.