Hello World: A Few Reasons Why Mandatory Coding In School Is Worth Considering

Our Prime Minister recently deflected a question about teaching young kids basic programming skills with all the wit and diplomatic nuance that we're used to. Not that he'll be reading this, but here's why it's a great idea.

When asked by Bill Shorten if he would support teaching primary and secondary school students to code, Abbott replied:

Let's just understand exactly what the Leader of the Opposition has asked. He said that he wants primary school kids to be taught coding so they can get the jobs of the future. Does he want to send them all out to work at the age of 11? Is that what he wants to do? Seriously? Seriously?

Nice one, Tony. Nailed it.

One can only hope that after collecting back pats from the front bench, the PM might ask a question along the lines of "So... Is that actually a good idea?"

It's quite a good idea.

As any one who's done programming can tell you, it's not just the workable skill you're learning. It's a way of thinking. The no compromises world of code teaches problem solving skills, creativity, maths, logic, and can actually be very fun. A love for coding won't stick with every child, but the lessons will. An investment in coding skills is an investment in an entire generation that will think more logically.

For the leader of the party supposedly all about jobs and financial responsibility, Abbott seems to have missed the trend lines. In Europe, several companies including Facebook, Microsoft, Rovio, and more, have called for action to fill an estimated 900,000 vacant jobs in the tech sector by 2020. Their request singled out teaching kids to code.

In the US, five out of the ten fastest growing industries depend on tech startups. This report shows that Computer Systems Design and Related Services has high growth in wages and salaries.

According to the Report of the Joint Informatics Europe and ACM Europe Working Group on Informatics Education, we're failing our kids and asking for an underperforming economy:

Continuation of this failure would put the European economy at risk by causing students to lag behind those of many other countries, including emerging but increasingly competitive countries

Anecdotally, my last trip to E3 had a very noticeable rise in the amount of Swedes I spoke to in developer interviews. I began to ask why this was, and why there was a sudden boom in successful Swedish studios. The answers I got pointed to digital literacy programs that target youth.

