Many faces of programming

I developed software for various computing devices during my lifetime. When I started I had a certain goal, or end game… if you will. These days I see a vastly different person in the mirror compared to when I started, and that got me thinking, “I wonder how everyone else sees me?” Hi, I’m Cliff. You’re here because you write code and nobody else truly understands what you do. I’m here because I share your story. The following is an abbreviated history of where I started my career and where I currently am. It attempts to capture how the people in my life view me and how those views evolved over the years.


As a software guy I have always been misunderstood. It’s hard to describe, in words, where the disconnect is. Take the following exchange as an example:

So my wife says, “Go to the supermarket and get me a gallon of milk and if they have eggs get 6.” When I came back she was furious with me asking, “why did you buy 6 gallons of milk??!!!”

I replied, “Because they had eggs!”

The problem exists in the different vantage points the people in my life have. In the beginning of my career I was all about backend work. It was mostly legacy AS/400 but then I got into SQL with DB2 and… well, here’s a decorated description:

(Disclaimer: The author has shamelessly linked to artwork from various corners of the internet to make a point. Any similarities with what you find here and real life scenarios is purely coincidental…)


The DB2 SQL Database Programmer

What my mother thinks I do

What the Starbucks barista listening to my conference call thinks I do

What I think I do

What my clients think I do

What I actually do







I eventually moved into General desktop client/server programming. I felt the need to convey my career change to loved ones but I truly don’t think they understood where I was headed.

The General Desktop Programmer

What my grandparents think I do

What my uncle thinks I do










What my wife thinks I do



What my neighbor thinks I do

What I actually do

Eventually I moved into more modern technologies landing my first job working for a major dotcom company. I got my first Blackberry, then my first iPhone along with other cool mobile computing toys.

The Mobile Developer

What my older daughter thinks I do

What my younger daughter thinks I do

What my best friend thinks I do

What I think I do

What I actually do


…and finally I came to understand that not only do different vantage points color my perceived reality, also my choice of programming language has a huge impact on how I attack problems. The next illustration explains how various programming languages would shape ones overall college career.

Programming Languages in College


#Songsincode – It was fun while it lasted

Activity seems to have slowed significantly on the #songsincode trend on Twitter. It’s just as well since we all have day jobs and need a lot less distraction. I posted a few of my own. For those of you that didn’t figure them all out here’s the expanded list:

Take out the paper and the trash! Or you don’t get no spendin’ cash!
-(double) get {return getpaper && trash == taken_out ? spending_cash : nil} #songsincode

Stayin’ alive, staying alive! Ah-ah-ah-ah…
it=new Thread(go); try{it.start();} catch(InterruptedException e) {it.start(); out.println(”ah-ah-ah-ah” + it.isAlive());} #songsincode

Stayin’ alive, staying alive! Ah-ah-ah-ah…
foreverTask = new Thread(this); while(foreverTask.isAlive()) {System.out.println(”ah… ah… ah… ah…”);} #songsincode

Everybody dance now! Let the rythm take control, let the rythm move you
everybody.each { Date()); } rhythm.take(new Control()); rhythm.move(you); #songsincode

Whitney Houston: If I should stay,
I would only be in your way.
So I’ll go, but I know
I’ll think of you ev’ry step of the way.

if(i.shouldStay()) yourWay.contains(i); else { i.go(); for(eachStep : theWay) i.know(i.hasThoughtsOfYou); } #songsincode

Kriss Kross: some of them try to rhyme but they can’t rhyme like this 4x
4.times{ someOfThem.each { them -> assertFalse this.rhyme.compareTo(them.tryToRhyme()) : “can’t be done”} } #songsincode

Seal: I compare you to a kiss from the rose on the grey. Ooh, the more I get of you the stranger I feel… yeah!
[@”you” caseInsensativeCompare:@”a kiss from a rose on the grey”]; while([self get:@”you”]) {NSAssert([self feelStranger]);} #songsincode

Notorious B.I.G. If you got a gun up in your waist please don’t shoot up the place
Cause I see some ladies tonight who should be havin my baby

if(you.gunUpInYoWaist()) {please {shootUpthePlace(NO)} } else { ladies.each{ i.see it.canBeHavingMyBaby() } } #songsincode

Michael Jackson: C’mon with the force don’t stop! Don’t stop ’til you get enough!
MJ RIP: while(true) { if(you.getEnough()) break; else keepOnWith(THE_FORCE) } #songsincode

Bobby Brown: Every little step I take, you will be there every little step I make, we’ll be together…
2.times{ [1..99].step {assert you.willBeThere() && me.isTogetherWith(you)} } #songsincode

R. Kelly: I believe I can fly
I believe I can touch the sky
I think about it every night and day

thinkAboutIt = {i.setBelief({ assert i.canFly() && i.canTouch(getSky())})} nightsAndDays.each { thinkAboutIt() } #songsincode