| > I dont see society falling apart because people can't make their own apps. But wouldn't people have made the same claim before literacy and math skills were (almost) universal? And wouldn't they actually have been right? In the world as it was, you obviously could survive without those skills. The question is: (1) how useful will it be in the future, and, even more importantly (2) which opportunities could humanity be missing if programming doesn't become a universal skill? > Now for what its worth, I think it might be worthwhile to teach people some basic shell or python scripting, as that could make their jobs more pleasant by reducing the repetitive, boring work. But would we add a year of mandatory schooling? or would we cut something else? Because I do think those other subjects are necessary. Well, I think another aspect is much more important: People should learn enough programming to be able to understand how the world works. Certainly, the goal should not be to enable everyone to build highly-reliable highly-scalable high-performance distributed systems, or whatever. Just as the goal of language and math classes is not to produce authors and mathematicians. Now, I don't think that being able to create your own "Apps" would be out of the question. The only reason that's somewhat difficult nowadays is because the platforms and SDKs suck, not that it's somehow fundamentally a complex problem. But overall, I think the goal should be to (1) give people some idea of what happens with their data behind the touch screen, so they can understand the power structures that result from the software's inner working (because they otherwise will repeat history because they don't notice how those new-fangled systems encode power structures that previously were determined to be dangerous for a society), and make informed decisions on how to use information technology and (2) give them some idea of how to approach problems with mechanical solutions and possibly encode these solutions as software. With the latter, the point isn't even necessarily that they should be able to implement it themselves (though that certainly should be an option for sufficiently easy tasks), but that they have an idea that software could even be a solution, maybe how they could explain their problem to someone more specialized. In any case, the idea would not be to teach the details of, say, the Android API. The idea would be to teach general principles of automatic information processing. As for other subjects to throw out? Sure, throw out woodworking and electronics classes (where that hasn't happened yet), but replace them with computer science/programming rather than with Microsoft product endorsement classes. |
"But wouldn't people have made the same claim before literacy and math skills were (almost) universal? And wouldn't they actually have been right? "
Good point.
"People should learn enough programming to be able to understand how the world works."
Ah, I was responding to the assertion that every should be a programmer. I might have misinterpreted this to mean professionally rather than passing knowledge.
"But overall, I think the goal should be to ..."
I agree, and I do get frustrated when people are surprised that their cloud storage files are on someone elses hard drive, or other similar situations. They really need to understand the implications of their decisions. And it would be good to give them another way to look at problems, another tool to use.
"As for other subjects to throw out? Sure, throw out woodworking and electronics classes ... Microsoft product endorsement classes"
Hmmm. Not sure I disagree, but woodworking is a valuable skill, and I think its important for people to be exposed to different types of careers so they can make an informed choice. My dad does woodworking for a hobby, and I would rather have nice handcrafted furniture available, rather than cheap plywood crap. I suppose they could learn to program cnc routers, and make beautiful machine crafted furniture. Not sure what you mean by electronics classes? As far as the office classes, there are people who really struggle with computers, and teaching them skills they will need in an office is useful. Maybe teaching them some basic ui design principles would do more to enable them to learn these programs, and others?