Follow Slashdot blog updates by subscribing to our blog RSS feed

 



Forgot your password?
typodupeerror
×
Education Programming

Why We Should Teach Our Kids To Code 427

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.'"
This discussion has been archived. No new comments can be posted.

Why We Should Teach Our Kids To Code

Comments Filter:
  • by Anonymous Coward on Tuesday January 24, 2012 @06:21AM (#38802863)

    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.

  • by McGuirk ( 1189283 ) on Tuesday January 24, 2012 @06:22AM (#38802867) Homepage
    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.
  • Totally agree (Score:4, Insightful)

    by cc1984_ ( 1096355 ) on Tuesday January 24, 2012 @06:25AM (#38802885)

    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.

  • by digitaldude99 ( 1861666 ) on Tuesday January 24, 2012 @06:29AM (#38802923)
    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.
  • by emilper ( 826945 ) on Tuesday January 24, 2012 @06:30AM (#38802931)

    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.

  • by SuricouRaven ( 1897204 ) on Tuesday January 24, 2012 @06:32AM (#38802945)
    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.
  • Nice in concept. (Score:5, Insightful)

    by lattyware ( 934246 ) <gareth@lattyware.co.uk> on Tuesday January 24, 2012 @06:34AM (#38802959) Homepage Journal

    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.

  • by jholyhead ( 2505574 ) on Tuesday January 24, 2012 @06:37AM (#38802975)
    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?
  • by u38cg ( 607297 ) <calum@callingthetune.co.uk> on Tuesday January 24, 2012 @06:42AM (#38802999) Homepage
    Is computer literacy for 14 year olds still an issue? Really?
  • by errandum ( 2014454 ) on Tuesday January 24, 2012 @06:46AM (#38803019)

    For some, yes. Same way playing basketball isn't commonplace (even though PE classes are mandatory pretty much everywhere) or simply writing correct English.

    Genetic predisposition will always play a key factor in all of this.

  • I missed something (Score:5, Insightful)

    by gmhowell ( 26755 ) <gmhowell@gmail.com> on Tuesday January 24, 2012 @06:46AM (#38803023) Homepage Journal

    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.

  • by Cyberax ( 705495 ) on Tuesday January 24, 2012 @06:48AM (#38803031)

    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.

  • by dokc ( 1562391 ) on Tuesday January 24, 2012 @07:11AM (#38803131) Journal

    Is computer literacy for 14 year olds still an issue? Really?

    Of course it is! Computer literacy is much more then just clicking around with a mouse. Especially 14 year olds need to be educated about not only the technical side of computers, but also about sociological side (just turn around and check how many of them put everything about themselves on Facebook).

  • by Darfeld ( 1147131 ) on Tuesday January 24, 2012 @07:12AM (#38803141)

    Genetic predisposition are overrated. The social context is far more important in this case. A child raised in a family with no computer will take longer to adapt. No computer at home means their will be no one to explain how to work with them, part from school lessons. I can clearly see how it could turn frustrating.

    There is also the interests of the child. A child into technology will take more attention and learn faster.

    Anyway, computer literacy is important, but you don't have to know much really. What you have to know can be learned in a week, and then you use that knowledge, otherwise it's pointless. There will always be things you occasionally fumble on, meaning you have to search how to do what you want to do from times to times so maybe the most useful thing to know about computing is really how to use a search engine. Then you can learn to code.

  • Re:Totally agree (Score:5, Insightful)

    by Tom ( 822 ) on Tuesday January 24, 2012 @07:25AM (#38803203) Homepage Journal

    Most of inefficiencies don't need a new system. They just need people to be better users.

    Here's a thought experiment. Teach all the secretaries in your company the 20 or so most important keyboard shortcuts. I guarantee you a measurable improvement of output.

    No programming knowledge needed.

  • Re:Totally agree (Score:2, Insightful)

    by Anonymous Coward on Tuesday January 24, 2012 @07:36AM (#38803265)

    If it's a one-time or irregular job, it's worth investing time in a meta-solution, that can generate solutions to one-time or irregular jobs.

    Computer science doesn't just stop at the first recursive iteration.

  • by schroedingers_hat ( 2449186 ) on Tuesday January 24, 2012 @07:49AM (#38803319)

    Instead of teaching programming, like you say maybe teach about problem solving? Oh wait that is called being logical! Oh wait maybe that can be called logic and is, I don't know, part of the MATH curriculum! I don't think learning how to program, for everybody, is a good idea.

    Far too little problem solving and critical thinking is taught in the maths classroom these days.

    1) What language? Unless you decide to keep up in programming languages whatever you learn is going to be completely and uterly useless.

    Irrelevant. The skills are almost entirely transferrable. Unless you got to an extremely esoteric language like APL or brainfuck, anyone with a good understanding of one language will be able to learn a language with a similar purpose very quickly.

    Going from scheme to assembly may be a bit of a stretch, but learning any language that vaguely follows the style and syntax of C (I am including everything from the more high level parts of some assemblies to javascript here) will give a large headstart towards learning any other.

    There is a reason pedagogical languages exist, after all. For a beginner, one of these, or any high level language is probably appropriate as a tool to teach logical thinking.

    2) What paradigm? Once you have decided on a programming language are you going to teach via an IDE? Text editor? How about file system communications? Database? Complications, complications, complications...

    Again, these are details that don't matter. It's like saying 'what do we teach them maths with? A pencil? Or pens? What model of caclulator?'

    As long as you don't pick something entirely esoteric, or bore them with too much low level stuff too soon, it's fine.

    One could even make an argument _for_ an otherwise useless and obscure language. This would help kerb plagiarism, or at least force the plagiarist to understand both languages well enough to port some code (a useful end in itself).

    I help my niece with her math and my biggest beef today is that you have history, or philosphy folks teaching math. You can teach math and science in two ways. The first and this is what I fear is happening all too much is to teach via remembering the formulas and solutions. This achieves nothing and leads the problems in computer science and science we have today.

    Here, I agree. And perhaps one way of getting more teachers that are competent in logic and mathematical thinking is to try and interest students in such matters? The path to a useful knowledge of mathematics is long and arduous. Many of the obstacles also seem arbitrary, and it is only when one looks down after learning a lot, that the point of it all can be truly understood.

    Even then, the practical use of it is limited to a few scientific disciplines where the tools are not already available in a packaged and easy to use form.

    Mathematical knowledge for its own sake is a wonderful thing, but it is difficult to convince other people of its worth.

    The second approach and this is more difficult since it requires an innat understanding of math and science is to teach it in the abstract. I teach math to my niece in the abstract and she GETS it (when she pays attention). I try to get her to understand why the formula she just learned is actually created and what purpose it serves. I get her problem solving skills involved! Oh wait is that not what you try to do with programming?

    I would not call understanding the reasoning rather than accepting a formula as gospel abstract. Abstract is where you investigate something without grounding in reality or practicality. Either way, these are skills that are woefully under-taught in today's schools. Mathematics is 'taught' in such a way that getting the answer is considered more important than learning to think.

    Perhaps programming is a good way to encourage these skills where other methods have fai

  • Please stop! (Score:4, Insightful)

    by RobinEggs ( 1453925 ) on Tuesday January 24, 2012 @07:49AM (#38803321)

    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.

  • Two things (Score:3, Insightful)

    by Gideon Wells ( 1412675 ) on Tuesday January 24, 2012 @07:54AM (#38803343)

    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?

  • Coding and abstract thinking is something you should train,

    Yes, but you can only train a "talent"... If the talent is completely non-existing in the kid, then no amount of training will do any good. That's why, until today, I suck completely at music. My teachers, back then, pulled their hair out with me as a pupil. This stuff goed completely above my head and no amount of training could get me to play anything.

    Absolutely true! But before that, educate teachers not just to read-out what is written in school books (children at that age already know how to read), but to explain, lead and animate children. They are all explorers, just give them guidances.

    Yes... I know, I've been a teacher in training. You pretty much quote from the "Teaching for Dummies" handbook. ;-) I also know how difficult, if not impossible, it is. You can do this, perhaps for one or two periods in a week... It requires so much preparation, it's insane... so much more can go wrong. Preparing a standard frontal-only period is already a lot of work (if you're not experienced, but you're a teacher in training: you're not).

    Basically: you expect superhuman abilities from teachers... Yes, that expectation is one that made me quit too.

    I'd say: try it... not a handfull of kids, a full class including the "characters" that are already completely demotivated. Preferably in full puberty....

    I'm not 100% certain, but the "explorer" part ceases to exist around puberty.... My experience, I might be 100% off.

  • by beh ( 4759 ) * on Tuesday January 24, 2012 @08:40AM (#38803581)

    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.

  • by TheRaven64 ( 641858 ) on Tuesday January 24, 2012 @08:41AM (#38803589) Journal

    What language? Unless you decide to keep up in programming languages whatever you learn is going to be completely and uterly useless.

    The fact that you even ask this question shows that you have completely missed the point. Programming teaches two very important things:

    • Breaking down a set of instructions into a form so simple that something with no intelligence can follow them.
    • Understanding the limitations and capabilities of computers (which, in case you haven't noticed, are now embedded everywhere).

    The language is entirely irrelevant here. I was taught BBC BASIC and Logo at school (aged 7). I've not used either language for at least a decade, except for a couple of times when I fired up an emulator for nostalgia. Does this mean that what I learned was 'completely and uterly [sic] useless?' Of course not!

  • by TheRaven64 ( 641858 ) on Tuesday January 24, 2012 @08:53AM (#38803669) Journal

    If I was employed with manual labor, as I assume is the case of the majority of planet Earth's total workforce, my programming skills would be reduced to a hobby with no practical value.

    The world is a red herring there. Ask about the EU or USA, and you'll find that the vast majority are not employed doing manual labour. It's increasingly cheaper to replace manual workers with machines - they make fewer errors, don't need to eat or sleep, and can work around the clock. With machines like concrete extruders, even builders (which hung on for a while because of the large amount of individual decision making required) are likely to see a reduction in workforce. People always say that plumbing is a safe occupation because it can't be outsourced, but how much of a plumber's work could be done by a small robot that crawled through the pipes and had a glue gun for repairing damage and a drill for removing blockages?

    A large part of the general population has absolutely nothing to gain by knowing how to program

    Really? I'll give you a counter-example. My stepfather is the head greenskeeper on a golf course. Hardly a job that requires programming, right? Well, except for the fact that the irrigation system that they installed a few years back is completely computer controlled. It comes with a little domain-specific language that lets you write simple programs that set the conditions that will trigger each of the sprinklers. But, of course, he's just doing a low-skill job, he doesn't need to know any programming...

    For more general usage, try watching pretty much any office worker at his or her computer for ten minutes. You'll find it a painful experience: so many things that are trivial to automate are done by hand on a daily basis. A basic understanding of programming and half an hour with the VBA documentation in Word would save huge amounts of time every day. But, of course, they're just doing administrative work, they don't need to know any programming...

  • by robthebloke ( 1308483 ) on Tuesday January 24, 2012 @08:57AM (#38803715)

    not sure whether it's a waste of time if you plan to become, say, a doctor, a plumber, etc...

    A librarian with programming knowledge would be snapped up immediately (since most libraries are being forced to digitise their collections).
    Someone who can speak arabic would be much better writing an english -> arabic translator than the vast majority of programmers.
    If you're writing animation software, an animator who can program is much more valuable than a programmer who knows nothing about animation.

    That's really the problem with recruitment though isn't it? There are plenty of programmers around, however there are very few people with (insert relevant skill here) who can actually program! Since CS tends to be the place where most people learn programming, how is that going to help us recruit a biologist with programming experience? Exposing children to programming at school gives them a chance to specialise in a subject other than CS, and still have a chance at employment as a programmer in the future....

  • by Toam ( 1134401 ) on Tuesday January 24, 2012 @09:07AM (#38803767)

    Is computer literacy for 14 year olds still an issue? Really?

    I teach at a university. I've noticed this attitude from a lot of senior academics.

    The assumption is that because almost everyone one of them owns an iphone and a laptop, that they are computer experts. However whenever we expect them to do anything work related on a computer (I am talking the most basic of Excel function) they collapse in a heap.

    There is a very serious difference between being able to update your facebook status and being able to do something useful.

  • by Rakishi ( 759894 ) on Tuesday January 24, 2012 @09:16AM (#38803821)

    There is also the interests of the child. A child into technology will take more attention and learn faster.

    You've never taken a water downed school class in anything, have you? Trust me, nothing else saps interest and attention faster.

    I'm very good at math, a prodigy you might say. In elementary school math was only interesting because I got into a contest with a friend on who could finish all the year's homework the fastest. I think it took us two weeks and he was merely good at math. In middle school the class was so mindnumingly boring that I learned calculus just so they could never subject me to another such class. I asked the school, btw, to place me in a more advance class and they basically told me to fuck off.

    Granted, they'll probably just give all the intelligent kids massive amounts of ADD drugs so they don't "act out" is those boring classes. Problem solved as far as the school and parents care.

  • by khr ( 708262 ) <kevinrubin@gmail.com> on Tuesday January 24, 2012 @09:44AM (#38804047) Homepage

    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.

    In junior high, even though I was already planning a career in computers, I still had to take shop class, something I didn't plan to really use. Still, I learned a bit about using some of the basic tools that might be around the house to get some tasks done with them. While my woodwork would probably never measure up to professional standards, I can probably do a few things if I need to for myself.

    The same could be said for computers. Even those who don't plan to become professional software developers could still use the skills learned for better use of a this other tool that's likely to be around the house...

  • by FireFury03 ( 653718 ) <slashdot&nexusuk,org> on Tuesday January 24, 2012 @10:03AM (#38804249) Homepage

    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.

    Whilst I agree with you that software development isn't a mandatory skill for all careers, I do think that it would be a good idea to give people a mandatory introduction to it at school and then allow them to opt to do it in the later stages of school. Remember that there are mandatory classes in many "non-essential" subjects already - why is it considered a good idea to teach kids art, music, geography, history, engineering (aka "technology") but not software development?

    When I was doing my GCSEs (a little under 20 years ago), I ended up doing art and geography as my optional subjects. That wasn't because I thought they were interesting or useful (I firmly believed, and still believe that they were the most boring wastes of time I've ever encountered and have done nothing to usefully improve my education). Computer science wasn't available either as a mandatory or as an optional subject. As far as I know, it still isn't, 20 years later (yes, there are now useless "computing" classes that teach you how to use Word - something that maybe you could dedicate a lesson or 2 to, but I honestly don't see how you can fill an entire subject with that).

    In fact, I would go so far to say that a rudamentary understanding of how software works (not just how to use it), would be far more useful to most people than the likes of art, geography, etc. Even if you're not going to have a career in computing, you're still almost certainly going to use computers and have to interact with techies, so having at least some understanding of how they work is helpful. I don't subscribe to the idea that understanding beyond the level that you are working at isn't useful - if you're writing software in assembly language then it helps to have an basic understanding of the physical chip design; if you're writing software in C it helps to have a basic understanding of the instructions that code will be compiled to, as well as how the operating system is going to handle your system calls; by extension, if you're using computers (and people from all areas of life do this, including doctors, company directors, etc.) then it helps to have a basic understanding of how the software actually works.

    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.

    I fundamentally believe that we shouldn't be teaching languages just because they are currently in use or state of the art. When I was doing my A levels and later when I was doing my degree, basic procedural programming was taught using Pascal, because it happens to be a reasonable teaching language. It is, however, a language that isn't really used in industry, but that doesn't matter because once you've understood the basics of programming, picking up a new language is easy. These days, the university I studied at has switched to using Java to teach basic programming skills, because industry alledgedly wants Java programmers. Java is a pretty horrendous language to use as a teaching language for people who have never programmed before, so it fails at that point. Even if industry does want Java programmers now, they probably won't in 10 years, so using that as the foundation for a degree seems daft.

    As a company director myself, I don't want programmers who know a single specific language - we use a variety of languages (Java is not one of them), and which languages are used periodically

Real Programmers don't eat quiche. They eat Twinkies and Szechwan food.

Working...