When I look back at all the side projects I've built post college, after you know, "starting my career," I have the following:
- A local resources app for learning (my first rails app) that never launched.
- A weight lifting tracking application - that partially launched (reached about 300) members, before I took it down.
- A task management app - I finished, and then decided it just wasn't right. Never launched. It was also my first app to utilize highcharts.
- A trading application (80% done - will revisit in the next few years), and my first app to utilize KnockoutJS & Resque & Stripe.
- An app for remotely managing error pages, and my first app to utilize AngularJS. This one launched - 404engine.com.
I've been out of college 5 years now, so I'm creating these things at a rate of about 1 per year, which certainly isn't bad.
The obvious problems
- I'm not launching enough of these.
- I'm doing absolutely no customer development.
- I'm not getting paid.
- Each one of these exists in git as a portfolio piece
- Each one taught me to be a better designer
- Each one taught me to be a better rails coder
- Each one taught me to be a better javascript coder
- Each one taught be to think about XYZ market differently
- Each one taught me how to embrace new technology
- They all gave me massive experience on both ends of building an app (design to backend)
- They all increase my value to any employer
- They all increase my confidence
- They increased my skill set.
- They take initiative.
- They teach me about solving my own needs.
- They teach me about solving needs that never existed.
- They teach me about failure.
- They push me to be better.
- They set me apart.
Developers who say they don't know design, are simply developers who haven't failed at design enough times.
I went to school for business. Yet I'm paid to be a user experience designer/engineer and developer. I get to work in photoshop, HTML/CSS, Rails, & Javascript every day at work - and its incredible. I'm extremely confident in what I do - a formal education in CS or design may have provided a different foundation to let me move faster, but it can't touch years of just trying shit out.
The first web site I built, I was 12. Today I turned 27. So 15 years ago, I made a site on Angelfire called, "Jack from the moon's galaxy" - it was based on an inside joke from summer camp. The web site had links to pages I liked, and an image for the movie "Idle Hands" which had been my current favorite. And it of course had a counter. It looked like dog shit.
The next web site I built also looked like dog shit, and so did the next one. But they looked a little bit less like shit each time. I was never a naturally good designer. I love that. I have no emotional connection to my designs. I want them to look good, and want to love them - but if they're ineffective, and user's don't like them, I want to throw them the fuck out and start over. Good design for me, is iteration & testing.
This has been exactly the same with every project I've taken - personal, freelance, career - every project I should be getting better as a designer, coder, business guy, marketer, etc. Every project is just the next iteration of myself.
And thats how side projects should be viewed:
- Yes, try to at least have a business model.
- Yes, at least think about customer development
- Yes, try to get paid
- But do it for the experience
- Do it to learn
- Do it for fun
- Do it to be better