Are our tools making us dumber?
It's lunchtime at the cafe and you give the cashier a $20 bill for an $8 purchase. She gives you $32.78 in change. You mention the mistake. She says, "But that's what the cash register says I owe you." She can't cope with the cognitive dissonance between reality and What The Machine Said. Later that day you get a frantic call from a co-worker--a recent addition to the programming team. "I keep getting this error message that it can't find the classes I'm using!" You ask, "By 'it' do you mean the compiler?" He answers "I don't know. I'm using an IDE." That night, you're helping your 12-year old son with his math homework when you realize--in horror--that while he's quite good with the calculator, he couldn't multiply two three-digit numbers using only paper and pencil if his Wii depended on it. These tools were designed to make us more efficient, so that we can focus on something more important than the tedious task of, say, giving change, organizing source code, and doing calculations. But are they helpful timesavers, or are we dumbing ourselves--and our users--down?
Obviously this depends greatly on the tool, the operator, and the task itself. If we all had to understand what every tool was doing/hiding for us, we'd waste brain bandwidth that could be used for something more important--like what we're using the tool for. But in my examples above, think about how fragile the user's ability is if they don't understand what the cash register, IDE, or calculator is really doing. Without that understanding, what happens if the tool stops working? (In college I worked in a small surfboard shop in SLO, California, and the owner said, "I don't care what happens to the cash register, always take the customer's money!" Power outage? Use a damn cardboard box for the cash drawer until it comes back up...)
But should a web designer need to be an HTML coder? Or can he just use a WYSIWYG tool? The debates still rage in the web development world, although the issue should be resolved soon enough. In desktop publishing, for example, you will never hear, "Oh, you can't just use Quark or Adobe InDesign... you really need to tweak the Postscript by hand to do it right."
Some people think even automatic transmissions are dumbing people down. (I've offered to let friends borrow my car and I'm always shocked when I hear, "No, I can't drive a stick.") A flight instructor friend said there are some planes they don't want you to learn on, because those planes do too much for you. Some people think convenience foods like TV dinners are keeping generations from learning to cook. My sister's boyfriend could fix his own VW bus, but that was before cars became computers, before master mechanics were often reduced to part-orderers.
Tools can reduce errors, handle the tedious work, and potentially let us spend more time in flow. Still, when I see those cashiers and programmers, I think we need to keep a few things in mind:
If you make a tool that's hiding things the user should understand, maybe you could provide a tutorial or even an understanding mode where the user can ask the tool exactly what it's doing and how it made the decisions it made. But there's another issue for tool developers, and that's where passion comes in. Consider a point-and-shoot digital camera with presets for things like Portrait, Sunny Day, etc. The camera hides the complexity of making adjustments for exposure, white balance, etc. For most people, that's the whole point of these cameras--they don't WANT to mess with the settings of an SLR. But it's staying in point-and-shoot mode that keeps most people from developing a passion for photography (and ultimately, buying more expensive cameras and lenses).
But what if you could use your point-and-shoot as a way to learn more about photography? It would be so helpful if you could put the camera into a kind of "teach me" mode, where it explained what it adjusted and why it did it. That would make a great bridge to help you feel more confident moving into a (more expensive) digital SLR and avoiding what most first-time SLR owners do--keep it in program/automatic mode.
Consider forcing students to do some things the old-fashioned way before letting them get their hands on the tool that'll automate much of the drudgery. My first semester of college stats wouldn't let us use computer apps for anything. Just us and our HP calculators. I hated it. But by the time we started running (and writing) our own programs, we had no doubt what was happening at each step and how to troubleshoot. When I teach Java, I always teach it using nothing but a simple text editor and the command-line. I do advocate tools for development, but never, never, NEVER for someone who doesn't understand Java at a fundamental level (compiler options, packages, namespaces, access modifiers, etc.)
90% of the time we probably don't need to know how things work under the covers. I only barely understand why 747's ever leave the ground. I've never changed my own motor oil. (I have, she says proudly, topped off my windshield wiper fluid.) But I shouldn't think about putting a bit in my horse's mouth before I understand everything from horse anatomy to the principles of leverage that bit was designed for. I don't have to know how to create a microchip to use this MacBook, but if I don't understand the basics of its UNIX OS underpinnings, I can get into trouble figuring out where things are, how to set up security, etc. And just because there's one Starbucks per every 20 square feet in the US does NOT mean you shouldn't know how to make good, strong coffee the old-fashioned way.
Just something to think about, and as always... I'd love to hear your thoughts about tools, dumbing down, and strong coffee.
[FYI: I'm travelling right now, so if you're waiting on email, I'm hoping to catch up by the end of the week.]
Posted by Kathy on February 21, 2007 | Permalink
TrackBack URL for this entry:
Listed below are links to weblogs that reference Are our tools making us dumber?:
Tracked on Feb 22, 2007 8:44:18 AM
» Are tools making us dumber? (to hand code or not to hand code) from MeganMcDermott.com
Kathy Seirra has an interesting post about whether automated tools make us dumber. In the article she raises a number of examples, including web design: But should a web designer need to be an HTML coder? Or can he just use a WYSIWYG tool? The debates ... [Read More]
Tracked on Feb 22, 2007 5:56:15 PM
» Creating Passionate Users: Are our tools making us dumber? from a student looks at 35
Creating Passionate Users: Are our tools making us dumber? 90% of the time we probably dont need to know how things work under the covers. I only barely understand why 747s ever leave the ground. This is something Ive thought about... [Read More]
Tracked on Feb 22, 2007 8:55:59 PM
» Efficiency, at the Risk of Looking Pathetic from Noodlesome
Kathy Sierra, who authors the always thought-provoking blog Creating Passionate Users, poses an interesting question: Are our tools making us dumber? Kathy writes: Obviously this depends greatly on the tool, the operator, and the task itself. If we al... [Read More]
Tracked on Feb 23, 2007 12:23:58 AM
Tracked on Feb 23, 2007 8:59:11 AM
Tracked on Feb 28, 2007 7:12:57 AM
This post reminds me an incident. Once I purchased something for 7RM (Ringgit Malaysian), I gave him 10RM then I realized and give extra 2 notes of 1RM expecting a single note of 5RM in return. But what he did was give me back my two notes of 1RM and pay me the balance 3 Rm again 3 notes of 1RM. Now see, do we really need tools for this kind of things?
Posted by: Adeel Ansari | Feb 21, 2007 8:51:36 PM
The prolific Joel Spolsky wrote about this once. He called it the "Law of Leaky Abstractions":
Basic idea: any nontrivial tool meant to simplify our lives is going to break eventually in some way, and if you don't know what's going on under the covers you'll have absolutely no idea how to fix it.
Posted by: Ian Schreiber | Feb 21, 2007 8:54:44 PM
Hey. I'm new to the blog and absolutely love what you have to say.
You're one smart lady!
I spent all day coding an html/css document for my portfolio site. literally, all day.
A friend of mine sits down next to me, opens iWeb, and has hers done in minutes.
So... what's the point of banging your head on the table until it works, if everyone's making streamlined ways of automating it?
Posted by: Michelle | Feb 21, 2007 9:24:15 PM
Kathy, you might really enjoy (if you haven't already read it) John Markoff's What The Dormouse Said, a history-by-anecdote of early personal computing. Some of the early PC pioneers Markoff writes about envisioned a future where we knew 50,000+ commands to use with out PC; others around the same time envisioned something much simpler to use. Obviously the second crowd won out, and I think there is a lot of merit to that approach- you can learn it in hours, unlike the months or years a 50,000+ command environment would take to learn in a meaningful way.
But I can't help but think that in some ways this approach also might cripple us- the VOA does a lot of useful stuff in Special English, but we don't try to write great literature in it. We assume that to have a really truly rich, meaningful experience also requires a deep vocabulary and years of reading and writing. So perhaps the assumption that we can have truly great computer experiences with a seriously simplified (truncated?) command vocabulary and grammar is also flawed in the same way- it might be useful and easy to learn, but it might be robbing us of a deeper richness.
Posted by: Luis Villa | Feb 21, 2007 9:50:09 PM
Nice post Kathy,
It is very important for people to understand what is happening "under the hoods" of their tool.
I teach Java at a university, and I make everyone use notepad and the command line compiler for the first half of the semester (One very important concept people do not understand if they directly start of with an IDE is the concept of CLASSPATH and how it works).
Posted by: Parag Shah | Feb 22, 2007 12:03:02 AM
Tools make our work easy to take a jump start. But as time goes on and we are good with using tools, we get to a point where we are forced to know the underneath detials.
For example we write a Hello World program using the Visual Studio but when time comes to implement a bigger project, we have to know lots of internals.
Posted by: Srinivas | Feb 22, 2007 12:15:14 AM
Its like now designers, who don’t do sketching, what ever 3 D visualization happen on a flat screen.
A moving pointer on screen, making their hands numb to give strokes.
Posted by: Paavani | Feb 22, 2007 1:01:53 AM
Its like now designers, who don’t do sketching, what ever 3 D visualization happen on a flat screen.
A moving pointer on screen, making their hands numb to give strokes.
Posted by: Paavani | Feb 22, 2007 1:46:43 AM
Interestingly enough, you don't need to know a thing about metalworking, physics of sound, or even physiology to be an absolutely amazing trumpet player.
However, being curious as I am, I make it my business to know all of the above.
Posted by: Jonathan | Feb 22, 2007 2:27:00 AM
Personally, I've always had a rather passionate view on this. I'm in my early 20's, and was raised to be "old school". I can cook, clean and iron; I know how to do all sorts of things with numbers in my head. I can write without using a spell checker every two minutes (although, they are useful). I can drive a manual and an automatic. I can weld, work sheet metal, and use woodworking tools.
The point? I was raised to understand a basic premise behind how, why and when to use a tool. A tool is NOT supposed to be used as the scaffolding for your knowledge - it shouldn't be that which supports your ability to do things. Your capacity for understanding shouldn't rely on tools.
A tool, instead, should be viewed as an efficiency enhancer. It should be there to allow your current knowledge and abilities to be magnified. It should allow a coder to code more quickly. It should not make them think they don't need to know how to code. It should make a cashier faster, by giving the trivial numbers, so they can focus on the more important ones.
A tool should not replace knowledge, it should enhance it.
Posted by: Pete Wailes | Feb 22, 2007 2:36:41 AM
Excellent blog! I found my way here from an entry on our Planet Gentoo:
Much to think about, especially in regards to the development we do in Gentoo.
Posted by: nightmorph | Feb 22, 2007 3:04:02 AM
Here's my recent experience of a similar nature. The other month I helped out with my 6 year old son's class trip to a toy museum here in London. As part of the day there was an hour long workshop on 'movement', using toys as examples.
There was lots of basic physics here and the kids did a very good job of describing what they saw and how they understood it worked.
What was interesting (and relevant to this post) was that the majority of the toys were genuine musuem pieces; Victorian puppets, sand toys, jack in the boxes etc. etc. - crucially all where the inner workings and what enabled them to function were completely visible.
What became apparent to me is that in these days of 'technology is only ever of any use when it's invisible', we're actually beginning to make it very difficult to teach tomorrow's children the basics of many sciences.
So we still need to understand the 'HOW' and the 'WHY'.
Posted by: Alex Nisbett | Feb 22, 2007 3:14:09 AM
I think people are naturally curious and if we're interested in something, we will want to know how it works and we'll learn it. If we tried to know how everything works, or even just 50% of the things we use, we'd quickly have information overload.
Posted by: Natasha Lloyd | Feb 22, 2007 3:55:31 AM
Sit through the tedious task of measuring data and noting it down of physics experiment, and you'll really appreciate the automatic way. And it also gives you a sensory/sensual connection to the science that merely setting up the computer would never do.
On the other hand, I really hated that we learned SQL totally by hand and on paper. Our professor said "if you understand this, the rest is button-pushing". The problem was: completing one or two SQL queries by hand per course never gave me the feeling how this stuff works, I simply need more experience, tweaking it on the go. And AFTER that, give me more than the basic theory. Only then did I make enough mistakes to appreciate the the optimization and whatnot. And I have some real experiences I can relate to, making learning much easier.
The point is: I don't think it matters whether you start with the tool or with the basics, it just matters that you collect enough personally meaningful experiences to appreciate what you're doing, and to develop the passion you need to master the stuff.
For teachers and trainers, I think the right balance between easy success and deep understanding, and the connection between the two, is what you should consider for your classes.
Posted by: Jens | Feb 22, 2007 6:05:21 AM
Learning how things work manually, especially things that can be reused such as multiplication, expands our minds in a way that enable other information to sink in that much faster (even if that info is completely unrelated). Yes, there may be tools that do these things for you and there may be too much info out there. But learning the basics is never a bad thing. Because if you let tools do all the basic stuff, your mind will never be in the proper state to learn new, more complex things when you get to important stuff.
Posted by: Vorlath | Feb 22, 2007 6:06:03 AM
I agree with most of what you're saying, Kathy. That said, there are obvious extremes on the other side also. As an example I am a computer programmer who often daily writes SQLs. Having an "idea" about how the database may perform a query would classify as a useful knowledge. Understanding the difference between full scan and a range scan is important. On the other hand, it isn't useful to know anything much beyond the level of the database. I don't care whether it's on a unix/linux/windows platform. I don't care whether it's an AMD/Intel/Motorola processor nor what the memory architecture is. I don't care about how many RPMs the hard disks are spinning, what version of RAID is in use, nor do I care whether they use a token ring or star network configuration. I know about these things, and this can *marginally* make me a better programmer. In general though, these are details which are (1) beyond my scope of knowledge and (2) below the level at which I need to work effectively. Being able to build a computer from a large pile of transistors doesn't make me a significantly better programmer.
Posted by: Adam | Feb 22, 2007 7:08:43 AM
I had just written a blog post (https://harmons.blogspot.com/2007/02/everyones-technology-is-best.html) about something relating to this... and this perfectly dovetailed into it.
My take from a dev perspective is to step outside of your toolbox and try another one for awhile. Learning something different - and when you return, you will have a better understanding of your own set of tools.
Posted by: Christopher Harmon | Feb 22, 2007 7:22:59 AM
"A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects." -Robert A. Heinlein
I used to teach Java as well. And there was often one or two people who complained endlessly that having to do things in a plain text editor and at the command line sucked. Occasionally I'd point them in the direction of jedit if it was a month-long training class and let them shoot themselves in the foot. Then, we'd sit down, get the classpath right, and start from the fundamentals.
I'm a big believer in doing it the "hard way" at least once, so that I understand what I am doing and why I'm doing it. From there, I'll use a tool, if it makes my life easier.
I still run into far too many people who are lost without their tools. People who are seemingly unable to read a simple log file and/or do a 10 second google. I shouldn't complain *tooooo* much. If they were all ept, then I wouldn't have my current job!
Posted by: Matt Williams | Feb 22, 2007 7:33:26 AM
Great article. Actually, great blog altogether.
I have presented at JavaOne twice on the whole issue of learning what's under the hood and how to troubleshoot it. I always wanted to understand how things work, but after I worked 3 years as senior technical support at BEA, I learned the skills much deeper. Nowadays, I often reach for my troubleshooting tools before I start reading the code.
My last JavaOne presentation from 2006 was: Unhappily Ever After: Support, Maintenance, and Troubleshooting of Java Technology-Based Applications in Production Environments ( Presentation number: TS-1669). It is available online: slides and voice.
Posted by: Alexandre Rafalovitch | Feb 22, 2007 8:03:55 AM
It's only dumbing down if you are losing necessary understandings. You're right that a programmer should know how Java works outside of the IDE, but that's because these are things that the programmer will eventually NEED to know.
But this doesn't mean that I need to know how to hunt game if I want to eat meat. It doesn't mean I need to know how to fight with a sword if I want to join the military.
Most of it is a matter of evolution. For instance, cars evolved from manual to automatic, so I don't think it is shocking to hear about people who can't drive a stick. In fact, if they can get through life without ever driving a stick, then I wouldn't consider them any dumber. Like you said, they are likely using that bandwidth for something else that makes them smart.
Posted by: Sean | Feb 22, 2007 8:05:03 AM
Not knowing about things you use is a good way to get ripped off too. Take your car to the shop without an understanding of what goes on under the hood and you can get charged for anything without the knowledge to know if it's necessary. Buy an HDTV without understanding the difference in display types and resolutions and you're going to get swindled to whatever appears flashiest or has the most "features".
More and more I've realized that we can't resign ourselves to blissful ignorance and hope that everything will be taken care of for us. If we're using a tool or making expensive purchases, we better know what it's all about or we will spend way too much and not get the full value of the tool/car/whatever. I didn't even know how to change a flat til a couple weeks ago.
Posted by: Karl N | Feb 22, 2007 8:05:53 AM
Ok, I just couldn't get past the comment about offering your car to folks who decline cause they can't drive a stick-shift. That would be me. Not only do I not care to drive a stick shift, every attempt to learn has met with failure. Finally, I gave up. (okay, if it were an emergency, I could drive one). But, I don't like them. I don't want one. If they disappeared from existence... it wouldn't phase me a bit.
You can have your stick shift. I'm keeping my automatic.
Posted by: Yvonne DiVita | Feb 22, 2007 8:19:08 AM
This is so true regarding web design. If you don't have a grasp of HTML (which is really soooo simple to learn) you can make good use of a tool like Dreamweaver. You can't plan a Photoshop comp of a layout if you don't know what HTML elements you are going to need in the design. The foundation information is too often overlooked.
Posted by: Virginia | Feb 22, 2007 8:25:40 AM
I understand the fear of tools endumbing us, but looking back at my own experience I find that tools that handle complex automation tend to produce crap in the hands of those without proper understanding of how they work.
Understanding that stuff wasn't important in the first place.
Either way, if it's important, you still have to understand it.
Posted by: Damon | Feb 22, 2007 9:19:59 AM
Thanks! Love the article. I'm all for smarter tools, but if it's at the cost of user's abilities (including mine :) then I'm not so sure.
Posted by: DoctorEternal | Feb 22, 2007 9:33:24 AM
The comments to this entry are closed.