What Am I?
Question: Based on the following information, what am I?
- I rarely travel into the office and when I do, I have no urgent need to attend before noon.
- I attend occasional ‘meetings’ – a large proportion of these are down the pub.
- I sit in front of a computer all day without appearing to do much. My wife claims I type gobbledegook for a living.
- 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.
- When you ask what I really do, I respond with an incoherent mass of gibberish.
- 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)*:
- I know nothing and I am scared of computers
- I can start Windows and know how to reboot when something goes wrong
- 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.