An important component of growth as a software developer is interaction with other software developers. My involvement in community began long before I ever considered being a software developer: It began as a member of a Boy Scout troop. Being a Boy Scout taught me a great deal about interacting with people, learning from mentors, leadership, and being responsible for the well being of others. I learned a ton from my fellow scouts and Scout Master Mr. Vick.
After junior high (and my departure from Boy Scouts) my next foray into community was in high school. I was a card carrying member of the Golden Dragon club, which was a bunch of geeks (one went on to be an actual rocket scientist) who gathered once a week to play various role playing games including: Dungeons and Dragons, Gamma World, Boot Hill, and Traveler. I see similarities between role playing games and software development projects. Like software development, the game takes multiple people working together using a set of fairly complex rules. Some of my most lasting friendships (including with CODE Magazine's own content editor Erik Ruthruff) came from sitting around a gaming table purging a fantasy world of orcs, ogres, and trolls. Role playing also motivated me to write. I published my first article, “The Role of Taxes” in Polyhedron magazine when I was 17, and I've had the writing bug ever since.
After high school I pursued a career as a software developer. I began as a lone wolf programmer in Central Oregon where I discovered the wonderful world of online communities. I joined CompuServe (member # 76244,3116). Over my 1200 baud modem I downloaded countless examples of code posted by other members of a board called FOXFORUM. I used these code samples to learn new techniques and to see if I could re-create them from scratch with what I knew. Later on I learned about the message board features of CompuServe and learned how to use tools like TapCIS to download and post messages.
A few years later I moved to Seattle and became involved in a database user group. I met a number of friends I still talk with regularly including Jeff Winchell, Ron Talmage, and Paul Litwin. I cannot tell you how much fun it's been discussing software and life with these people; sometimes until very late in the evening.
A number of years later I took the stage at my first user group to present a session called “Using DDE with FoxPro for Windows.” Not in a million years did I ever think I would speak in front of a group of people. I hated speech class in college-I was scared to stand up in front of a crowd. But you know what happened? I really liked speaking at the user group. Sharing my research and knowledge with a group of people was a valuable experience.
I'm fortunate that I get opportunities to speak in front of literally thousands of people at user groups, code camps, and conferences about things that I find fun and interesting. Speaking in front of a group about software is an honor and it is very rewarding. There's no better feeling than hearing someone say: “Thanks. That will make my job easier.” That's what community is about.
Along with the privilege of being a community speaker, I am also lucky enough to edit CODE Magazine and to help the CODE Magazine's reader community. Some of you may have similar stories to mine. Some writers publish their first articles here. I'm happy we can provide that opportunity.
You get what you put into a community. I want to make a call to action to you. If you haven't been to a user group, I suggest you find one and attend a meeting. You'll find a lot of encouragement and some answers to your programming questions, and you'll help to build community. If you are a member of a user group already, offer to give a talk. If you lead a user group, try to encourage people who want to speak but are wary. Work with them. Offer to do a team presentation. If you don't have a user group available, attend a Code Camp. One goal of Code Camps is to give people a chance to learn to be speakers. Or maybe try an Open Space event. These very informal events encourage you to post a topic on a board to discuss with other interested developers. Other ways to involved yourself in community include: adding constructive comments to a blog, starting your own blog, writing an article, or contribute a tip to a website, newsletter or magazine. The rewards of community are too great to ignore. Get involved!