P.S. for each skill I also link off to some resources for working on it. Some of those links are affiliate links, which means I may receive a commission if you decide to buy a product I have recommended. If you’d rather I didn’t receive a commission, that’s cool too, just Google the resource instead of using my link.🙂
It’s super easy to get sucked into the latest and greatest framework, or the laundry list of terms thrown around but as Divya says:
2. Go deep on 1 framework (probably React)
Digging through engineering career progression charts at a range of companies (thank you progression.fyi for pulling together a ton of these) we can see that for the first ~5 years of a developer’s career they are typically working at higher and higher levels of competence within a particular specialization.
And in terms of picking which framework… as the original blog post highlights and Jerod summarizes, from a jobs perspective:
If you’re gonna just pick one and dive deep, it seems like React is in 2019 your best bet.
- The React Handbook is an 80/20 introduction to React on the Freecodecamp blog, aimed at giving you a fast-path start to being productive in React.
- Full Stack React. Both a blog and a newsletter with great in-depth React articles
- The React Podcast. If you’re into podcasts, this one by Michael Chan AKA Chantastic is great.
- If you’re looking for a course, Modern React with Redux [2019 Update] is the React course I took when I was getting started with React, updated with new content to handle the latest and greatest features.
3. Look for bigger-picture patterns that will translate
One of the great things about front-end development in 2019 is that despite the abundance of frameworks, we’ve also started to see some big megatrends that are true across frameworks. This is good news for developers because it means that as you go deep in one framework you can still pick up skills that will translate to others if need be.
I highlighted five of these megatrends earlier this year, but on the episode there were 2 key ones that came up:
Component-oriented development. Thinking about things as a set of components that can be interact, and plug-and-play. React is doing that, Angular is doing that, Vue is doing that, Ember is doing that, Dojo is doing that, Mithril is doing that, Svelte is doing that… That is the approach that we’re going.
Similarly, things like declarative coding… We are increasingly moving to a declarative paradigm for our components, we’re not imperatively doing things we’re thinking about. “Here’s what this thing should be”, and letting the frameworks handle how and when. And that’s another place where so long as what you’re working in is doing that, which means maybe not focusing on jQuery… But if you’re doing React, those skills are once again gonna translate.
- On the subject of component-oriented development, Robin Wieruch has had some great articles recently, including a post on reusable components and one on lifting state
- There’s a great post on Advanced React Component Patterns by Kent C. Dodds.
- The Advanced Components on VueMastery goes into a number of component-related design patterns and techniques.
4. If you’re doing the backend, learn Express
It seems like everything stems from Express, in some way, at least in what I’ve seen…
I’m currently using a project called NestJS, which is like a TypeScript wrapper around Express, but it makes it more Angular (that’s the way I describe it), in a good way.
- FreeCodeCamp has a free course focused on Node and Express as a part of their Apis and Microservices certification.
- Just Express is a Udemy course that has 16 hours of focused deep-dive content focused entirely on Express.
5. A year or two in, start focusing on data flows
I’ve seen this with engineers that I’ve mentored… dealing with data management (either in the front or the back end) is one of the trickier things to master at first. You can mostly avoid it in your first year or two, or only think about data within the context of single components, but eventually you need to really master data.
I think Divya said it best:
I think especially since it moves past just working on small features, and you have to think about the overall architecture, and whether it’s scalable and maintainable; those are the things that you have to think about — how does the data flow, what is the architecture of the back-end and how does it provide data to the front-end, and how does the front-end liaise with the back-end, and so on? And just understanding that requires a bit of experience, and having worked on different applications, having played around with things… Yeah, generally the more senior you get, the expectation is that you know how to do that, and how to work those problems.
- A Detailed Study of Flux: the React.js Application Architecture is the best open article I’ve seen for getting a deep understanding of the data architecture that has come to dominate modern front-end development.
- The Road to GraphQL is a free book (though it does require email signup) on GraphQL, one of the hottest trends in interfacing between the backend and the frontend.