2 ms·
That analogy doesn't hold up. If you learn mechanics you can repair and maintain your car, and even build a new one. But you'll never get your car to drive your
by avar 16y ago
That analogy doesn't hold up. If you learn mechanics you can repair and maintain your car, and even build a new one. But you'll never get your car to drive your kids to school without you sitting behind the wheel.
But you can do the equivalent of that if you're programming literate. We're moving to a digital culture, and if you don't know how to program you'll increasingly only become a consumer of other people's solutions, without the ability to solve your own problems.
Some people are calling this "procedural literacy".
As an aside I'd argue that computer interfaces have actually gotten somewhat worse while getting more friendly to newcomers. I think the last major leap in computer interfaces was cron(1). Unlike most modern interfaces being produced today you can use it to tell your computer to produce periodic reports and things like that.
That's where we should be headed with UI's, not aiming to have a monkey banging at the terminal at all times, but giving the monkey the ability to dictate things to the computer so he doesn't have to bang at the terminal.
Real computing power is being able to say: "Computer, I'm feeling under the weather today and I think I'll sleep in. At 9am please start playing 'Daddy's sick, get up and go to school!' on a loop in the kid's bedroom at 75 dB, and continue producing noise until they get out the door, engage!".
You can implement those sorts of things if you're a programmer.
- jonsen 16y agoThere sure is some truth in that procedural awareness should be higher. But I think the analogy holds. You should not teach mechanics, but you should teach natural sciences in a way that principles are transferable to mechanics, and to building, and to a lot of other things. I think it's deeply wrong to try and raise procedural awareness by forcing the technicalities of state of the art programming on the common man. You should find a way to teach algorithmic principles so that they are generally applicable.
- avar 16y agoI think you need to teach these things at an early age, and teaching "algorithmic principles" while sound in theory is probably also a good way to make an entire class of children ignore you completely. The best way to teach people procedural awareness is probably to teach people to tinker with something they can start using right away. Things like automatically programming your phone to reply to your parents via SMS with some plausible responses when you're out drinking, use the Facebook API to get info about your friends that they thought wasn't accessible etc. Show how you can use rtmpdump to download your favorite music from some closed video site, or write a script for uTorrent that'll have downloaded your favorite TV episode by the time you wake up. The most important thing is to show people that procedural awareness will be worthwhile for them in their everyday life. It's easy to demonstrate that, and it's actually true for most people, unlike other some other subjects at school which'll probably never be pertinent to the average student.
- jonsen 16y agoTinkering is fine. The real problem is making abstractions and general knowledge from it. All too easily tinkering turns into nerdery, thrilling some, despicable to others.
- hoprocker 16y ago> The most important thing is to show people that procedural awareness will be worthwhile for them in their everyday life. Make knowledge acquisition both a) fun and b) timely. Add a motivating situation that leads people to want/need to learn, and they will.