I’ve been a hobbyist programmer for nearly 7 years now, I started in late 2002.
Over the years I have worked on dozens of projects, most of them unreleased ‘tech demos’ as they might be called. Actuallly fleshing a project out and making it user friendly isn’t as much fun as messing around for yourself. Back in the early days (5+ years ago) I would share my work with my online friends, and a few online forums. I learned, the hard way, 2 critical things about the Universe through this process.
1. The Internet is full of morons, who find it rather easy to criticize, but who probably couldn’t do the same thing you are doing. If you can’t contribute a worthwhile criticism, you should shut the hell up.
2. The less time spent worrying about what others think gives you more time to worry about what you think. If it’s your project, it’s your project. If it’s your baby, raise it as your own. You’d be surprised how much the finished project (or, in my case, unfinished project) reflects your personality if you let it.
More importantly, I have learned that software development, when it is done for one’s own personal gratification, can be a deeply rewarding and cathartic experience, and I daresay that it has been a spiritual journey.
So why am I getting all philosophical about this?
Because, after a long hiatus from revision control, I have finally set up a small SVN and I vow to put my projects in the repository. In my main project, the ray tracer that I am fond of, I am cleaning the code up since I have already done an initial commit. Oh boy, it’s uggggggly. Lots of silly #if 0 comments and /* blah */ littered throughout, functions that don’t get called … YUCK. So it’s getting scrubbed down. Since I work on it so sporadically, so much testing and partial functionality – it makes me remember when I was working on things, it’s been like going through an old photo album. I remember what I was in to at the time, what music I was listening to, what games I was excited about playing (and ignoring, hence the programming), sometimes I get a faint recollection of what time of day or season. It’s been weird.
So, I have all this source code laying around. Nuts! Time to clean it up and figure out what to do with all of it. Some of it may end up being BSD’d, some has to be GPL’d because it uses snippets from other GPL’d projects, things like that.
I’m pretty proud of my 7 years of hobbyist development. I am proud that I haven’t taken a computer programming course, that me, the Internet, and some good old fashioned cleverness have gotten me by, even when the task at hand has been too big, I’ve always found a way to compile the uncompilable library (or find a replacement) or stumble across the answer, or even just ask someone who actually knows how to program which way I should go.