15 January 2010

January Challenge #15:
This Guy's a Programmer?

Some of you may have seen my resume. For those of you who haven't and are actually interested, a flavor of it can be found here. For those of you who are not, here's the short version: I'm a game programmer.

Awesome, you say. Where's the progamming?

Yeah, I haven't blogged at all about programming, despite it being my professional emphasis. What's up with that? Do I secretly hate programming?

I don't think that's it. My first job that actually defined programming as one of my duties was the best time I'd had in years. Of course, that was also my first job in games, and it also doubled my salary from my last job. By changing more than one variable, the data is made ambiguous. Was that a great job because I loved programming, games, or money?

No, I think I liked all of it, so I probably don't secretly hate programming. So why not blog about it? It's not precisely a new discipline for me.

I wrote my first game program in high school, a primitive little thing on the TRS-80, text-driven with simple graphics. It was atrocious spaghetti code, badly architectured, but not bad for a freshman in high school in the 80s.

(No, I don't still have the source code. I tried a few years ago to retrieve the source code from the 5½ diskette it had sat on for 20 years. No such luck.)

And I don't think it's that I'm not still exploring the programming space. As a hobbyist programmer for many years, there were and still are many holes in my knowledge of the subject. I have enough engineering background and experience with learning new skills to recognize the sheer volume of what I have remaining to learn about modern programming.

I've been exploring data structures, algorithms, object-oriented software design, graphics libraries, coding standards, scripting languages, artificial intelligence... you name it. These things occupy a large chunk of my consciousness.

I think it's the gap between the two modes of expression, words and code. Some concepts are more easily expressed procedurally, as a series of instructions that produce a desired result. Others are more easily expressed in human language, with style and verve and... expressiveness.

And I'm no master of either form. I've been striving to improve in both, but there's a lot of road left to travel. Hence the January Challenge, an effort to drive myself to develop better habits and practices.

I've noticed that a lot of subjects begin to blur with others as you reach their more rarified heights. Philosophy, linguistics, and computer science start to intersect in the region of cognitive science, for instance. In my more advanced studies, coding and writing are starting to develop more commonalities, such as symbology and semiotics.

So is that it? Once I make a conceptual connection between computer language and human language, I'll post more and more about programming, less and less about anything else? Again, I don't think so.

In both writing and coding, the creator needs to consider the audience. The style and substance must both be crafted to target the consumer of the work, whether a reader, a player, or a compiler. The challenge frequently lies in identifying the audience. Just ask any marketeer.

So the question is, who is my audience in this forum? Friends? Colleagues? Random Internet users? My own ego?

No comments:

Post a Comment