If you ask any developer what you should do to improve your coding skills, the response you'll often get is to start working on a project of your own. But we all know that is so much more easily said than done.
Side projects are a fantastic way to develop your skills and beef up your résumé, but the most common question I get asked by junior devs is how do I find a side project? It's a totally valid question, how are you supposed to find something to work on? Well, for starters, you could read the rest of this post...
What is a problem you've had recently that could be solved with tech?
This is always a great place to start. Is there a problem you encountered recently that made you think "surely this has been solved already" or "surely there is a better way to do this..."? These have "side project" written all over them.
Is there a menial and repetitive task that you have to do semi-frequently and/or often forget about? This is a classic problem that could be automated. Here's a few examples:
- Compressing images and/or converting to a different format before uploading them to your blog (eeek, I should work on this)
- Copying form data to another spreadsheet/database
- Watering your pot plants or feeding your fish (please no one ever give me fish again, I already have 17 Mountain Minnow on my conscience)
- Marking when bills have been paid in your budget spreadsheet
These are all things that could be automated in different ways. The solution may be some scripts added to the deployment pipeline, or hardware (Arduinos are great!) to measure the moisture of soil in order to work out when the plant is thirsty.
Do side projects have to be meaningful?
Absolutely not! I am a big fan of the quirky websites and/or apps (https://www.emergencykitten.com/ is still one of my all time favourite websites, and does anyone remember lolcats? That site was a big hit when I was in highschool 😹Also believe it or not, I am actually more of a dog person 🐶). See your side project doesn't have to solve the worlds problems, sometimes they just exist to make yourself and others smile, and to teach you some new skills along the way.
What skills are you aiming to improve?
Something that is big on my list to work on this year is being less terrified of deploying things. I don't know what it is, but I am just always so anxious that my projects are going to come crashing down and what if it's on the day that someone is actually looking at this page?!?!?!? 😱
Where was I....
Oh yea, deployment. Since becoming more confident with devops-y kinds of things is what I want to do, this year I am venturing outside of my comfort zone. I am deploying all my projects on platforms I haven't used before, namely Heroku and AWS (check and half-check). Step 2 is to then set up some continuous integration pipelines (I have dreams of just being able to push to master and off it goes to production).
My point is that sometimes it's more about what you want to learn and the context is irrelevant. I already happen to have some projects (this blog for example) in the making to deploy on different platforms, but if I didn't I'd just whip up some projects using tutorials of different frameworks and deploy those for practice.
Which brings me to my next point...
Every framework has a Getting Started guide, and if it's not in its own docs, some kind soul has a write up on some other platform (Medium, dev.to, their own blog, etc). These are such a great tool to use just for the sake of learning something new.
If you want to learn how to create a website using a different framework, then head over to the docs and follow the tutorial until the end. This great for a few reasons:
- It teaches you the basics of the framework.
- It could trigger an idea of what you want to learn next with said framework.
- If you do enough tutorials of enough frameworks, you eventually start to notice the patterns, strengths and weaknesses between similar frameworks.
Maybe you could set yourself a challenge, e.g. the React tutorial walks through creating tic-tac-toe, how would you make the same application, but in Vue?
Side projects are valuable for everyone, but particularly for junior developers and those who have been on a break from the industry for a while. They are a really great way to practice your dev skills, learn new things and are a great creative outlet for you to show off what makes you awesome!
Hopefully you found this post useful, if it sparked any ideas for your next project I would love to hear it! Come chat with me on the twitters! @hayleyavw 😁🐦