I am a software engineer. This means that I design and write computer programs to solve problems like displaying text on a web page, moving a piece of machinery around, or predicting whether the stock market will go up or down. It does not mean that I am capable of understanding why you get that little yellow warning each time you log into Windows, how to uninstall McAfee Antivirus software, or what all that text that you scroll past before clicking “I Agree” when installing a new videogame means. Nor does it mean that I understand what all the different ports on the back of your television do, or why your iPod will not work properly after you have dropped it in the toilet.
Being a software engineer does not inherently make me a “computer expert.” Certainly, I will spend much of my day working with a computer, although perhaps you will be surprised to learn that I will also spend much of it writing on paper, reading books, or staring off into space. I am certainly likely to have an intimate knowledge of using at least one operating system, although since I will be using that system to write code, there is a reduced likelihood that it is the same one that you use to play Solitaire or listen to music. And as I work within the I.T. industry and may have a lot of nerdy friends, there is also a good chance I will be quite up to date on the latest gadgets available on the high street or enjoy endless jokes referencing nineteen seventies science fiction films. But then again, maybe not.
There is no particular reason to think that I write software because I am particularly “technical” by nature, or have a natural affinity with computers. It could instead be that I am naturally drawn to mathematics, or to problem solving in a more general sense. Perhaps I enjoy struggling over cryptic crosswords, reading expansive Russian literature, or listening to complex modal jazz. Perhaps not. I might say that I am at my best when spending more time thinking than typing, but equally I might say that I am more productive when engaging in discussion rather than pondering alone.
You should not expect me to understand how all software works. I may have a lot of experience working with systems designed for transferring large files between different computers, but no conception of how video transcoding works. It could be that I have a huge amount of experience in writing rich websites with popups, drop-downs and flashing logos, but not the faintest idea of how to write a simple version of pong that renders with a smooth frame rate. Maybe I have never heard of pong. Maybe I can only guess at what the phrase “smooth frame rate” means.
I might have a degree in computer science, and have been taught the history of computing, from the present day all the way back to Pascal, Leibniz and Babbage. Or maybe I would have to look these names up on the internet to pretend to know anything about them. There is a chance I understand the difference between transistors, vacuum tubes and printed circuit boards. But I might not, and anyway why are you asking me?
You might ask me to look at a computer you are thinking of buying, to get my opinion. It could be that I understand all the technical details intimately, from the importance of overclocking your GPU for high-end graphics performance, to the variable network latency likely to be experienced between different wireless networking standards. Then again I may not understand these things at all, though I can probably compare two computers side by side and tell you to choose the one with the bigger numbers. But then, you could probably do this all by yourself.
If you have a problem with your computer, and you can not open a program, send an email, turn it on, turn it off, turn the volume up, the brightness down, change the border on a document, plug it into your speakers or headphones, rearrange your desktop, upgrade your memory, downgrade your antivirus, clear your temporary internet files or do something about all those broken pixels, you might think that as a “computer person,” I would be a good person to ask for help.
Maybe I am. Maybe I worked for two years in I.T. support before going into programming, and so understand how to offer more help than trying to turn it off and on again, or typing the problem into Google. But then again, maybe not. Maybe I spent four years studying physics at university, before moving into software engineering in industry, and have spent the intervening years working on “back-end” systems with little need to understand how to resolve errors in any kind of client application, let alone one installed on Microsoft Windows, which maybe I only use once in a blue moon and only then to play games, because for some reason that I can not understand the OS X builds of games just don’t work as well, and even then spend all my time cursing Windows Update without having the perspicacity to disable it despite it constantly rebooting my machine back into OS X at the most inopportune moments, and anyway why do you have to hold down the the option key when rebooting in order to get that little popup menu which lets you choose which operating system to boot into, it is so infuriating because I have this wireless keyboard which I have no idea how it works but it seems to get turned off when the computer restarts so I can’t just start holding that button because it doesn’t recognise it so instead I have to sit there like some kind of idiot with my finger poised above the button and then jab it down as soon as the blue screen appears and apparently within like a fraction of a second because otherwise, oh no, you’re too late, it’s going to boot into OS X by default so you’ll just have to sit there and wait and try again in another minute it just annoys me so much why can’t they get these simple things right like another thing how come you can’t get it to show two different programs when you have another monitor plugged in I mean come on it is such an obvious feature to be missing and I guess I could probably work around it if I found another window manager to install but it’s such a pain and anyway it would probably break all the other stuff I’ve got set up so I’ll just leave it but really it’s this stuff that just drives me mad I mean I get really incandescent when they just get the simple things wrong stupid bloody machine!