As 2020 is coming to an end, I have been reflecting on how much I have learned this year.
For many, including me, it has been a rather difficult year. Unsurprisingly, this has had an impact on what I have been able to learn or build.
Looking towards 2021 with the intention of further improving myself as a developer I have written a list of things I want to study.
Learning
I have many things I want to learn. The things I want to learn generally fall into the following categories:
- Fundamentals and getting better at things I already know and use
- Promising tools and concepts that I’ve been keepign an eye on
- Things that will allow me to create things I cannot create with my current skillset
Back to basics
The fundamentals of the web, JavaScript and programming will always be relevant. I find that even as someone who has been coding for about 5 years that I still benefit from going back to the basics.
These are the fundamentals that I want to study (again)
- Event loop
- Design patterns
- Prototypes and classes
- Regular functions vs. arrow functions
- Learn more about how web pages are rendered
- Promises and
async
/await
- How the internet works (generally)
Refreshers
It’s good to know the tools you use. I want to brush up on things that I use frequently or want to start using more.
These are the things I want to brush up on
- Go through all the ReactJS documentation again
- Setting up GraphQL servers
- Unit testing with React Testing Library
- End to end testing with Cypress
- Chrome devtools - what’s new that I’m not using yet?
- TypeScript
Going outside of my comfort zone
Up until this year I have mostly been “just” a frontend developer. In an effort to go outside of my comfort zone I have been venturing into the backend, but only slightly.
I want to get more familiar with backend in 2021.
- Authentication with JWT (JSON Web Tokens)
- API Gateways
- Restful APIs (I have mostly done GraphQL at this point)
- PostgresQL with Sequelize
- Server logging best practices beyond
console.log
- Docker and Docker Compose
- Get more familiar with Postman (or Insomnia which is a free alternative)
- Authentication library like PassportJS
Serverless and JAMstack
Serverless and JAMstack are things that aren’t going away anytime soon. I have some general knowledge about it, but I haven’t really taken the time yet to dive deeper into these concepts and build something with it. Now that this way of building has matured I think it’s time to give it a fair shot.
- NextJS: it’s a framework for React that is designed to work great for JAMstack projects. I’ll probably be taking Wes Bos’ Advanced React course when he updates it since I already purchased it.
- A headless CMS like KeystoneJS, Strapi or similar. Probably one of the cheaper ones since some are really expensive.
- AWS Lambda and other Amazon services that might come in handy.
- Something with a database. Not sure what yet.
There are also things in frontend that I want to check out but haven’t yet.
These are my frontend picks:
- TailwindCSS
- XState: a state management library
- React Hook Form
- Styled System: a helper library for Styled Components, which I already use
- Design systems
Courses
I have a Frontend Masters subscription and I will be using it of course.
These are the courses I want to check out next year:
- JavaScript Hard Parts v2
- JavaScript Recent Parts
- JavaScript New Hard Parts
- Production Grade TypeScript
- Production Ready NextJS
- Intro to Containers
Maybe I’ll also take a look at the Computer Science Learning Path.
If I can get through the courses above I will also be checking out some of the serverless / JAMstack courses on there.
Additional things to learn
These are things related to my field, but not particularly to my role. These are just things that interest me generally.
- How to write good content
- Search Engine Optimization (SEO)
Doing
Learning is very important, but to truly learn you must also do.
I would like to start a larger side project in 2021. I’m not sure what it is going to be yet.
I’d like to have a project that has either a proper backend that I can use to learn more about backend or a serverless setup. Or maybe I will build something serverless, but have a serverless application that works together with some sort of backend I can build.
A busy year ahead
In 2020 I definitely overworked myself a couple times to a point where I needed a longer break. I’d love to avoid that in 2021.
Not that taking breaks is a bad thing, but ideally I should not overwork myself to the point where I don’t want to do any coding outside of work for a couple of months. I’d like to be more consistent with programming throughout the year.
With that in mind, I don’t think I will be able do all the things in this list.
I will be moving into my own house and learn a lot of things related to that, so I’ll also have less time to work on web development outside of work.
I can always move things to 2022 if I don’t get to them in 2021.
Happy holidays!