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).
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!
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! By all means, feel free to tweet them to me — I’m @samjarman. Or just follow along for banter about code, career improvement and other nonsense.