The Lost Programmer
Why did we start programming? I started programming to create worlds of wonder. To assist me in engaging with alternate realities. The first program I ever tried to write, on my own, was a character generator for the Marvel Super Heroes role playing game. I attempted this feat using the venerable Commodore 64 and its included Basic programming language. I have never completed it.
Do we fail ourselves as a programmer by allowing time and life to distract us from our joys? I enjoy shaping data and finding solutions to problems. Thankfully the world at large is willing to pay me for it! However, my day to day work alone, does not bring me all the satisfaction I desire in my work. The parts I most enjoy in my day to day work are those small pieces that I build to make my own life easier or more interesting. This often has the effect of making it easier to meet my employer’s goals. While this is nice it does not satisfy the desire to just have fun!
Admittedly, living only for ones own desires can quickly pall. Not to mention that it often doesn’t pay very well! More importantly when trying to achieve common goals by working together we are exposed to others. This conveniently happens, quite often, when working for an employer. We as programmers grow more skilled and competent by exposure to others from whom we can learn and be challenged. My early career was hampered by working positions that lacked senior developers who could mentor me. Working alone does give you a “can do” attitude and an independent streak! Like Nnanji in the The Destiny of the Sword Dave Duncan challenge those around you to learn! Find that better swordsman and learn something. You won’t become the greatest swordsman in the world by watching He-Man reruns! In short working to achieve others goals is not wasted time or effort. Even if periodically it seems like you have been stranded on Dagobah with only a horde of Zombies!!! to keep you company.
In modern software development the programmer is little more than a subroutine in the system. When terms like Project Management, Change Management and CMMI are bandied about on a daily basis you quickly realize that large organizations tend to view programs as the by-product of their mammoth bureaucratic tar pit. It can be quite easy to lose sight of the joy in our work when it is obscured by the blizzard of paperwork that proliferates in such systems.
Programmer’s should be more like the poet who write’s newspaper copy by day and pens his fantasies and despairs by night in verse. Where is our Programmer Laurete? Where are the application haikus? Where is our Shakespeare? We have the Art of Programming Donald Knuth which delves into subjects so arcane as to be barely intelligible to many programmers yet alone the laymen. A laymen can still appreciate a poem such as Casey At Bat or The Raven. Where is the equivalent program? XKCD? Angry Birds?
Beauty of whatever kind, in its supreme development, invariably excites the sensitive soul to tears.
Edgar Allen Poe
Is it even possible for a program to elicit an emotional response as naturally as a painting? Words and therefore poetry is a form of programming. Programs which elicit emotional responses from the reader once they are trained to read.
Do we then need to mandate a certain level of algorythmic knowledge of all students much as we demanded literacy in language and mathematics? Certainly algorythms which is just a fancy way to say problem solving is already widly acknowledged to be necessary even critical to our nation. Whether or not you read modern computer languages we as a race can indeed appreciate solutions to problems when they are presented in an understandable format.
For example a recipe that results in delicious food is merely a program or algorythm which the cook executes. Once again this is an area that is widely considered an art. Though the recent trend toward molecular cooking may take some of the mystery out of it. Donald Knuth is leading us down the path towards using natural language to write our programs. Though how the written word can be described as “natural” is somewhat beyond me. Business proposals are written using “natural” language and yet are not considered art. Art requires inspiration and a step beyond the mundane.
For this to happen we must follow our muse! What is your muse? I have no idea! Perhaps the Super Cool Marvel Super Heroes character generator is mine and perhaps not. That is however, where I am going to start. Using Ruby on Rails I will write this long delayed character generator. It is high time that I once again move from a place of work to a place of play on the Matrix of T’sel as described in John Dalmas’ The Regiment. Eddie the poet might have put it thus.
With me programming has not been a purpose, but a passion.