It goes without saying that the comment about sending 11-year olds to work is ridiculous. That's the level of discourse we're at right now — all the more reason we should make logical thinking compulsory. With luck, the Age of Information will avoid another political society with near-zero digital literacy making all of our digital policies.


    At the very least it might mean that in 20-30 years when those kids are in parliament they will actually know what the hell they're legislating.

      I think not knowing anything about what you're talking is a pre-requisite to being a politician neg; so sadly if you've got even half a brain you're going to end up out of government =p

        What kind of idiot wants to be a career politician?

          I know one and I'm sad to say they're family to me.

            *pats shoulder*
            There there. We won't judge you.


          You kind of answered your own question there mate.

          Right here. If you're no one stands up and wants to enter the race to change the system the system will never change as the same people will always be the only option.

          Up in the NT we've actually got a politician who's anti gay marriage but is asking her electorate their views to vote according to what they believe in. And has stated sometimes her views are irrelevant as her job is to represent her electorate not herself.

          Well, some of the perks are pretty good. I wish I had lifetime taxpayer-funded super just because I held down a job for five years.

          The main downside is that you have to spend the entirety of each day with politicians.

          Christopher Pyne, our Education Minister, for one.

          Sad but true.

      I still wouldn't count on it. Overall tech literacy at a more advanced level is apparently lower with newer generations than it is for the people in their late 20's and early 30's. It's been attributed to modern computing being very simplified, there is less of a reason to go digging for solutions to problems than there used to be in the late 80's and 90's.

      Nobody is partitioning a disk on an iPad.

        Code is a bit different though. As stated in the article, it really is a way of thinking. Similarly with learning a spoken language, instilling the mechanics in younger brains to be set up for learning code will make learning future (coding) languages a lot easier as well as lay foundations for great ease of learning in other subjects and areas. It would structure the brain in a very different way to the way it is today and a growing necessity at the rate our technology keeps progressing.

          Oh I'm not saying it's the same thing, I'm just implying that politicians in 20 years probably wont be any more literate than they are now.

        Damn true that. When I first went to University, my class mates and I were eventually taught programming in C/C++ (we started in VB). We also had a lecturer who knew programming very well and even listed specific switches for gcc.

        The rule was simple, if any errors or warnings appeared, the work would not be assessed. So we really had to learn what was going on and what the compiler was telling us.

        It later moved to .NET but then I noticed one thing: there is virtually no manual memory management.

        At first I though "great" because malloc() and indirection drove me nuts but after a while I soon realised that while it made programming simpler it actually took control away from me and it would not be clear what the run time was doing.

        Still primarily a .NET programmer now but I dip in Objective-C, Lua, Perl and even OpenCL from time to time just to resharpen myself. The languages are easy enough for a 4 year old to understand but I go to them (especially OpenCL) because I like the planning and algorithmic challenges they ensue.

        And personally, I like Objective-C (the original, not 2.0 which is maintained by Apple) because it has that sweet spot between a simplified abstraction and still needing to know the inner workings and what one is doing.

      Yeah but by then they'll have no idea about modern CyberTelekinetic technology.

    But.... if we teach our kids to be logical who'll be the next Tony Abbott?!? D= This is a stupid idea!

      In secondary school the pass mark is usually 50%, so you only need to think logically about 50% of the time.

      That seems to be about what Our Tones is achieving.

      Actually, just remember Ketterling's Law: "Logic is an organised way of going wrong with confidence." Abbott's probably just using some very strange axioms.

      They can always recruit some doofus who was handed a scholarship for being 'old money'... like Tony's daughter.

    That's called thinking about the future. Current government doesn't do that very well. Also clearly they haven't done programming as you can see a clear lack of logic and disregard to so many variables.

    Sad thing is both sides are just pointers to the same piece of useless memory.

    It's bad enough Abbott failed to keep his mouth shut when Shorten baited him but as @anguskidman put perfectly, there is still the question on where the teachers are going to come from.

    Neither side has an answer and I'm not going to hold my breath waiting for one. Especially from the likes of Shorten for three main reasons:
    * Programming maybe the easiest skill to learn, but if one does not want to learn programming then its a waste,
    * There is no point as mathematics is not given the serious attention it needs first (it has been watered down to the point of being transparent), and
    * It's being promised by the leader of the party that set the wheels in motion for the budget mess we have now.

    If Shorten want's to make programming compulsory then he'd better have answers on how at least that area can be funded without borrowing and where he'll find actual good programmers to do the teaching.

    Until he does, I'm not taking his bait (more than what can be said for Abbott).

    Last edited 28/05/15 3:21 pm

      Well said. It's well and good raising an issue, but please have an idea of a solution. We do so much finger pointing on both sides of the bench that nothing ever gets done!

      Last edited 28/05/15 3:53 pm

      I have one point of contention. Teaching Students who don't want to learn any skill or subject is a waste of time.

      We had a kid in my maths class who no matter what the lesson was, was immediately complaining he didn't understand how to do this. One day our Teacher said he was running behind and to talk among ourselves for 5 minutes quietly. Immediately this idiot stuck up his hand and said "Sir I don't know how to do this.". I had never before and never since seen such a look of contempt on this Teachers face who had a reputation for being a laid back and easy going kind of guy.

      To teach anything to a student that student must first actually want to learn.

      I like the idea, I've got no plan on how to implement it, but getting support for an idea is a great place to start.

      As a teacher with coding experience, I wonder this, also. New subjects like this take ages to implement properly because you have to somehow immediately learn to teach it. Media is a popular and worthwhile subject but VERY few are teaching it correctly. Half the time it's English teachers who assume it's just an equivalent of how they teach units on film. I'd have to assume that if the subject were implemented, schools will likely try and get their current teachers to somehow learn it and teach it as opposed to looking for qualified coders who are teachers. It's a worthwhile skill but you can't just snap your fingers and make it happen, money in schools is so tight it'd likely be taught irresponsibly like media.

      What budget mess? The "budget emergency" that mysteriously disappeared?

      Australia is a sovereign nation with a fiat currency which means it can fund without borrowing. I would suggest you read http://bilbo.economicoutlook.net/blog/?p=332 and go from there.

      Secondly, any teacher who can't learn Snap! isn't worth their salt.

      Third, a large part of what primary and secondary school is about is exposing students to things they might not have known they wanted to learn.

      Last, why does mathematics need to be improved before anything else? You can do both, sheesh. It's not like there is one person that writes the cirriculum.

        It's incredible how that budget emergency line is still being trotted out, isn't it...

    Best thing that comes from learning how to code is gaining the ability to learn how to code.

      I would say learning the thought process behind code is benificial to all aspects of life. Even to identify the thoughts that are not based on logic.

    I think this article can more or less be summed up as:
    If you give children exposure to new things, they might learn new ways of thinking and learning. It may also promote interest in a career path that they may not have otherwise even contemplated.

    My main reason for wanting people to learn even a little coding is so that they might be a little more forgiving when games get delayed or don't always work right.

    "He said that he wants primary school kids to be taught coding so they can get the jobs of the future."

    Doesn't the exact same statement apply to reading/writing, arithmetic, and social interaction? Why do you learn science at school if not to be able to contribute to society? Why even bother learning anything, they should start sending Centerlink forms for kids to practice filling out now.

      The Abott Government's Australia: Life Skills 101
      - Filling out rental property applications
      - Efficient use of your 2 hour daily commute
      - How to be a new father at 50
      - Retail work tips for retirees
      - Feeding your family on dirt soup and $20 notes
      - I won't tell if you dont: Your parish priest and you
      - Red Riding Hood and the Climate change wolf: Mr Coal saves the day

    Coding also teaches the idea that near enough is good enough.

    The amount of times I've heard coders explain that they don't know why their code is a ugly, barely functioning heap... but so long as it's working they aren't going to meddle with it.
    It's become something of a running joke among development communities.

      If the code is barely functioning, it's still functioning. It's not so much "near enough is good enough", because code that nearly works is definitely not good enough. You can have crap code that works, and that's ok (unless you're in a large company, then you better go back and fix it to fit with the standards), but if you forget a semicolon, your code does nothing.

        Good code is about future proofing. If it's a mess and you are scared to edit it, how are going to expand on it to add extra functionality. Or bring subs and functions across to other projects. Also, other people might have to work on your code too. If it's a mess, they are truly going to despise you.
        What about if you have to deploy it toa different environment; maybe it barely worked in your isolated testing environment, but then you get it out in the wild and everything fails miserably.

        For the record I am a code etiquette Nazi and always stand by having good quality code in all facets; proper use of indentation and white space, comments/internal documentation where necessary, subs/functions that aren't specific to the project, are flexible and can be easily implemented elsewhere.

      Jeez, I find the exact opposite, coding teaches you to be a little pedantic and that near enough is nowhere near good enough.

      Providing it is only you working on it, and you can reasonably expect nobody else to need to meddle with it then I am OK with ugly code. But when you are working in a team, you want to make damn sure that it is neat and tidy, well organised and adequately commented where necessary.

    I'm really not sure if there should be mandatory coding classes in schools. Mandatory computer/IT skills classes? Yes, absolutely. But coding is a specific discipline and I don't think introducing mandatory coding classes in schools would make kids want to be programmers any more than home economics makes them want to be chefs.

    If you're going to start teaching them coding, what about other IT disciplines? Networking, 3D Art, Animation, Project Management, Systems Analysis and Design, QA, Desktop Support, Server Management?

    Not to mention that not everyone is actually capable of coding...they don't have the logic nor the mathematical and analytical mind to be able to do it.

    I dunno. To me, it seems that we should be investigating the reasons WHY people are choosing not to pursue careers in coding (and IT in general) and working on addressing those reasons, not ramming yet another thing down our kid's throats at school that the majority of them would not be interested in.

      The general idea is to introduce the logic side of things while they're still young enough to absorb it. I don't see it as making kids want to be programmers.
      We have mandatory math, but not everyone has the mind for that, either.

        The difference with maths is that there are different levels of maths. If you have a good mathematical mind you go to the higher levels of maths, if you don't, you stay in the lower levels.

        It's changed now of course but when I was in high school, if you couldn't do 2U or 3U Maths then you did Maths in Society or Maths in Practice. Basically practical ways to use basic maths skills. I don't really see programming as having equivalent kind of levels. There's only so much programming you can do at a basic level.

        Basic maths is going to help you in every day life, even something as mundane as doing the shopping. Basic programming is not. You don't need to know how a lightbulb works to be able to turn it on and use it, you don't need to know how a web browser works to be able to load a web page.

        Then of course you have the question of who is actually going to be teaching programming in schools. It's hard enough finding good lecturers to teach programming in Universities. Some of my lecturers at Uni were clearly very smart and knew their shit, but they couldn't teach at all.

        Like I said, I think a better use of our time and resources is investigating exactly WHY there is a IT skills shortage and addressing those reasons, to try to make a career in IT more compelling.

        Last edited 28/05/15 4:53 pm

          Basic coding is called scripting, it is easy to learn some you don't have to worry about scope and classes and objects, etc etc.
          It also has real world applications because you can script a whole plethora of tasks that are normally repetitive and mundane. You can also step up a little from that and write macros for programs like Word and Excel, which I'm sure the vast majority of jobs use these days. Evena boilermaker told me once, if he only had the knowledge to use Excel effectively, he would have been eligible for a promotion to a management position.

      Yeah. I can't help but feel this is attempting to make people smarter by copying things smart people do. Tech savvy people know how to program, so if we teach kids to program they'll all be tech savvy.
      It's a handy skill to have within IT fields but it's not a super useful skill in the way people pushing for these classes seem to think. There seems to be this idea that it's like touch typing where once you learn how to program you'll somehow you'll be much better at everything else you do on the PC.

      Not to mention that not everyone is actually capable of coding...

      I'll disagree with that though. I've taught some amazingly stupid kids to program. Doing that in a one on one environment vs a classroom is obviously a bit different, but it's not some magic power you're born with.

        In my experience many people just lack the logic skills to program. They could be really smart but they simply lack the logic to understand how to program. In my Uni course I saw some incredibly smart and talented classmates drop out because they just couldn't get their heads around it. Similarly though, some otherwise really stupid people can have the logic to do it...it just clicks with them.

        It's not really about being smart or intelligent, it's about being capable of thinking logically. And not everyone has that skill. And that's not a bad thing. Not everyone has the creative mind to write a novel, not everyone has the coordination to play a drum kit. Not everyone has the logic to program.

          I still believe if you can get kids early enough, you can instil some of that logical thought process into them while their minds are open enough to take it. Maybe it's not for everyone and there will be children that simply can't handle it, but the same goes for basic math, too.
          That being said, there comes a point where you have to just realise they're never going to get to that level. So you have swayed me a little and I concede that maybe coding should not be mandatory at all levels. But it should be there somewhere, and it should be early. And maybe not even coding as in typing lines of code into a text editor, but the more logic-based visual programming deigned for young kids. Perhaps the conversation should shift away from mandatory coding, and more towards mandatory logic, in which visual programming languages can be a simple way to teach those principals, branching out into coding proper at later levels for those who show an aptitude.

          If I had to guess I'd say your Uni class just neglected teaching those aspects properly, or more correctly, everywhere they'd been educated before Uni neglected those aspects. Some people pick it up easy, others struggle, but they can all learn it.
          It always reminds me of how in a sports class they never cover the fundamentals because the teachers are happy to just chalk those skills up as naturally occurring. They weren't interested enough in a sport to sink hours and hours into practicing holding and throwing a ball before they made it to school, so the teacher writes them off as not very athletic and lets them lag behind for the next 12 years. In a similar way it's easy to feel like some people are naturally awesome or terrible when it comes to logic, when the reality is they just enjoyed/hated playing with LEGO.

    I think coding should be up with how to use a word processor/spread sheet. Also think it is import to give kids a basic understanding of how a computer and it's OS actually work so they will be able to problem solve later in life.

      Yeah, basic ICT skills is something most (if not all by now) High Schools require to be taught. Perhaps a "Life Skills" class should be included. It'd basically be home economics except some basic tradie stuff, some IT stuff, a little of everything you'd need to prepare for life.

      How to build IKEA furniture, financing, filling out formal documents, using a computer, cooking, cleaning, Etc.

    An investment in coding skills is an investment in an entire generation that will think more logically.

    That is the absolute last thing that either of our major political parties wants. They want stupid, docile, easily-manipulated idiots. People who actually think logically tend to ask awkward questions.

    Last edited 28/05/15 5:30 pm

    As any one who’s done programming can tell you, it’s not just the workable skill you’re learning. It’s a way of thinking. The no compromises world of code teaches problem solving skills, creativity, maths, logic, and can actually be very fun. A love for coding won’t stick with every child, but the lessons will. An investment in coding skills is an investment in an entire generation that will think more logically.

    Here's the catch, that logical way of thinking is the hardest part of the course to teach. You can pass almost any programming course on the level we're talking about here with flying colours without ever learning to think that way. Without really good teachers you're just going to get a class full of kids who know how to pass the test using the specific programming language and software versions they were taught with.

      That's all it needs to do at that level, though - it just needs to give them a bit of exposure to it. The fact is the vast majority will probably never even try it off their own bat. Make them do just the most basic level of coding at school and you might light that spark of interest in a few of them. Even if only 1% of them go any further with it, that 1% still adds up to a good number of people with coding skills that wouldn't have otherwise ever even tried it.

      Did software design and development in high school and the thing that stuck with me wasn't the code itself, worked with VB, Java, HTML and some cobal, algol and unix and I can only remember the bare minimum of that. The logic/algorithm side of the course though I apply to a great deal of things every day.

    I agree with this, I feel like knowing how to code has given me the skills to tackle a whole plethora of problems in real life.

    Id like to see a actual source for Abbotts quote, rather than a link to another article by Lifehacker.

      Here's the actual Hansard record from Parliament:

    Knowing Tony he probably thinks 11 year olds should get to work.

    I don't know how to code. I'll probably never learn to code. I don't think it should be compulsory at school.

    Coding is specialist knowledge. If the argument is that coding should be taugt to everyone to keep the economy going, you have to recognise that most jobs do not require coding knowledge. A nurse or an accountant does not need coding knowledge to do their jobs. Moreover, school is not really about specialist knowledge. It's about giving people a broad base of knowledge on many subjects, which is why it's not until your last few years you get significant input into what you want to learn.

    If the argument is that coding is great because of the different way it makes you see the world, the same thing could literally be said about every other field of study. People who study art can rave about how transformative that field is. Or languages. Or history. Or whatever field of knowledge a given person is passionate about. I have a friend who believes that economics is one of the most important fields of study because it gives people an appreciation of how individuals and groups react to different incentives.

    At the end of the day schools have fintite money and time. If you want to teach coding, you have to make cuts somewhere else. So what would you cut?

    In year 10 (2002) we had programming as an ellective subject (which I thought was awesome since I got into gaming and had recently built my own computer) only to find that the subject was basically a series of projects to complete in visual basic, with the bulk of the work just copying the 5 pages of code from the booklets we were given. No real teaching was done and we spent most of the time going over the code word for word looking for typos.

    It's a brilliant idea but it has to be done exponentially better than when I was in school.

  • This comment is not available. This comment is not available. This comment is not available. This comment is not available.

    This comment is not available.

Join the discussion!

Trending Stories Right Now