I have a saying that “when I’m not coding, I’m coding.” I love what I do that much. I also bought into the commercials back in the day that stated “never stop learning.” So how do I fuse the two together? I do so through fun and educational pet projects.
Why have a pet project? Why just not learn new technology on the job through a project or training? Here are several reasons why:
There are no deadlines!
Often times you’re on a tight budget or time crunch at work. This can affect the amount of time you can spend working with a new technology. Instead of being able to get immersed in it, you might simply find the quick code snippets online and move forward. Being able to work on a pet project during your own time gives you the freedom to take a couple nights, or a couple months, to really dig in deep and not worry when anything is actually done.
Resources are everywhere!
Between the various code academies out there, online tutorials, free eBooks (I personally take advantage of the O’Reilly Reader Review Program to find “getting started” type books for new technologies), and good ‘ol StackOverflow, there is no shortage of materials to get you started. Previously you would have to go to your local bookstore, find 1 book -hopefully-, then read through that and hope there were plenty of code examples to work with.
You can do something fun!
Yes, you may love your job, but sometimes you’re building something that doesn’t really excite your interests. When you’re working on something that YOU really want to work on, you get excited! You take the extra time to track down that random bug or cool layout tweak. The desire to make something that you want to use, even if it is small, gives you that extra drive. It also gives you that extra sense of gratification when it actually works!
When I think about it more, I think my first pet project started a good 10 years back, but here are some recent examples of my own pet projects:
A year or so back, I was interested in learning Ruby on Rails. I also had this itch to make a random quote generator to use from my old QWK Mail days. So over a couple of nights Quote-a-Dillie-O was born. Shortly after that I needed a little more “data oriented” knowledge in Ruby on Rails. I also wanted to take a hard look at how to build an app that could “run on any screen” using Zurb Foundation so I built a game timer for a friend and his shop.
A little while after that I wanted to check out the Laravel framework that we were starting to use with new projects. My friend’s game timer needed a new home as well. So I rebuilt the game timer using Laravel. I was even able to sell a copy of it to somebody for use on their own site. Then I REALLY neeeded to get some kind of Trello and Pomodoro integration going. I also needed to brush up more on my front end design and jQuery skills (for AJAX data binding from 3rd party services). So I rolled up my sleeves and created Trellodoro.
My current pet project is a complete change of pace. It originally started to start getting familiar with AngularJS for a project we were working on. We took a different route for that project, but my interest was still there. So I moved forward with AngularJS, stumbled across a “real time” application framework called Firebase and have been building a prayer journal application to let you track (and optionally share) your prayers.
So what’s your pet project? Why not start one today (or tonight really, no using your employers work time 8^D)? Ultimately, it doesn’t matter if you’re building “yet another twitter reader” as long as it’s something that YOU would realy want to use and you can learn something while building it.