Sunday, March 22, 2009

Getting Started in Open Source: You Don't Need to be a Rocket Scientist

(Ed. Note: I'm spending more time microblogging these days than updating Hawthorn Landings, so if you're interested in what's going on in the wonderful world of LH and the Federal Republic of Northern California, you may want to subscribe to my notices on identi.ca or follow me on Twitter.)

Last weekend, I attended the birthday celebration of a dear friend, Angie Wolff. Most of the crowd were techie types, spending their day jobs thinking about genetics, scientific instruments and space. Late in the evening, we gathered around an outdoor fire pit for conversation, enjoying the night chill and the heat from the tower of flaming oak wood equally. I couldn't help but think that such gatherings have happened in much the same form since man first walked the earth.

The gentleman to my right worked for the local arm of NASA, and we wandered across topics like debris in space and government spending on the space program. Fascinating stuff all around, though I admit to delivering a disgusted rant about the fact that human beings can't seem to keep their waste production confined to this planet. It's bad enough down here, thank you very much. Eventually, the conversation lagged a bit and he asked the eternal question: "So, are you an engineer?"

I laughed and responded, "No. In fact, I have a degree in Medieval English Literature." He blinked. I'm used to this sort of surprise. "But," he said, "you ask all the right questions. You talk like an engineer. You think like an engineer." "Well," I countered, "I suppose that's because I spend so much time around them."

This weekend, my thoughts turn to the fifth Google Summer of CodeTM, and the topic of this post. Each year, #gsoc on Freenode fills with new nicks, and it's been wonderful this year to watch the community band together to welcome our newcomers, answer their questions and guide them as they begin to explore the world of FLOSS. Another year, another GSoC, and the same set of questions: "Will I get accepted?" "What are my chances?" "I am really excited about Open Source, but I don't think I know enough. Should I even bother applying?" "What if I'm a first year student in Computer Science, is that enough experience?" "What if I have been programming for years, but I have never done anything Open Source? Should I give up now?"

To those who are feeling intimidated, I cannot say this too many times. Go ahead and apply. The worst you can do is not be accepted. Even if you fall flat on your face, you are still moving forward. Even if you are not accepted into the program, you will still get the chance to learn more about some exciting projects and to get to know some of the folks who make those projects happen. You may not work on their code base in the next few months, but who knows when you'll find they provide an itch that you just have to scratch.

The pep talk I wrote two years ago holds equally true today. Go read it if you need some reassurance. Take a break from Programmer Insecurity.

As of tomorrow, I will have worked for Google's Open Source Programs Office for three years. When I got started, I'd written precisely zero lines of code. As of today, I've written just under one thousand, but nothing that was ever particularly useful — mostly just "Hello World!" type stuff — and I've never submitted a patch nor designed an elegant file system. I know my work, both for Google and in my volunteer time to the community, has had a useful impact, even though I don't write code. Consider how "little experience" I have and then ask yourself if you should really be wasting cycles worrying about how little you have to offer instead of focusing on how much you have the opportunity to learn.

And for those of us who know that all that glitters is not only code, there are many avenues of contribution to the Free and Open Source Software world that have nothing to do with fixing bugs. I'll be talking more about tips for newbies in the coming weeks. Assuming I can tear myself away from Denting and Tweeting.

Labels: , ,