Over the course of my career, heck, over the course of my life, I’ve had a reoccurring, “issue” shall we say. In a nutshell, I feel like doing some programming, but what shall I write?
You see, programming for me, since the age of nine, has been my hobby. I just happen to be one of those guys that actually gets paid to do what he loves to do, and would be doing anyway. For the time being, I will ignore the downsides of that as it’s a post and then some in it’s own right
What got me into it was really two things. The first is learning things. That “Eureka” moment when moments ago a bunch of mumbo-jumbo clicks in and make sense is an awesome feeling. The other draw was making some machine do my bidding. Again an awesome feeling which I can’t put into words if you’re not a programmer, I’m sure there are analogs in other disciplines, however I’m not familiar with those disciplines.
Well that is all fine and good, but I’ve been a professional (e.g. my sole income) programmer for seventeen years. I’ve got a lot of experience at a lot of levels of business types (differing in both type of industry and company size. Size may not be the right phrase, I’m trying to speak towards the level of “enterprise” processes an organization may or may not embrace)
Every now and again I get lucky and a new relatively self contained technology emerges that I’d like to toy around appear (I’m thinking Linq, jQuery, WebService, etc) Things that are big enough to have a challenge but small enough to not require a massive underlying framework.
The latter is really the problem, if I’m going to spend any of my not very often free time to writing code, I need to be getting something out of it. I need it to genuinely teach me something and therefore enhance my skill-set, and thus my career. Or I need it to be fun enough that it’s worth the cost.
An example of fun to be worth the cost, I will cite my work on the Quake3 Arena III mod, ReactanceUnlagged. (sorry the site is really nothing more then where to grab the latest version which is a few years old.) But working on this was a blast! At one time we had a number of people running the mod on their servers and a fair amount of the very waning quake3 community (it was a 10 year old game when I started modding.) It was written in plain jane C which is my favorite play language, mostly because while it’s possible to blow off your foot, it’s really rewarding when you don’t and it works right
Now the down side to that project was the ramp up, learning their API’s and their virtual machine you coded to.
So the other type of project I’d be drawn to for learning experiences is something more enterprise level, where I’s need to design and implement a database, a data access layer to access the data, and a back-end to process the data, not to mention the ui to work with the data (I’m not really a UI guy, but I can make something clean and jQuery is fun) So that’s a lot of ramp up to. A lot of the work I already know how to do and to do well, but implementing it again just to have something to work off to learn something is rough.
The same applies to open source projects, the ramp up is rough, while the rest is rewarding.
I seem to be having a problem picking where I want to invest the ramp up time, and while I believe in supporting and working on open source projects, I also feel that if I have something unique to contribute to the world (even if it’s just my own immediate world) I’d rather do that.
And the more time passes as I can’t decide, the more time I’m not ramping up and wasting. Most likely I should just pick something and go, worst case I find something else that rips me away which must mean I was more interested in it than the other, so be it.