Coding Rocks!

(Monday, May 18, 2009, 3:52 p.m.)

As a part of preparing for my re-entry into the job-market, I've been revisiting code I wrote for Magic Lantern Playware: a demo retro video game written in C++ under DirectX and Windows API. It has been awhile since I've done this for a living, but doing it again is actually really refreshing.

Coding can be quite frustrating at times. Computers are (notoriously) unforgiving of little mistakes and, very often, nothing works and the error messages you get are cryptic. There can be stretches of hours or sometimes even 2 or 3 days where you're stuck and can't move forward because, for example, someone else's code that you're building on doesn't make sense, or you're missing libraries you need to link into the code, or the stuff compiles and links but crashes the machine and you have to comment out code until it works again and then uncomment out bits until you find the part that crashes it. At these moments, coding work can put me in a lingering bad mood.

But when things are going well or when you finally uncover and demolish that stubborn bug, it can be quite rewarding. I've been coding in some capacity since I was 10 or 11. I got my start in Applesoft BASIC on an Apple II, when the personal computer was just coming into being. Coding is on pretty equal footing with writing as one of my passion skills. (Music is close, but I didn't really start playing an instrument or writing music until high school, whereas I started writing and coding in elementary or middle school.)

I think that computer programming is something most adults (that bother at all) learn because they have to, and as a result it is something that is not fun for them. But for me, I think coding is another expressive medium, like writing or music. What's cool about coding is that you can turn your ideas into stuff that happens; stuff very few people in the larger population know how to make happen on technology that has the capacity for presenting incredible interactive audio-visual experiences. You can be an inventor or a craftsman without having to be good with power-tools. Programming is maybe like woodworking or sculpture, but you're sculpting audio-visual (or textual) experiences out of lines of code.

Programming can also be a hell of a lot like creative writing because, as a creative writer, you are sculpting imagined experiences out of words. But programming demands fine-tuned analytical abilities and organizational skills and the capacity to dig DEEP into grungy details. Misspell a codeword and your code won't compile. Coding demands precision of thought and choice. It forces you to work the details out whereas you can maybe slop through in writing something and people will still get it. (True poetry, though, I think demands close to the attention to detail that programming does; you can slack more with prose but effective poetry requires focus on the sounds and nuances of meanings of your words.)

Coding is, for me both a craft and an art. Both the art and craft aspects of it are intrinsically rewarding to me, and therefore it is a skill I enjoy using and hope I will be able to continue using in my career. The craft aspect of that reward is, I think, the simple joy of creating something that works, that does something useful. That's the engineer and the artisan in me. But the sheer versatility of coding also engages the artist in me. You can create (virtual) life itself with code and all with mysterious lines of code. It's a lot like being a wizard able to conjure things with incantations, but it's magic that really does work.

Return to Blog Index.