Side Projects as Learning Tools: How I learn new tech
Tags: sideprojects, beginners
Published: 2023-09-01 12:38:40

As a budding developer, side projects have become my invaluable companions on this learning journey, providing a beginner-friendly way to experiment with and understand new technologies.

I've been there, navigating through countless tutorials and online courses, feeling like I'm stuck in what's often referred to as **tutorial hell**. 


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



This can be frustrating for devs who feel overwhelmed and unsure of how to take the next step in their learning journey. In this blog, I want to share how I'm using side projects to learn new technologies.

## Setting specific learning goals

Before I start working on my project, I set specific learning goals for myself. 

- What new technology or skill do I want to learn?
- How will I measure my progress?

When Next.js 13 was released, it brought major new changes in app routing patterns, improved layouts, react server components, streaming and many more. 

So I set my goal to learn and try out these new released features from Next.js 13 in my next side project.

Setting clear goals will help keep me focused and give a sense of accomplishment as I work towards them.

## Choosing a project that interests me

I try to choose a project that I am excited about ( maybe fun game or any productivity tool). 

When you're working on something that you find interesting, you're more likely to stay motivated and you'll be more likely to put in the time and effort to learn new skills.

I choose a project where I can accommodate as much features/tools of the tech I want to learn as I can though not over-killing it, application of each feature/tool should be reasonable (If someone asks why have I used server components instead of client-side component, I should be able to answer that.)

This gives me a wide view of what features the new technology is providing and how to use them.

## Documenting my learnings

While implementing the project, I simultaneously document my learnings (currently I maintain them in my notion docs, but I will be starting to blog about them and share my learnings and insight with other).This also serves as a reference for my future projects.

## Celebrating and sharing my milestones

I've also learned to celebrate my achievements and milestones along the way. Releasing a new feature or product these are a reason to celebrate, this keeps me motivated and reminds me of how far I've come on this learning journey.

## Juggling side projects with my regular work commitments

Balancing side projects with work commitments is challenging. 


![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/3x2ryd6awx2xitcx1vq8.gif)



I find it helpful to schedule specific blocks of time (at max 2hrs and on weekends in there are if there are no plans) for working on my side projects. This way, I can ensure that I'm making progress on my learning goals while also meeting my work responsibilities.

Additionally, I plan out my project so that I can work on it incrementally, like release the project with core functionality first and incrementally ship other features. 



Side projects not only allow me to explore new technologies in a low-risk environment, but they also give me the opportunity to learn by doing. I find that I retain information better when I'm actively working on a project and applying what I've learned.

What side projects have you worked on to learn new technologies? Share your experiences and tips below!
keep creating🤘🏻!