Hacker News new | ask | show | jobs
by incomethax 5139 days ago
I've often thought about a basic computer literacy course I would give my parents. I've never really been able to define what that would actually be, given that for me, all of the things have become an internalized second nature, and I myself don't really know how to "dumb it down" far enough that we can share a common vocabulary for most basic computing.

I can't help but thinking that with all the focus on teaching people how basic code works is just too different from what they need. It seems to me that most people actually need to be able to make small improvements in their computer use habits, like utilize tabbed browsing more effectively by learning how to install addons, learning how to learn about which programs and tools are better for their needs than just "something that my local techie" recommended.

IMO think the entire Jeff Atwood "controversy" has gotten blown out of proportion. It's helpful for people to learn how a computer thinks (ie learn to code), but its much more necessary for people to learn how to use the code that is often already out there.

1 comments

Good points. I agree that it's really hard to think about how to communicate things that are just obvious to programmers.

But having spent some time teaching my daughter, I see some real value in starting with very (very!) basic programming. She was amazed that a one character typo made her program break. Nothing in everyday life - with the possible exception of government bureaucracy - is that unthinkingly inflexible. So she learned that computers follow directions explicitly, and what that means.

She also learned the positive side of this - that she was in charge. The computer did exactly what she told it to. I think that's empowering and revolutionary. It wasn't magic, it was a simple series of instructions.

From there, we've got a real basis on which to learn, ask intelligent questions, and figure things out.

EDIT: I agree with the comments, a lot of things are unthinkingly flexible. and the one of the best things to learn about computers is that for the most part you can mess around without causing real physical harm.

I like what you're saying, but I wanted to pick this out:

> Nothing in everyday life - with the possible exception of government bureaucracy - is that unthinkingly inflexible.

If you've never made anything else in your life, maybe. "I left one seemingly unimportant detail out and the whole thing exploded" is a statement you could make about a lot of things you might teach to kids-- fixing a car, baking a cake, shooting a gun, building a treehouse. Only difference is when it's code, the exploding is figurative, and if you just change that thing back it works again.

That's part of what makes programming so magical, especially for kids. You can break things completely with zero damage done. In fact, breaking things is one of the best ways to find out how they work.

On a tangent: when you work with computer-illiterate people, one of the things you notice is that they're a little afraid to physically touch the computer for fear of messing things up (which is presumably a common occurrence for computer-illiterate people). When you're teaching someone to code, the first thing you have to teach them is to stop being afraid to change things. Not because they won't break it -- they undoubtedly will -- but because breaking it is the point.

As with many activities, I suspect the main reason children display such an affinity for programming is not having to be trained out of such bad habits.

Science as whole (especially maths, physics and chemistry) is quite inflexible when it comes to tolerating extremely small mistakes. I what you're really describing is the process of logical analysis, being able to look at something completely objectively and say for certain that this won't work or this will work. I think this is why I personally find maths and physical sciences as a whole so satisfying.