Why We Should Teach Our Kids To Code
An anonymous reader writes "An article by Andy Young in The Kernel makes the case that lessons in programming should be compulsory learning for modern school kids. He says, 'Computers help us automate and repeat the many complicated steps that make up the search for the answer to some of our hardest problems: whether that's a biologist attempting to model a genome or an office administrator tasked with searching an endless archive of data. The use of tools is a big part of what make us human, and the computer is humanity's most powerful tool. ... The computer makes us more efficient, and enables and empowers us to achieve far more than we ever could otherwise. Yet the majority of us are entirely dependent on a select few, to enable us to achieve what we want. Programming is the act of giving computers instructions to perform. This is true whether the output is your word processor, central heating or aircraft control system. If you can't code, you are forced to rely on those that can to ensure that you can benefit from the greatest tool at your disposal.'"
Let's start with basic computer literacy and not pretend that computer programming courses for a general audience wouldn't be watered down and completely useless - a torture for those with some aptitude for programming and a waste of time for the rest.
I don't necessarily think that not knowing how to code on a practical level is really necessary for average Joe, but Mr. Young is definitely on the ball about the general idea. I took Computer Science in High School it was my major for my first year in college. It definitely changed the way that I think about complicated things and go about attempting to solve a problem.
Then again, perhaps it is just certain types of thinkers that are attracted to coding and actually doing it just helps hone this type of reasoning.
Where I work, we have secretaries copying and pasting (using a mouse) passages from a intranet website into our database. It made me cry just watching it. Now forget the fact that the other end could set up a ReST interface, a simple screen scrape would make a job that took hours into a job that would take seconds.
There is so much inefficiency in offices that could be eradicated if only people were a little savvier about what computers can do.
The world doesnt need any more programmers. I should know, I have been looking for a programming job for ages and no one will give me a job. On the other hand, there is a shortage of engineers. In the oil industry there is a dire shortage of engineers, anyone qualified as a chemical engineer can command a good salary, yet strangely all the univerisity courses on this in the UK are being closed down in place of non vocational courses. No one in the media or government seems aware of this. Instead of all these shows on TV telling people what a good idea it is to try and be a pop star or super model, they should have shows encouraging people to take up more practical professions.
Programming is a calling, not a profession. Let them try programming as soon as possible, get those with the calling identified and cultivate their ability.
Yes, most of them probably won't get a CS degree ... so what ? Domain knowledge is as important as knowing algorithms, if not more important. There is need for accountants-programmers, linguists-programmers, geologists-programmers etc. Computer Science degrees are for those that want to write compilers, operating systems, new DB engines, routing algorithms etc. For the rest, the (probably innate, not educated) ability to stay stuck to a chair 10h/day running lines of code in the virtual machine in your head and having fun while doing it, logical thinking, basic algorithms and domain knowledge are more important.
Or the other end: They all get lessons covering only Visual Studio and .NET, or making iOS apps in xcode, because Microsoft or Apple respectively offers a massive discount and almost-free support to schools to make sure the programmers of the future are their customers of the future too.
I love the idea, because I would have loved it, however, one has to remember that not everyone loves programming the way we might do.
I think that courses should be offered earlier and in a much more useful form, and definitely some programming and CompSci theory should be put in the curriculum to give an understanding, but for the average person, deep programming knowledge isn't the main thing needed. Definitely giving people the chance to learn if they want to is very important.
I think the more important thing is to teach basic logic and debating skills at a young age. People really lack basic skills like spotting logical fallacies and following an argument. I think teaching some formal logic at a young age would really increase political participation, increace scientific and computing ability, lower people falling for scams like phishing, and increase general learning ability.
-- Lattyware (www.lattyware.co.uk)
Do we want a generation of kids to grow up despising programming and programmers? Look at what the education system does to English Literature, Maths and Science.
Kids grow up loathing Shakespeare because it isn't taught in the same context that it was written for. Kids grow up to hate maths because they've been force fed the mundane basics since they were 5. Do we honestly think they'll do a better job with programming?
I'm all for a more thorough coverage of Comp Sci and ICT - of which programming is obviously a part, but it should be weighted to play to the strengths and interests of the individual students. Some students will take to programming, others to graphics and animation, but as soon as you start making stuff compulsory, you find yourself forced to water down the content and you end up sucking the joy out of it.
Those of us with Comp Sci university backgrounds will probably remember how miserable those students who didn't 'get' programming were. Do we really want to do that to kids?
I missed why this should be mandatory. I missed why we should attempt to educate kids who cannot read, do simple arithmetic, identify their MP (the writer is from the UK). I'm guessing this author grew up in a mostly white, middle to upper class area, knows mostly white, middle class people, and thinks the most pressing issues are the ones facing white, middle class people.
Jesus was all right but his disciples were thick and ordinary. -John Lennon
What I'd really want is for schools to teach the basics of computer science. So that everybody at least knew what the word 'encoding' means when applied to information, what digital data is and why it's different from analog signals, etc.
It'd definitely cut down the number of people sending screenshots in JPG and bying Monster HDMI cables.
If you can't code, you are forced to rely on those that can to ensure that you can benefit from the greatest tool at your disposal
I really wish computer scientists would get over themselves. At least the arrogant ones who, like conceited physicists and preening economists, think all the problems on Earth are merely esoteric subsets of their own field of study, which they'll get around to solving in due time. Interesting philosophical arguments about universal language aside, it's simply not true that everything is better with computers or better if reduced to pure math. There are fantastic uses for programming and computing in damn near every field, but it's ludicrous seeing programmers argue, again and again, that every engineer or scientist should be a programmer, much less every citizen. Not everything is better with a computer; some things are even worse.
It's not the goddamn Matrix yet, either; we're not "forced to rely on" people who program any more than we're forced to rely on people who grow food or fix cars. We all rely on all of those people, we're comfortable with some divisions of labor, and while computers are useful in every field that doesn't make programming the most useful skill of all. It makes it the most general skill, perhaps, but that's not an argument for universal programming literacy in and of itself. Maybe every industry needs programmers, but programmers need not become the core of every industry. Nor do I believe that programming teaches any particular problem solving or critical thinking talent, regardless of the language or whether the skills are actually used to program, better than logic, chemistry, or even anthropology courses.
We certainly don't yet need to regard programming as a component of basic literacy, in any case.
1) Basic computer literacy, if you can manage that. My school had typing or basic computer literacy mandatory. Strange as the computer literacy course included a section on typing. My school had two programming courses.
2) Increasingly dependent on the few? This isn't limited to just computers. How many of us here on /. can sew our own clothes from scratch? Have gardens capable of feeding our families year round? Able to repair our own cars? Fix our televisions, built our furniture, make the thread used to sew our clothes, possibly even wire and pipe our own homes? And the time to do it all?
Anyone can learn all of this, including coding, but is it time effective? It is a trade off for living in these interesting times. Somewhere, on some thing, we will always be dependent on others. A bit of mandatory coding isn't going to change this. As a geek I'm tempted to say this is a good idea. Then I step back and ask myself do I really want sewing, small engine repair, gardening, etc. all to be mandatory?
by Anonymous Coward: I, for one, welcome the shift from car analogies to pizza analogies. um.. overlords?
As a software developer, I can see where the call for that comes from - but it's just about as misplaced as it could be. Software developers aren't the 'standard' the rest of the world should orient themselves by.
Developing software is a great skill to have if you're a software engineer -- not sure whether it's a waste of time if you plan to become, say, a doctor, a plumber, etc...
There are very few skills that _everybody_ needs to have for their normal day to day lives - developing software isn't one of them. Giving kids an idea of what is part of it may be a good idea, i.e. a basic understanding of how computers work. Coding skills on the other hand - not so sure; particularly - who knows what language and what paradigm will be 'state of the art' by the time the kid finally gets to use his/her development skills on. Picture it from this side - when I went to school, programming courses looked at BASIC and Pascal. Nice languages - for teaching - but I'm not sure whether it will really prepare you for coding C/C++, Java, Perl, Python, Ruby, ...
Do you really think that it makes sense giving someone much of a development course in something that may be outdated a few years later? I didn't really like history lessons, biology lessons, ... But I'm sure most of the history being taught is still the same; most of the principles of biology are still intact, ... On the other hand - one of the things we learned about in school was some of the hardware: anyone still remember what a ULA is? Or the practical knowledge of how to hook up a tape deck to a computer? ... punch cards?
Development classes and paradigms are too specific a skill for a mandatory course to be forced on everyone.