4 ms·
This article, and most of the comments here, are, IMO, missing the point of teaching programming in school. You don't teach kids to code because they're all goi
by GeneralMayhem 13y ago
This article, and most of the comments here, are, IMO, missing the point of teaching programming in school. You don't teach kids to code because they're all going to write code for a living. A semester or two of Python in high school is not going to leave most kids capable of building anything worthwhile. A few will be caught by it and learn on their own or continue studying, but that's a tiny minority and not the main benefit.
The reason we should teach programming is to force kids to think like programmers. Even if they hate it. Even if it's only for a couple hours a week for a few months. Programming is problem solving. Think about the mental processes involved: pattern recognition in complex systems, breaking down problems into their smallest parts, stepping through a potential solution one step at a time, managing multiple changing pieces of state at once. Those are your practical skills.
How many arguments could be ended if people knew how and were willing to think through their potential solutions one step at a time and see where each move left them? I'm the first to laugh at "STEM master race" arguments, particularly in education, but just because an engineer-like perspective isn't panacea doesn't mean it isn't a valuable tool that I wish more people had.
- marknutter 13y agoI feel like you could replace the word "programming" with any moderately complicated profession or skill and it would be equally as viable. Programming is currently in vogue right now so naturally it's going to seem like it's important to learn, even if the person learning it doesn't become a programmer. I'm not sure I buy that premise. Teach kids how to problem solve, sure, but programmers are not the only people who solve problems.
- Already__Taken 13y agoThey are the ones who have by far the lowest barrier to entry (arguably zero), even better is your tools can also be used to teach how to use them. Learning metal shop could teach you a similar skill set about putting together something reasonable complex but you can't just be put in a workshop and figure it out.
- vanderZwan 13y agoHaving done both, I'd say you shouldn't underestimate the power of thinking "with your hands" that you'll learn from doing working with metal, wood, or any form of traditional craftsmanship really. For some people it is much better suited as a way to engage the abstract than programming ever will be.
- GeneralMayhem 13y agoSure, that's true, and it's the place that math had in a classical education - logic, geometry, and so on - before it was perverted into the purely practical plug-and-chug.
- sologoub 13y agoHad the exact same thoughts running through my mind as I was reading this - "you are missing the point of why you should strive to give kids the opportunity to learn this!". Learning to "think like programmers" is essentially teaching kids to think like engineers, in other words, recognize complex systemic interdependencies and understand that things usually form a system that has it's own rules, constraints, etc. When you start to understand these relationships, it helps you immensely even outside the realm of tech. For example, the Monarch butterflies are not having such a good decade. Why? Well, the system that enabled their migration (the prevalence of milkweed) has been modified extensively by humans, and now is at the breaking point where there may not be clear avenues for the butterflies to continue their migration patterns. This is a gross oversimplification of course, but the point is that now we can look at the other "nodes" in the system that will be impacted by lack of migration. Birds could be impacted, which in turn impacts whatever feeds of those birds, etc., etc. Computers offer some of the more understandable and finite systems that we can learn, yet offer incredible flexibility, illustrating how complex things can get. Learning to speak in these languages helps with that understanding. Also, I don't think anyone is advocating learning assembly or what not. When most people talk about "learning to code", it's picking up a higher-order language that does a lot of the complex things for you. It's not the same as teaching real computer science. It's basic comprehension and knowing how these systems form.
- henrik_w 13y agoHere is a good article giving non-programmers 5 reasons to learn how to program: http://blog.learnstreet.com/5-reasons-you-need-to-learn-to-program/ http://blog.learnstreet.com/5-reasons-you-need-to-learn-to-p... Personally, I like point 5 the best: "Programming is fun".
- GeneralMayhem 13y agoExactly. Process tracing is applicable to everything. My personal favorite, that I'm always painfully reminded of when reading political news, is the ability to hold multiple interrelated systems in your head at once and check that they're mutually consistent. There's so much unintentional doublethink out there that I think could be significantly improved if people would just stop and walk through their own thought processes in a logical manner. It's not the only way to think, and it's not appropriate for absolutely everything, but it is a good sanity check for many, many domains, and it's frustrating when people tend to look at me funny and end the conversation when I try to, for example, explain that two ideas cannot possibly be held at the same time because they're contradictory when taken a step down the line. Come to think of it, the concept of a sanity check itself is something that I got from programming and use in everyday life.
- lispylol 13y agoI think the point of teaching programming is quite clear. The debate is over the question of necessity. Of course it teaches a valuable way of thinking - so does any other science. What the author argues is that the benefits of adding a CS curriculum doesn't outweigh the cost, especially if half of the student body barely knows how to read.
- GeneralMayhem 13y agoNo, I really don't think it is clear. The arguments cited are things like "everyone should learn to code because computers are so important," or "everyone should learn to code because it can make any task quicker." It's coding for its own sake, or for the direct benefits of being able to use a computer better. In terms of the real educational benefit, it's got nothing to do with what you do the computer and everything to do with what you accidentally do to your mind in the process.
- roopeshv 13y agoadding to your point, i can actually make a point "teach kids finance so they earn more and can pay someone to do programming for them", actually more useful in real life. actually let's extend it and say "teach kids finance"