Ask HN: What is the most compelling reason young people should learn to program?
What is the most compelling reason young people (13-18) should learn to program—especially if they are not interested in pursuing a career in the tech industry? Why should students use their computers for more than browsing the web and using word processors?
121 comments
[ 2.9 ms ] story [ 188 ms ] threadTo see if the tech is interesting it might not hurt to have an introductory course though.
It's like asking why kids should study chemistry or literature - they don't have to but it's probably a good idea. I don't think programming is more special in any way (even though personally I might like it more than those other fields).
These high minded ideas about economic utility are for later, when they start worrying about their adult lives. But in the meantime, playing around with the computer and the games and websites and phones and seeing what they can do with them is the best answer.
* Information technology is important enough that it's worthwhile having at least a passing understanding of how it works internally.
* It's important to learn how to be rigorous when organizing information and procedures. Learning to program can help with both.
Yes, being exposed to a variety of fields in order to choose one and get a job is an important part of school. But I think giving kids a sense of how the important aspects of our lives / society work under the hood is where the true value of education lies.
For the same reason, I think film/media studies should be standard high school curriculum.
[1] Not trying to come across as sexist — the reference is to The Wizard from The Wizard of Oz.
But moving past that, Excel. Just a little bit of programming knowledge can really up your spreadsheet game.
* Lots of work is done on computers and programming is a way of automating that work
* If you don't code, you may well work with others that do and having some exposure to what on earth it is some people are/aren't doing is valuable. One of the most useful things I ever did was fail to run a business as it forced me to understand that sales/etc aren't easy, as many techies like to presume, and require skills I lack
* You can build things. Building things is fun, at least to me
- want to do something with computers no currently existing program allows them to,
- want to create something with artistic value (games, websites, computer graphics),
- enjoy it for the sake of it.
I can't come up with any other reason why they should.
I don't think we need to force every kid to learn to code. We ought to expose them to it, though. Kids who show interest ought to have a way to learn more.
There are solid arguments for learning the concepts behind coding. As for making every child learn Javascript, I wouldn't go that far :)
I know someone who has a lot of tedious work to do. If they could program they'd be able to do it much more efficiently. They can use that time saved to do anything else they want to do, perhaps they could have earned a promotion rather than slaving away on a repetitive task.
The world moves forward through efficiency, and automation is one of the major factors in that.
At the very least it can give you some added analytical abilities. Like learning Excel.
Basic logic is part of this, as is process decomposition, as is just learning a new way of communicating and many other things.
Learning new ways of thinking makes us flexible individuals. It fosters creativity. These are skills we all need in society, but the modern economy especially.
This is actually, I think, a compelling argument (aimed at adults who are deciding what children will do, less so the children themselves) for almost any subject.
If they want to work with words or numbers, some basic programming will let them automate repetitive tasks and eliminate lots of boring work. Examples include simple calculations in spreadsheets, formatting writing for publication, filing work email, and automating invoices. It's a useful skill like being able to touch-type.
In any case, they should not be forced to program for its own sake, since that has a narrow appeal. Instead, they should program only to do things they actually care about.
For most teens the thing they grate against the most is lack of control over themselves and their direction. Programming puts you back in control. You can make a general purpose computer do anything you can imagine.
However... the parts of programming that are useful to everyone are applied logic, critical thinking, and 'debugging'. Being able to break down a problem, find a metaphor for a problem, evaluate what you know and don't know about a problem, etc are useful skills that apply everywhere, and that programming teaches really well. When something isn't working, being able to ascertain why by changing things one at a time, or by knowing that you can iterate to a solution instead of jumping to the last step, are immensely powerful ways of thinking about things.
There may be other ways to teach those skills instead of abstracting them to programming but I've not encountered any good ones yet.