My 2020 Technical Learning Plan

One of my favorite things about working on RelayPad has been the opportunity to seriously write code again for the first time in at least a dozen years. Coming from a design background, all of my technical skills have been self-taught, and I usually learn something when I need it in the service of a specific task.

For the last few months, I’ve started taking a slightly different path, where I start a small project to try and learn a new skill. It’s been a lightweight way to learn about new technologies without having to commit to them in my day-to-day work.

For 2020 I’m picking 12 areas that I want to become more proficient in. I’ll budget a month to learn and complete a project for each skill.

Topics here are listed in the order I plan on tackling them, but it will undoubtedly change during the year as my time and interests shift.

1. Building a Second Brain

This one isn’t exactly a pure tech skill, but I’ve been interested in this course by Tiago Forte for a while, and it feels like a good way to start the year.

2. GraphQL

The more I try GraphQL, the more I like it, especially in small projects that don’t need a full-blown SQL database.

3. TypeScript

What’s the difference between TypeScript and JavaScript? I don’t really know, but I’m going to find out.

4. CSS in JS

Unlike GraphQL, the more I write CSS in JS, the less I like it. But that’s because I read just enough of the Styled Components or Emotion documentation to get things to appear on the screen, rather than really learning why I should be using them instead of manually writing CSS like we used to.

5. Chrome Developer Tools

Currently, I only use about 1% of the power in Chrome DevTools and have no idea what most of the graphs and charts are trying to show me.

6. React Hooks

There are several interesting features released since React 16 that I haven’t found time or reason to dig into yet.

7. Accessibility

I’ve been lucky to work with some incredible accessibility-minded engineers and designers over the years, so my personal knowledge of best practices has remained pretty basic since I usually had people I could lean on. I’ll most likely start with this course.

8. Testing in JavaScript

Who likes writing tests when they could be writing code? Not me! That’s probably part of the reason why I break stuff so much.

9. React Native

I’ve always been curious to see how well my web-flavored React skills translate to creating desktop and mobile apps in React Native, but I’ve never had a good excuse to build anything.

10. MDX

Using MDX to bring React components into Markdown files and then rendering them through Gatsby sounds awesome.

11. Publish an open source package on Github and NPM

As an amateur developer, I’ve always struggled with accepting the idea that anyone else would ever want to use code I’ve written. It’s silly and something I want to correct.

12. Wheelbuilding

These wheels, not these wheels. It’s not tech-related at all, but it’s a skill I’ve wanted to learn for over 25 years. Ideally, I’ll find an IRL course I can attend in Toronto to learn this dark art.

This should make for a busy and fulfilling year! If you are an expert in any of these areas and want to point me to good resources, let me know on Twitter.

Written by Mark Allen, who is currently open to new product management and design roles in Toronto or with distributed teams. Say hello on Twitter.

Receive new posts by email