I'd like to share my experiences with Free Software Melbourne, its free software workshop, and, more importantly, what has happened since then because it's kinda cool—it's not what I expected.
I consider myself a beginner programmer. Most of the time I have no idea what I am doing and no idea what the documentation is trying to convey. Lost is perhaps my most common emotion.
But I wanted very much to attend a workshop that showed me ways that a total n00b like me could make a meaningful contribution to some sort of software project. It was this desire, in fact, that led to me being nominated as a member of the committee of Free Software Melbourne. I wanted to be a part of that workshop so much that I was prepared to be one of the people to make it happen. And so, some jerk who didn't want to take responsibility for anything nominated me for a position on the committee at the group's annual general meeting. Nice.
Getting close to the event, I started to seriously doubt that I would be able to do anything meaningful at the workshop. I'd begun to lose faith in my ability to write any code of value. I was scared and looking for a way that I could just support everyone else to hide my own inadequacies. You know, make everyone cups of tea and all that so I could avoid facing what a total loser I am.
But after the day started and I'd managed to pull through a minor event organizational panic called "We have nothing for morning tea," I sat down at a desk and, teaming up with another participant, looked for a project to contribute to and a thing to do.
I'd no idea that Openhatch.org was a thing I could use to do that, and especially no idea that I could filter projects and issues to find something that would suit my skills and skill level. Just learning it was a thing was enough. A major revelation and perhaps, in hindsight, the most valuable thing I got out of the whole event.
Eventually Veronica and I settled upon a small task we figured we could handle for the Oppia project and got busy downloading source code, installing and making some changes. Along the way, we encountered a problem that required an answer from the project devs. And so I shot off a message to them expecting to hear from them in a couple of days or something. It turned out they were online and watching messages, and we got almost an immediate response to our question. Problem solved. Keep going.
We didn't quite get the job done by the end of the day. There were still some problems to be solved and tests to be run, but it wasn't much.
Now here's where the story takes a turn. (Or changes gear, or something.)
The code I wrote turned out to be waaaaay off the mark. It wasn't working. Files were in the wrong directory. File addressing was a mess. And to top it off, I'd changed quadruple the lines of code I'd needed to by adding HTML tags to every line when all I need to do was open and close them before and after an "if" statement. DUH!
The cool thing was I had the balls to tell the project devs what I was thinking and where I was having problems. And they were cool enough to answer me and help out. Not something I expected. The end result was something that worked and looked great.
But wait, there's more! Submitting code and having it merged into the project was awesome. It felt like being a débutante at the ball. But the best part of the whole experience wasn't that—it was when the project devs added me as a member of their organization on GitHub and listed me as a contributor.
So I feel like the real result wasn't better code or a nicer design. The real result was that by going to a little workshop in North Melbourne for a day, I moved from being just some guy trying to learn how to program to someone with actual programming credits to his name on a real, live project. I didn't expect that. I actually did something worthwhile. I kinda feel like a different person.
Well, that's what I wanted to share.