The Zen of Free Labor

June 1st, 2009 by Kevin Leave a reply »

Lets rewind back two years ago.  I was a fresh software developer of our college.  The major problem plaguing college students is that they do not have any practical experience.  How do you obtain practical experience?  You need to work!  You need to make the mistakes you need to make to become a productive professional.

Out of college, I knew exactly one programming language proficiently: C++.  Proficiently is probably a poor choice of words.  I KNEW C++, but I KNEW enough to make simple decisions and get the job done the best way I could.  My first (technically second, but we won’t go into that) professional job was all C#.  I didn’t know C#, but I knew enough C++ to become very comfortable with C#.  In fact, one week after starting the job, I was adding new features to the project I was assigned too.

However, I knew that I needed to expose myself to a several different technologies.  My wife and I took a trip to Nashville and visited with some friends of ours. One night, I was having a discussion with my friend about his hobby, photography.  We had ended up on the topic of him putting up a web page for all of his photos to sell.  I thought it was a wonderful idea, and volunteered to build the site for him.  The caveat was that I would do the site for free, seeing as how I needed to build up my skills in ASP.NET.  He would pay for hosting, etc, and I would build the site for him.

This was almost two years ago, and the site still remains undone.

So what happened?  Life happened!  Paying jobs happened!  Of course its a great idea to say that you’re going to do something for free to help someone else.  What happens though when you need to mow the yard?  Stay late at work?  Get sick?  Spouse gets sick?  The first thing you drop is the project you’re not getting paid for.

Fast forward to a year ago.  I volunteered to work on my church website.  Same scenario.  I wanted an avenue to build on top of the ASP.NET skills I had, and I figured working on my church website was the best way to do that.  The difference between this project and the first was that I needed the input of several people in order to make any progress on the site.  When you’re not being paid, the people you’re doing the job for aren’t as quick to respond to emails as they would if you were charging per hour for their response.  This site will be done, but it’s taken several months longer than it needed too.

What’s the moral of the story?  You need work to show off in order to get more work.  Offer to do a free project every now and then.  Use it for experimenting with new technologies.  Don’t allow the project to get too complex.  You don’t have time for that.  Get it done as soon as possible.  If you let it go for too much longer, you’re never going to complete it.  That is, of course, you have more will power than I do.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter
Google Buzz (aka. Google Reader)
Advertisement

2 comments

  1. Excellent points. I’ve certainly found that the best way to either improve or keep my skills fresh is to use them in “real world” scenarios, IOW, writing code that actual people will use, rather than just exercises or demos.

    But you make a good point that you have to balance “real world” and other stuff in your life, particularly if you’re writing code for free. Easy to have a project grow well beyond its original intended scope. However great that may be for your users and the project, it may not be so great in terms of the rest of what you need to get done. :-)

    Still, I’d highly recommend “free labor” as a means of getting better at any given task, whether in programming, or in other areas, for that matter. Hands-on learning, with a specific end-goal in mind, rocks!

  2. Barry Hicks says:

    I agree completely. Even though I’m working on a website for my own benefit, it’s still difficult to stay on task when it doesn’t generate any income for me.

Leave a Reply