So, I recently finished (for certain values of "finished") my Google Summer of Code grant. It was very fun, stressful, and eye opening. I learned a LOT. A lot more than I could possibly encompass in a single (or infinite, really) blog post, and way more than the realm of computer hackery involves.
I remember starting the project, getting my SVN commit bit, svn co'ing the code, and going "Holy shit. I am in WAY over my head." But I kept at it. I was stubborn, and MOST important, asked incessant questions, probably much to the chagrin of my mentor and the very kind souls that held my hand through all of this.
I finally got my head wrapped around most of the code, and went, "hey! I kick ass! I'm contributing, I'm smart, I'm getting things done, I'm good enough, and gosh darn it people like me!." Then we got into stage two. The process preeeetty much started all over again. I had no idea where I was, I was writings tests for things I didn't quite understand, and did a great deal of staring at my computer screen. I wasn't, however, committing to the wrong places or fucking up the repo (as much) anymore! Progress was being made. Slow, but there.
This really opened up a lot of doors for me. It got my name out, it got people in touch with me I've never heard of before, opened doors I'd never thought of before, and one of the most incredible bits was it got me a job with the most kind Mr. Jay Kuri, the overlord of this here site. It put me on track to having a career in this field, to be quite frank.
Things continued to progress, up and down, good things happened, bad things happened, I got stressed, I conquered things. Not NEARLY enough was done in my opinion, and I take complete blame for this. I can't blame it on yak shaving, because, how much money is made off of yak shaving alone in people's careers on a daily basis? Contracts are often based solely on this concept alone. It's a necessary skill, just like learning how to milk Google and say "no" to that final beer.
What DID happen was we got the API cleaned up, got the community aware, involved, and a lacking part of the Helper API some love, and energy. A lot is left to do, but I've given myself (and many others who have and in the future will contribute) a great platform to go off of. It's not quite the claim to fame I wanted it to end up to be, but hey, like I said, I learned things here I may never have learned otherwise.
The moral of the story is, software is good/bad. It takes a long time to get things to a point where the public can use it. Even then, things break, and horribly. This is where a true programmer's skills shine, in the trenches, tired, without all his (or her) tools, and some bubble gum and duct tape. People come and go, and programming is merely a means to an end.
I've learned that computers and their problems are dealt with using your brain, and if you're lucky, perl. Even then, it's up to YOU to give perl the right directions and avenues to go down. Google Summer of Code gave me an insight into this, and in the end, taught me more about the lifestyle of a successful programming community than the programming involved in itself.