I’ve been working with computers for a very long time now. It’s something that at this point, I would say comes naturally to me. While I certainly am not a PhD wielding expert in the field, I do at least have some qualifications for handling and working with them. With that in mind, I’m sure you can imagine that every day and night I usually get a call of some kind from someone regarding a computer system that they are responsible for. Everything from why in the world they can’t print a piece of paper to something as critical as why a virtual network of servers has completely collapsed. In my years working with some of the most advanced technology on the planet, it becomes apparent to you that what you consider to be relatively easy to understand doesn’t come off in much the same manner to those around you. Imagine my shock when someone told me that they assumed if the monitor to their computer was broken that the entire thing was down the drain.
Like a car… sorta… kinda
The truth of the matter is that most people see their computer as a magical black box. You know, user input goes in, computer output comes out, always a communication. As such, with rare exception, most users don’t like to dig around to find out what their computer does. I was going to claim myself the first to think of this analogy, but I saw a post recently on Reddit that mimicked my thought process on this issue. Now, while I don’t think most people know all that much more about their cars, I do think they know more about their cars then they do their computers. In some respects cars are less complicated than your average home user’s computer, in others more complex, but at the end of the day if I were to ask the average human being if they knew what a battery was they’d have an idea.
More importantly than that, if I put a Battery and a Spark plug next to each other, a majority of individuals would be able to tell me what each piece is. This is because we have taken some amount of time to clarify the components which make a car “Go”. We have simplified the concept to a point that the average person doesn’t see their car as large black box, but rather see it as a series of parts. For instance, they know that if I remove the tires from your vehicle, the engine will still go, it simply won’t have tires. Or if I don’t put gas in the vehicle it won’t go.
I think we need to take a similar approach to how we explain computers. A cmd prompt doesn’t need to be a magical box that destroys the world. There is something to be said about the education system not doing its job, but largely this isn’t AS much of an issue with the younger generation. Let me quickly clarify that this doesn’t mean the younger generation is better at this. If I could recount the number of times I have had someone bring me a computer in one hand, their cell phone in another, and a dumbfounded look that said “I’m 16 and what is this?” it might demonstrate I’m not always drunk (That is a lie, I’m always drunk).
Breaking it down
But this issue is truly pervasive, and I think one of the largest issues is the separation between hardware and software. People tend to see something like Windows as the entire machine rather than just bits of data sitting on their hard drive. We as people in the computer field have to educate people on the various components which make up the computer at hand. To make the understand why it is that their monitor is a bit like their tires. That the monitor is only displaying what the computer sends to it and you can replace it easily without too much concern. The most frustrating of course may be people’s confusion between RAM and Hard Drive Space. Admittedly, this is entirely the fault of those of us who designed it. I imagine if they were perhaps to use different units of measurement (not Bytes), people would understand that one is temporary and one is permanent.
Honestly, even though it is a purely marketing style move, perhaps we could append (TEMP) or some people friendly word in front of the Calculations for RAM to help people see that difference in writing. That said ,the overarching truth is that we really need to create a completely new level of abstraction to help explain how computers work. Or perhaps we need to make it clearer that a computer is just as much composed of parts as is any piece of lego architecture.
They Aren’t Fragile
We need to stop giving people this idea that they are like fragile pieces of glass that will snap at the smallest pressures. People are afraid to go in and make changes to their computer, and it is often one of the first things I teach people. Yeah sure, small changes can break big things, but it’s pretty tough to make a situation completely unrecoverable.
Heck, I recently dropped a think book from a decent distance and botched the OS. Luckily it was only system components, the user data was all still intact, so recovering it wasn’t too much trouble. But the thing is that most people would instantly see that situation as end of the computer style problems. We have to let people know that they can go in, poke things, that it can for the most part be recovered. Beyond that, we have to stop telling people programming is done in binary. I think people have this misconception that programmers just do this all day:
Hell, the only reason I can do binary math is because you need it to set up subnets and the like, past that I have almost never worked with it in such a way in programming. We have so many layers of abstraction these days between the programming language and the processor, that while it’s useful to know what XOR and other processor instruction are, it doesn’t come up THAT often. I’ve found in my programming experience it breaks down more into loops, databases, and error catching. Yes from time to time, it is handy to know EXACTLY what the compiler is up to, but for the most part getting a small application to work isn’t going to require that level of knowledge. Making a graphical calculator is more of a pain from the perspective of just repetition and not knowledge.
We need to let kids know that programming can be fun and a chance to exercise their mind. We need to do more at an earlier age to introduce incredibly basic computer concepts. I shouldn’t be playing Alice Teaches you what do.blah() is at the college age. I should be teaching kids that it’s really just kind of like its own variation of the English language not all to different from perhaps Spanish or french.
Really, this is just a rant, dealing with this on a daily basis you have to understand that it can become frustrating at times. We need to do a better job teaching people what computers are, not just how to make them go. Much like I knew the basic components of a car before I ever knew to drive, I think to we can do the same in relative safety with other aspects of our growing and complex world. Kids are smarter than we give them credit, the trick isn’t so how much they can retain as it is getting their attention. So please, teach your kids what a CPU is.