33
Skill building as a dev
There’s a fair amount of angst about how much there is to learn in web development (and often front-end dev specifically).1 As someone who wrote her first HTML 25 years ago, I get it. It’s a lot, and it keeps growing. Which is why, especially when hiring devs, I care way more about how you learn than what you currently know. If you don’t have a flexible and strategic learning system, I recommend building and refining one. This post outlines what I currently do, including some shared resources and templates, so you can use or adapt this technique yourself.
This post is not a list of skills to learn to become a front-end developer in 2021 (there’s lots of content about this already) or really even how to learn things (for that, see Ayu Adiati’s series on efficient learning). Instead, it’s about grappling with what to learn when you feel overwhelmed by all there is to learn. This technique has served me in a variety of situations—learning totally new-to-me frameworks, as well as advancing existing skills. Additionally, while I’m writing here about tech skills, I will also admit that this has proven just as useful in my hobbies (e.g., drawing with ink, weaving). Finally, the ranking system described below also helps me accept that I don’t actually need to learn all the things; not all skills or knowledge are equally valuable to me, personally or professionally. Having a system to establish that is immensely helpful in conquering any growing sense of anxiety about all there is to learn.
Start with a brain dump of skills. This can be a typed list, written by hand or using a brainstorm/mindmapping tool. At this point, the goal is just to generate the list and not do a lot of curating or refinement. Additionally, I recommend include skills you already have; it’s very grounding to acknowledge you already know things and these skills will provide some helpful references/ideas in later steps.
🤔 Getting stuck? Are there skills you’ve seen listed in job descriptions that have made you feel inadequate? Add it to the list. Is there an online course or workshop you want to take—or have signed up for and never completed? Definitely add it to the list. Is there a project on your team you’d like to get involved in, but you lack experience with part of the stack? Add it to the list. Also, keep in mind, this list isn’t one and done; you’ll definitely be adding to it over time.
At this point, it’s helpful to go digital and put all the skills in a format that you’ll later be able to easily filter and sort. I use Airtable, but a spreadsheet would work, too. After adding each of the skills in its own row, add two new columns:
After both columns are filled in, I recommend reviewing the list with fresh eyes. It’s entirely possible, having now considered how you can demonstrate knowledge, that you may have ranked your current knowledge too low. Or, perhaps you find yourself thinking, “I know X really well except for this specific bit” (e.g., “I’m confident with my React skills, but need to dive deeper into Redux” or “I’m pretty good at writing accessible markup, but could have stronger skills at using NVDA’s screen reader software”). That’s a good sign that you should break those skills apart, both acknowledging more fully your current skill in the first thing and making it more obvious where you should spend your time growing skills.
💡 Getting stuck? Remember to keep your statuses as simple as is useful; you should be able to easily say, “Yeah, I know this a bit” or “I’ve really only read a post about this thing, I definitely haven’t learned it.” If your statuses are still pretty simple and you’re struggling, maybe the thing you’re trying to evaluate is too big (e.g., all of JavaScript vs something specific like the filter function).
Up to this point, you’ve been working with the full list of skills, including those you already are pretty competent in. Now it’s time to drill in to any of the skills you’ve ranked as “New to me” or “Some knowledge.” Add four more columns and fill those in for this subset of skills:
👉🏻 Getting stuck? If you’re stuck on your motivation, maybe it’s a sign to move the topic to something more like an “idle curiosity” list or straight up delete it. Don’t push through this, as it’s counterproductive to have your list cluttered up with things you’re not actually motivated to pursue. Also, don’t get stuck overanalyzing your rankings; this is a living document and you’ll be able to reevaluate.
At this point, your list is set and ready to use. Using the list is a matter of sorting and filtering to determine what to work on next and maintaining and updating the list.
Before deciding your next learning journey, I recommend that you take a breath and assess your current bandwidth. Be real about what’s already taking up your attention and effort, otherwise you’re not setting yourself up for success. If you have a bazillion projects in the air, some personal stress and an upcoming trip…now is not the time to start a high effort learning task. Look for something that’s high value, but low effort. On the other hand, if you have a strong appetite for learning right now, sort your list by things that are high value and high effort.
In general, I add to my list on an ongoing basis. If a GraphQL project comes up at work, onto the list that goes. If I read a post about Web Components and want to experiment, it gets added to the list. For these individual additions, I fill out the whole row for each item in one go (in comparison to the step-by-step process described above). I find it’s especially helpful to capture my motivation in that moment, as that may later impact whether or not the skill is still relevant to learn.
Every two or three months, I revisit the whole list from top to bottom. I pay special attention to these columns:
This review also makes it clear why it’s worthwhile to keep skills currently rated as low value in your list; that ranking is not set in stone and can change based on your needs.
Finally, if you find your list is a bit unwieldy even after sorting and filtering, consider these options:
If this system seems useful to you, I’ve created a shared Airtable template.

The Airtable has two tables:
33