So you want to get better at a certain language or expand your toolbox, and youβve heard side itβs good to blog about them or open source the finished(ish) project. Great! But you just donβt know what to work on. Nothing is coming to mind and youβre not really sure where to start. Today I humbly present to you three ways to find ideas for side projects, and hopefully you can find something to sink some time in to!
Practice What Youβve Learned
The first option I present to you is to simply practice what youβve learned in other projects, at university/school/college/etc or at work. Donβt break any company rules or anything (such as taking code off work computers etc etc), but try to set up similar technologies, like your database or task managers at home and see if you can do some basic operations. Itβs a great way to fill in the cracks of knowledge, and re-affirm what you learned previously. Itβs also great to test out newer versions of these technologies to see if they have anything that could be of benefit to the original project.
Example: I was playing with some new iOS API and found something we could use at work. I suggested it to my team and it went on the backlog.
Automate Your Life
Is there some website you check every day? Some forum? Weather site? A subreddit? Your great aunt's blog on restoring wooden furniture? Whatever it is, a good project is to try make a script that gets the information you want for you, and presents it to you in a practical way for you, such as an email, tweet, RSS feed. Do this every weekend and after a few months your life will be even smoother. Youβve learned something, had fun(hopefully!) and made your own life easier.
Example: I once had a friend who lived in a run down apartment. His shower took a few minutes to actually warm up when turned on. So he rigged up a small microcontroller to detect temperature and it sent him an SMS message once it was hot (somewhere in between 2β5 minutes after turning on)
Explore APIs
A further generalization of the above is to explore some APIs. Almost every company who has a software offering has a public-facing API. This could be anything from Google for maps, to Twilio for SMS to Flickr for Photos.
A great place to start looking for APIS you can interact with is ProgrammableWeb or just a simple Google search. Then just scroll through some and see what comes up, and see what inspires you. Try mix and mash 2 or more apis to generate something new. Heck, you might even have something worth selling to consumers once youβre done. For example, Buffer, is a whole company built on top of APIs. But the automation they provide is so valuable that theyβre able to charge.
Example: Just scrolling through ProgrammableWeb, I see the Flickr API and the Twilio API. Iβm sure thereβs people out there who want the latest cute dogs messaged to them every day. Could be a fun project! (Tweet me if you end up doing it!)
Once youβre done with your project, donβt forget to blog about what you learned and have a go at open sourcing it!
I wish you all the best with your projects!
This is the 13th post in my Junior Developer Diaries blog series. Iβm writing more every week, and you can sign up to my mailing list to hear more, and read previous posts on my website.
Latest comments (36)
Brilliantly put, Sam! We used the first 2 principles while building remote.tools :)
Not only did we have information about 100+ remote-friendly products ready with us. We only had to create a repository on WordPress, which we did in around 15 days. The best part is that we still use the repository every other week for different use-cases.
The experience was so enriching that my co-founder wrote a post about it on Hackernoon. You can read more about it here- hackernoon.com/how-side-projects-c....
Would be great to hear your thoughts on remote.tools
Looks great! Always nice to surface cool tools for others to find easier. Often people make cool stuff but aren't great at getting it into the hands of those who may need it!
That is the motive, Sam!
We have built remote.tools version 2 with this in mind. In it, product makers can add their products so remote workers can discover their awesome work and we plan to launch it by the end of next week.
I can share it with you too if you would want to have a look :)
Check out FindASideProject.com
Great ideas at FindASideProject.com
Really appreciate the tone and real life examples! One area that I struggled with in terms of automation was figuring out when to automate. I would often say, hey I could totally automate this process, and then just go for it without truly thinking of the process and consequences. I would often start a project with the best intentions, and within an hour find myself struggling to even begin to solve the problem. I would eventually get overwhelmed and defeated, and repeated this ad nauseam for a number of years(while genuinely believing I was making progress!), and it wasn't until my manager noticed this a few months back and took some corrective actions that I realized how exhausting it was to work towards a goal I didn't particularly understand well.
One thing that was particularly helpful was my boss needling me for more information before I tried to automate something. His goal was to ensure that not only could I run the task myself without any issues, but I could explain it to others and ensure I had worked out as much of the problems up front. Once I was confident of my solution on paper, I would then begin automating the process. I have baked this into my daily routine so that it's not even a thought anymore. Much less stress and anxiety, and I've found myself making larger strides then ever before.
Great tips!
There are for sure some things you dont need to automate, because they're one-offs, but in the long term, if there is a time saving with automation, it's a candidate for a side project.
thanks! I am working on doing data science on my own liked tweets, but I still needed this article.
I had lots of fun with the Spotify and Marvel-APIs. You could make a random-song-preview-player, or a Twitter-Bot that tweets random Superheroes.
developer.spotify.com/web-api/
developer.marvel.com/
Nice!
It was a lot of fun to make!
All π programming π should π be π this π fun π
Great stuff Grant! Cool project too!
I also automated my life with a chrome extension project recently... producthunt.com/posts/preach (a little less serious than yours, perhaps :P)
General rule for me is to write stuff that I would use, and then use it. For example, I wrote a plugin for my editor recently which allows me to review PRs on Github from my editor. Automation is also a pretty big part of what I do on the side.
Nice rule, Jonathan! Building tools for yourself is how we have evolved, and I don't see why it should stop in the digital age, haha!
Nice tool, where can readers get it?
Well, its still in experimental stages, but here: github.com/AGhost-7/critiq.vim
I have the intention of writing documentation when I have a better idea of how I want my workflow.
Great post, Sam! I especially like building new projects by exploring APIs.
Btw, I published this list of 27 project ideas for learning React on freeCodeCamp that you and others might find useful.
Hey Hirishi! Great list - I'm guessing most, you could use any JS framework (or anything you like), not just react?
Yes, of course. I created the list because I'm learning and teaching React, but you could use the ideas for anything, even without a framework.
Awesome! Great list - thanks again for commenting, I appreciate it :)