As I move towards building up my GitHub profile with examples of work, I realised something about my side projects. They provided the perfect place to try new things and familiarise myself with new programming languages and frameworks.
Most web developers have probably at one time or another had a side project running alongside their day job. It could be an open source web application, a framework, a library or even a product or service that provides an extra bit of income. Regardless of what it is, having a side project is one of those things that web developers usually end up doing. It's almost like a rite of passage.
Most developers are working on large applications in their day jobs. Some are more fortunate than others on the choice of technology they're working with, but there will always be developers that are not using emerging technologies or languages at their day job. It just isn't always feasible to do.
So what's a developer to do?
Well, like most developers I usually turn to a book to pick up something new. I might read five or six development books in a year. Most of the time I won't go beyond reading the book to exercise the knowledge that I've picked up. When I do though, I usually put together little scripts or programs to get familiar with the language that I've just read about. Beyond that I rarely do anything else.
The best place to exercise your new found knowledge thought is on a side project. When I hit on an idea for a side project, I'll write a little spike for idea in Sinatra or Rails and see if it's worth having around. If it is, I'll keep it and use it for my own purposes. Rarely has anything made it past this point though.
With what I have been using on a daily basis though, I'm starting to tidy these bits of code up and put them on GitHub profile. I have one little side project called ClipPress that I run on a free Heroku instance. It's just a single form that I can fill in a few details and it will create a post in my Jekyll blog on Dropbox. It then syncs back down to my MacBook where I can fix up the post and publish it.
The benefit of a side project is that you have a working base to build upon. Building applications from scratch can be tedious work, and making something new for the sake of learning something else means that we might not see the end result in action. With a side project though you can build on the code base you have to see the results in a working environment.
Side projects are often cited as a way of generating extra revenue and they can be that if someone is willing to pay for it, but for most of us we just want to hack something together that removes a manual step we've had to do in the past. These side projects are a great place to try something new and learn from it.