“To be good with computers, you have to learn to think like one.”
Maybe you’ve heard that advice. If you haven’t, that’s good. It’s bad advice.
Hollywood movies are full of really silly stuff about “thinking” computers and robots. Sure, there’s some fascinating stuff happening on the cutting edge of computer “thought” (the field known as artificial intelligence), but there’s nothing like independent thinking going on in your home computer. Your computer does nothing more than carry out instructions created by people (who go by the job description programmers).
These instructions created by programmers are called software, programs, or applications.
Hmm. That’s computer-y stuff, and understanding it means learning to “think like a computer”, right?
No. People decide what tasks to perform or problems to solve, people come up with the rules for doing so, and people then write up those rules in the form of instructions that computers can understand. Poof, there’s an application! Yes, the application runs on a computer, a box of chips and electronic circuits. But the content of the application – what it’s made of – is human thinking all the way down. Nowhere in that machine is there some intelligent computer injecting circuit-based thoughts.
What’s the point of all this? Consider these questions:
- In your favorite application, why does a certain command appear in this menu, and not in that menu? Answer: It’s not because of some technological yada-yada. It’s because the programmer thought – for some specific reason – that this menu is the right place for it. (You might think that it should have been placed in that menu. And your idea might even be more sensible.)
- Why does that same application always fail at some particular task it’s supposed to perform? Maybe the programmer screwed up and wrote bum instructions (called a bug by programmers), due to lack of attention or poor planning or a hangover or whatever. Or maybe the application is working as the programmer intends, but she and you have a very human disagreement on how it should work.
- Why does your new photo editing application not include a feature allowing you to, say, add decorative borders to photos? Because the programmer thought you wouldn’t want that. (Or he didn’t have the budget to add that feature. Or the time. Or he just doesn’t like decorative borders.)
- Why will your movie player application play a dozen types of movie files, but not the one file you want to watch? Is it because you “don’t get computers” and are “doing something wrong”? Probably not. More likely, it’s because the file in question is a different type from what the application can handle. Maybe the people who created this type of file insist on being paid royalties from the programmers, who decided they’d rather not do so. Or maybe the programmers finished making the application before this new file type was even dreamed up (meaning that, not surprisingly, the application doesn’t contain instructions telling the computer how to handle the new file type). Or maybe the programmers have a personal conviction that everyone should use this type of movie file, not that kind. There are a lot of potential reasons – but note that they’re human reasons at heart.
- Why do manual writers use the words software, applications, and programs interchangeably when this just confuses the reader? Because people do screwy things.
And so on. For all of those questions, the answers don’t involve technical jibber-jabber that you need to learn. Rather, the answers are matters of human intention, human decisions, and human mistakes.1
It’s not your fault!
How often do you sit at the keyboard not sure what to do next? How often do you make some “mistake” yet again?
Don’t blame yourself for every instance of confusion! Your computer’s applications are the imperfect products of imperfect people, which means that it’s not always your fault when something is unclear, inconsistent, or just screwy. Running into trouble doesn’t mean that you “don’t get computers”!
Yes, a lot of trouble lies with the programmers who made any given application. Let’s have sympathy for these programmers, though. They have to work within all kinds of restraints: lack of time and manpower; customers who have really old and slow computers but demand that apps run snappily; the impossible task of balancing conflicts (like customers who scream for more features while other customers demand simplicity); and lots more. Creating a program is often far too big a job for one person, and so the program is made by a team of programmers – which means there’s lots of talent, but there are also the ugly compromises that come with work by committee.
In the end, an application might represent the best that the programmer could do, not the ideal she had in mind. She may be well aware of your troubles, and she may wish that the program could meet your wishes. Or she may be convinced that the way she made it is actually the way it should be. Oh well. So it goes, when humans make things for other humans.
Sure, there’s plenty of room in all that for purely technical woes, too: software that stops communicating with your digital camera, a printer that slops an inky Rorschach test into the middle of a page, a hard drive that clicks once and dies. Dealing with these may require what we’d think of as technical skills. But in the big picture, the how-to of using the computer and its software is all about understanding the intentions and the (sometimes crazy) design decisions of people.
In short, underneath that appearance of cold technology, computers and applications are all about people stuff. And that’s good news for you, because you’ve been learning people stuff all your life!
1 Here’s another good Q&A: Why do URLs – that is, web site addresses, like http://www.bitcafe.com – follow the http: with those two forward slashes // ? It’s for some complex technical reason, right?
No, says the main man behind the whole business of web sites, the estimable Tim Berner-Lee; it was a mistaken design decision and he wouldn’t repeat it if he could start over. Such are the foibles that the computer world is made of!