"Open source software development, to a degree unmatched by any other modern profession, offers apprentices the opportunity to watch journeymen and masters at work, to interact with them, and to learn how they think, work, succeed, and fail. Transparency and accountability govern not only the production of source code but also the companion processes of design, specification, testing, maintenance, and evaluation."
I'm so glad Jon wrote this, since it raises a great point about open source that's entirely unrelated to the topic of how and when and why to use the programs. It's a point I've carried around in my mental model for years. Open source projects are a wonderful place for anyone to get experience about what they like to do; get experience so that potential employers will give them a second glance; and get experience so that they will actually learn to do those tasks well.
Experience is really important.
I listen to the This I Believe series on NPR, and if I were ever asked to do an essay on something that I believe very strongly, it would be this point about experience. Theory is squat until you try it out. Like the people on What Not to Wear say, try it on! Or like your mom says, eat one bite of your Brussels sprouts. Your roommate says, just go to the party for an hour. Just, as the Nike folks, do it, and see what happens. Doing is an entirely different thing than thinking about stuff.
So that's the first point. How do you know what you want to do with your life? You really don't know how good you are at something, or what a career is really all about, or whether you like something, or anything else important, until you do it. Not study it, not watch it, but do it. Internships are how I learned in college that I really disliked anything and everything to do with my business major, though the theory was cool enough. (What I enjoyed was the act of learning about interesting theories about how society works--which often has very little to do with what you do with a business degree.)
Another angle on experience is its role in getting hired. Let's say you know you love project management. That is an absolute certainty. How do you get a job doing project management, on the strength of your business and communications double major and your role as a counselor at Camp Kickamonga?
And then there's the third item, actually learning to do something well. The reason that people look for experience when they hire. How do you find your Obi-Wan who will teach you how to herd cats, or have your horrible but incredibly valuable disastrous learning experience? How do you learn to do basic stuff like write courteous, direct, concise emails?
The answer is experience.
OK...how the heck do you get experience?
- I dug up unpaid internships during college.
- If your parents are in the same profession, that doesn't hurt.
- Volunteering is good. If you want to have experience with project management, figure out something in that genre to do for free for Habitat for Humanity or the animal shelter. Help to organize a blood drive. If you want to become a techwriter, I'm sure there are a zillion places that will be happy for you to document their processes.
Or there's open source projects, which are always ready for more hands and have a huge variety of tasks. It's not just for programmers. Writers, project managers, fundraising, advertising and marketing, web design, maybe even accounting--that's just off the top of my head.
So for anyone out there who's read What Should I Do With My Life and wants to try out a few things, any parent who's got a 23-year-old college graduate slacker in the basement, or anyone of any age who wants to get experience and the advantages it brings, find an open source project.
I won't even try to list them all, but OpenOffice.org is a wonderful product with a great bunch of volunteers.