How I want to become a better programmer in 2022
Tags: webdev, productivity, career, motivation
Published: 2022-01-24 06:58:42

At the beginning of my coding career, it was just about knowing a language perfectly and learning some soft skills and business skills to get a job. So in 2021 I gained knowledge in React, CSS, TailwindCSS, Scrum, GitHub and Git as well as mentoring and content creation. 

I achieved my goal of getting a job as a programmer in October 2021. In my current job I am working with new additional programming languages and tools such as Gitlab, Java Spring Boot, Angular, Angular Material, Bootstrap, SCSS and CMS.

Now that I've spent some time with these different languages and tools, I've gotten a feel for what I enjoy and want to focus more on in my personal life, and what I don't enjoy as much (but still need to work with them on a project-by-project basis at work 😅).

## What I want to focus on
1. React, TypeScript, Redux
2. SCSS, A11Y
3. Java (Spring Boot)
4. deepen my knowledge about Scrum and project management
5. contribute to Open Source

After I feel confident in the above, I'd like to do a bit of work with AWS Lambda API Gateway as well.

## The plan to do so
### Phase 1
I want to watch and read a lot of tutorials (besides the official documentation of course), mainly on **FreeCodeCamp** and **FrontendMasters**, to learn what's out there, what's even possible with **React** and then update my projects.

Meanwhile, I want to learn **TypeScript** so I can use it in my projects. TypeScript is becoming more and more required and moving from JavaScript to TypeScript in React doesn't seem that easy to me. But I will manage it.

Also, I want to create another branch in all my projects where I will work with **Redux** (which I will also learn) and **SCSS**. This will give me a good understanding of the differences in working with Context API or Redux, and CSS or SCSS and I will be able to understand advantages and disadvantages.

Finally, to take my projects to the next level, I would like to add **Java Spring Boot** to the backend.

Deepening my knowledge of **Scrum** and **project management** go hand in hand when I work on my projects as I work with GitHub projects, create flagged issues, track time, etc.

### Phase 2
The side projects I have right now aren't really that big. So I guess I will end up having to create another project to show what I have learned. I hope that this will be the case in 6 months. And I already have lots of ideas 🤓

When I've deepened my knowledge enough in the above areas, I'll be ready to venture into **Open Source**.

### Phase 3
If I feel comfortable with all the steps mentioned, it would be time to learn something new. I think I will start learning **AWS Lambda API Gateway**, but let's see 😅

## How I want to achieve
I'm in the process of creating a plan on **Notion** using a **Kanban Board**, creating issues, and sorting through all the bookmarks I've saved over the past year (and there were many) and adding them to the issues I've created to stop being distracted by too much content.

Each issue is assigned to a property like React, WebDev, Java, etc. and a priority. Right now the Issues are still too big, like _diving deeper into React_ and within that I created To Dos. This is not a good practice☝️.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/zqz7zf4yq074l3svaq2v.png)

It takes time to find a perfect solution, make issues as small as possible and have a good overview of them, sort them and decide how best to start and how to learn to make continuous progress.

I think I will have it all figured out in a couple of weeks and will share my initial progress in my next article about my journey, which I will write quarterly. 

Planning is also something that should be learned. And this process is perfect to get better at project management and its tools 😎

## Why the other languages and tools didn't make the cut
After all this time, I quickly realized what I definitely don't enjoy. Even if you don't (yet) know what exactly interests you, it's at least a good start to know what doesn't interest you. That also gets you going in the right direction. 

I'm not interested in working with frameworks like Angular, Bootstrap, or a CMS. Those have their advantages, of course, but I just don't enjoy working with them. I want to do everything myself, I want to think for myself and fully understand what is going on. I can't achieve this feeling when I work with the above mentioned tools. And the most important thing is that I am happy at work, I feel challenged and I like what I do 🥰.

I really like working with **Gitlab**. It's huge and I feel like you can do a lot more than with GitHub, or it's more manageable, I don't quite know yet. That said, I'll stick with GitHub in private for now.

As for **TailwindCSS**, I like it a lot. But I rarely see it in the job description, SCSS on the other hand is seen a lot and is more complicated, so I want to focus on SCSS and can still work with TailwindCSS if needed since I know some of it already.

## To sum it all up
From January I will
- decide which programming languages, tools and skills I want to improve
- create a learning plan with a Kanban board on Notion
- create issues for all topics as small and clear as possible to get the most learning effect
- share my progress every 3 months to see how much progress I have made, what went really well, what I need to change or adjust 

My future is still unclear, but I have an idea of where I want to be at the end of 2022. I want to deepen my knowledge, improve it and take my journey as a developer in a certain direction.

And now, let's get started and make progress. See you in 3 months 👋

---
![Thank you](https://docs.google.com/uc?export=download&id=166Ecq6uBl61U14OUlkHOHIBv2ArKoumJ)

_Thanks for your reading and time. I really appreciate it!_