40 Things I Learned From Side Projects

December 03, 2010 •

TL;DR

It’s been a busy year at Paravel, no doubt. In addition to client work, we at Paravel put a high value on personal side projects, famously The Many Faces Of, because through goofing off we can stay at the top of our craft.

In order to quantify the benefits side projects, I decided to take note of at least 40 different skills and technologies I’ve learned this year solely through side projects. The bulk of my work at Paravel is still in PHP and since clients aren’t paying me to be totally confused for hours on end, I had to hone these new skills in my spare time.


HTML5

Skills += New HTML5 Elements, HTML5 Forms, Modernizr, Custom <audio> & <video> controls, Geolocation, Local/Session Storage, ARIA roles

Side projects were a beautiful place to start understanding and using HTML5. It started with babysteps, but HTML5 is now the norm at Paravel. I’m enjoying getting into the grittier parts of HTML5 and am super-fascinated by things like the Geolocation API.


CSS3

Skills += CSS3 Transforms, CSS3 Transitions, & CSS3 Keyframe Animations

We’ve been using CSS3 at Paravel for well over a year, but it wasn’t until I presented at Refresh Austin in April that I really learned CSS3 Transforms, Transitions and Animations. The demos I prepared for the talk are still helpful to me and eventually turned into an article Trent Walton and I cowrote for .NET Magazine.


Ruby

Skills += Rails 3, Sinatra, BDD, HAML, SASS / Compass

Learning Ruby has been a long time in the making, like since 2006, but I’ve finally made the switch from PHP. I’m thinking like a Rubyist now and have open side projects in both Rails and Sinatra.

Special Thanks: The wonderful Austin on Rails community and Socialization Practice afterwards. The Cafe Bedouins who I can interrupt and say “What did I do wrong?” Keith Gaddis and his Behavior Driven Development (BDD) class. And Mattt Thompson, with whom I’m working on a soon-to-be-released side project [/tease].


Web Performance

Skills += Browser cache, ETags, gzip compression, LABjs, WordPress Caching

An afternoon of recording the ATX Web Show with guest Kyle Simpson turned into a binge night of coding and a now unending obsession. I spend my days counting kilobytes and milliseconds. I documented these learnings in my Web Performant WordPress post, but it all started because of that podcast interview.


Version Control

Skills += Git, Heroku

Being the lone developer at an small frontend-y design shop, we haven’t really needed a version control system, FTP suits our needs pretty well. Sure you can play Git by yourself, but its boring and unfulfilling. Git is really better when at least 2 people are involved. [/innuendo]

Thanks to the patience (again) of Mattt-sensei and the folks contributing to Lettering.JS, I’m behind, but getting my source control skills in check.


APIs

Skills += Gowalla API, Dribbble API, Infochimps API

In 2010, I spent some time following and learning a few newer APIs. Brian Hoff and I even started Rebbbounds to keep track of the cool stuff that’s being done with the Dribbble API. And the aforementioned side project with Mattt-sensei is based on one or more of these APIs and will hopefully deploy soon.


OAuth

Skills += Gowalla OAuth, Omnisocial Gem

Playing around with the Gowalla API, led directly into using their OAuth service for checkins. And on another top secret side project, I played around with Twitter and Facebook Auth using the Omnisocial gem. It’s tops!


Mobile Web Design/Development

Skills += jQTouch, jQueryMobile, Touch Events, Mobile Web Apps

Starting in March with the annual Austin Town Hall SXSW Free Show Guide, I started shifting a lot of my focus to mobile web development. Then the iPad came out and I released a touch-based mobile web app board game for The Many Faces Of.


iOS App Development

Skills += iOS, Objective-C, XCode, Interface Builder

Without spilling the beans too much, I’m working on an iPhone app that’s pretty good, especially with the help of Paravel+Mattt. I’m still challenged by Objective-C so it’ll be slow goings, but hopefully I’ll be able to focus more time on that in the near, near future.


Miscellaneous Buzzwords

Skills += MongoDB, Node.js, Adobe Illustrator, WordPress Custom Post Types, Tumblr Themes

One-day tangent projects also allowed me to pick up a few more miscellaneous skills. Most self-impressing, I made a label for my homebrew and now I can use Illustrator now without feeling like a total dweeb.


These 40 Things I Learned

Let me reiterate: These 40 things are a result of doing side projects. Naturally, these skills are transferring over to Paravel’s client work as well. Side projects are adding value to me, the employee, as well as my company. But don’t take my word for it, just read the words of my own boss and check-writer, Trent Walton:

As a boss, I know that learning through experimentation and exploration makes my employees more valuable. As a worker, I know that if I’m going to have a job in this industry next year I’d better learn something new.

Side projects haven’t kept us from doing business, they’ve kept us from doing “business as usual”. They’ve kept us from growing stale in an ever-changing webscape. Not to mention the intellectual stimulation in regards to learning new things. I’m not talking about levitating things with my brain, but almost. I’m more engaged day-to-day in my current job than I have been in any other job I’ve had in my life.

The Japanese have a word that literally means working yourself to death, “karoushi” (過労死). Don’t do that. Be responsible with your mental health and your relationships. I feel morally obliged to mention this.

In the same serious tone, don’t underestimate how beneficial side projects are to employees as well as employers. I’ve benefitted both professionally and personally by spending time working on stuff (web apps, podcasts, etc) that I enjoy. Keyword: “enjoy”.

Lastly, I'd like to thank my wife for being patient with me when I'm on the computer because I often lose basic husband skills like being attentive. <3