What Am I?

Question: Based on the following information, what am I?

  1. I rarely travel into the office and when I do, I have no urgent need to attend before noon.
  2. I attend occasional ‘meetings’ – a large proportion of these are down the pub.
  3. I sit in front of a computer all day without appearing to do much. My wife claims I type gobbledegook for a living.
  4. After years of work, I produce no discernable end-product and when I give you the name of it, you think it’s made-up.
  5. When you ask what I really do, I respond with an incoherent mass of gibberish.
  6. Despite working with computers every day and going to university for three years, I can’t fix a problem with your printer like the spotty 16-year-old YT kid in your office.

Answer: A lazy bastard.

Or so you might think…. What I actually do for a living is a Software Engineer. Also known as “programmer”, I write software for a $90bn-a-year computer company – IBM.

Over the course of several blog posts, I’m going to try and explain exactly what I do (well, maybe just have a stab at it) for a living. I can’t summarise my entire job in a single blog post, but what I can do is drip-feed bits of information which might give you a clue as to why I get a payslip every month.

But why the secrecy? What is it about being a so-called “software engineer” that makes you pity us mere mortals who just use computers? The problem is, I can’t think of any other industry which is like this. Doctors and nurses are there “to make people better”. That’s an easy concept to grasp: patient comes in, diagnosis of problem is applied, procedure is performed, patient is better. The relationship between experience (i.e. amount of time in med. school and practicing medicine) is closely related to how good you are at fixing people problems. Same goes for all these other professions:

  • Lawyer: more time spent reading books means more experience and better knowledge of legal system
  • Teacher: acquires knowledge and ability to communicate that knowledge, puts that ability into practice
  • Rocket scientist: draws lots of complicated maths on a board, plays with stuff that goes bang and ends up with a moon landing

None of these as a concept are hard to grasp. Maybe not everyone could manage these jobs, but the principles are well-founded. With programming, however, there’s a problem. Introduce yourself to a technophobe as a programmer and you get blank looks. You then explain that you work with computers. “Ah!”, they say, “our Jimmy is very good with computers too and he’s only eleven”. The problem is though, that “being good with computers” means little Jimmy can find porn on the Internet, start up MSN, and sort out a sticky situation with the caps lock key in Word.

OK – so maybe I’m getting a little snobbish here, but it demonstrates a valid point. There’s 11 levels of understanding here (to drop a really geeky joke in there)*:

  1. I know nothing and I am scared of computers
  2. I can start Windows and know how to reboot when something goes wrong
  3. I can explain why the task scheduler decided to swap that process out

Technophobes fall into level 1. They believe that people who are “good with computers” are at level 2. They have no awareness of level 3. To confuse matters further, a large number of those at level 2 have no awareness of level 3 either. But then you have some at level 2 who think they’re at level 3, when in reality they lack the ability. Further complicating matters is the fact that often people at level 3 refuse to talk to people at levels 1 & 2 due to social ineptitude. With their sandals, beards (women included), constant muttering to themselves, dislike of daylight or fresh air, sneering between themselves at the in-jokes (such as my binary one above), and lack of human contact, they make a corpse look like a useful addition to a party. Due to this, level 1’s and 2’s who are aware of a level 3 are reluctant to talk to them. It’s a nightmare. And that’s even before you get into the world of the non-technical IT consultant.

Part two will kick off properly with “What is software?“.

* One of the basic fundamentals in computing is the use of a counting system called binary. Instead of “hundreds”, “tens”, and “units” as we would normally write numbers (decimal), with binary you have “8s”, “4s”, “2s”, and “units”. So “11” in binary is just really “3” in decimal.


  • Is Jimmy really 11 or only 3? I think we should be told. As a BT engineer I am presumed to be an expert on fixing “phones” when in reality they are treated like all other consumer goods such as kettles and irons, in other words, if they go faulty, chuck them in the bin and buy a new one. Also I come across “network managers” who have an “0” level in IT, these are usually wearing white socks and have faces like a painters radio, are these at level2? These are the people who decide over one weekend to change the IP addressing scheme of their office and then wonder why nothing works, it did in the classroom. I also come across people who don’t have the hand-eye coordination to use a mouse, are they at level 1 or -1? I look forward to ensuing episodes.

  • What’s wrong with “We build the things which the people who build the things you take for granted (like cashpoints, banks, the world economy) in turn take for granted.” If pressed, confess that we take spec-compliant hardware for granted.

    Or: “It’s called MQSeries” – “I’ve never heard of it” – “Of course not, you’d only hear about it if we got it wrong”.

    Surely there’s a level 4, where we sit: characterised by “I could write the task scheduler”. You or I could certainly do a better job than the one in Mac OS X, which migrates threads from one processor to the other all the time – a single-threaded job utilises 50% of each processor. I’d leave it on one to make better use of the cache.

    I feel I should confess this somewhere: I spent two days not finding a data conversion bug because I can now read ASCII and EBCDIC hex equally well; I didn’t notice that some ASCII data was labeled as EBCDIC cos I no longer have to look any of it up…

  • Pingback: It’s all just spinning rust » So What is Programming