Slashdot Mirror


Why Coding Is Not the New Literacy

An anonymous reader writes: There has been a furious effort over the past few years to bring the teaching of programming into the core academic curricula. Enthusiasts have been quick to take up the motto: "Coding is the new literacy!" But long-time developer Chris Granger argues that this is not the case: "When we say that coding is the new literacy, we're arguing that wielding a pencil and paper is the old one. Coding, like writing, is a mechanical act. All we've done is upgrade the storage medium. ... Reading and writing gave us external and distributable storage. Coding gives us external and distributable computation. It allows us to offload the thinking we have to do in order to execute some process. To achieve this, it seems like all we need is to show people how to give the computer instructions, but that's teaching people how to put words on the page. We need the equivalent of composition, the skill that allows us to think about how things are computed."

He further suggests that if anything, the "new" literacy should be modeling — the ability to create a representation of a system that can be explored or used. "Defining a system or process requires breaking it down into pieces and defining those, which can then be broken down further. It is a process that helps acknowledge and remove ambiguity and it is the most important aspect of teaching people to model. In breaking parts down we can take something overwhelmingly complex and frame it in terms that we understand and actions we know how to do."

21 of 212 comments (clear)

  1. You nerds need to get over yourselves by Anonymous Coward · · Score: 1, Insightful

    Making dense lists of technical gibberish doesn't make you great human beings, and trying to force other people into your narrow autistic mold makes you a bunch of fascists.

    1. Re:You nerds need to get over yourselves by fractoid · · Score: 5, Insightful

      Interestingly, it's not usually 'nerds' who push the idea that software development is something that everyone is even capable of, much less that it's something that most people should try and learn. It generally seems to be people who have grasped the basic idea that "programming means giving the computer instructions" and got excited about it, but never went beyond writing a few loops and some if() statements.

      Anyone who's taught programming at a university level will know that even among intelligent students who want to learn, there are a large minority who (while they have many other valuable skills) are just not mentally wired to think in the way needed to develop software. It's a huge waste to try and push these people into doing something that they're not equipped for, instead of focusing on talents that they do have.

      --
      Rampant carbon sequestration destroyed the Dinosaurs' tropical paradise. I'm here to help repair the damage.
    2. Re:You nerds need to get over yourselves by Intrepid+imaginaut · · Score: 5, Insightful

      Nope, let's not even justify it to that extent. Coding is a job description, and an increasingly blue collar one like plumber or electrician at that. This whole push by giant corporations to get into schools (!) is simply a means for them to reduce future worker salaries and ensure a steady supply of bright young idiots all fresh'n'ready to be abused and burned out.

      End of.

    3. Re:You nerds need to get over yourselves by GrandCow · · Score: 3, Insightful

      I guess going off your comment, assuming coding was just a blue collar job...

      A room full of shitty coders is always going to be worth less than a couple real coders salaries. Either in initial cost or support.

      --
      "Well kids, you tried your best, and you failed. The lesson is, never try." -Homer Simpson
    4. Re:You nerds need to get over yourselves by narcc · · Score: 2, Insightful

      Odd. In my experience, the people who insist you need a 'special mind' to code are deeply insecure people with no other skills.

      Programming is absurdly simple. Back in the 80's, you couldn't throw a stone without hitting a kid who wrote games for his home micro as a hobby. Hell, the bulk of the users here taught themselves before the age of 10!

      You've probably noticed this yourself, but there are a LOT of really stupid professional developers. It doesn't take genius; just interest and a little time.

    5. Re:You nerds need to get over yourselves by Intrepid+imaginaut · · Score: 4, Insightful

      You could say the same about almost any skilled labour though, good enough is often good enough. I agree with what you're saying but it doesn't make what I'm saying less true.

    6. Re:You nerds need to get over yourselves by fractoid · · Score: 5, Insightful

      Programming is absurdly simple. Back in the 80's, you couldn't throw a stone without hitting a kid who wrote games for his home micro as a hobby.

      There were plenty of kids who knew how to write "10 PRINT FART; 20 GOTO 10" or who typed in listings from magazines, and I agree that programming at that level is probably accessible to most people - but you can't equate that level of programming with modern software development.

      You've probably noticed this yourself, but there are a LOT of really stupid professional developers.

      I wouldn't phrase it as "really stupid professional developers". There are certainly a lot of incompetent professional developers, and they're part of what's formed my opinion about some people not being mentally equipped for software development. Do you honestly believe that such a proportion of people who make their living developing software are that bad at it purely because they're lazy, apathetic or unmotivated?

      For the obligatory car analogy, most people are probably capable of learning to swap to a spare tyre, change the oil, or top up the radiator (learning some simple scripting). Most people are probably not capable of learning to design high-flow intake manifolds or variable valve timing mechanisms (useful commercial software development).

      --
      Rampant carbon sequestration destroyed the Dinosaurs' tropical paradise. I'm here to help repair the damage.
    7. Re:You nerds need to get over yourselves by AchilleTalon · · Score: 3, Insightful

      Spot on! This idea is obviously pushed by giant corporations that wish to have access to an unlimited pool of low-cost labour and they can manage with the good enough thing by putting in place development process controls at all levels. This idea is not new, what is new is they are trying to make it comes to life. In the late 80's, the theory of development process control was already revolving around replaceable and good enough developers rather than highly skilled developers you cannot afford to lose. The good enough guys were in fact a guarantee of stability in your development process.

      --
      Achille Talon
      Hop!
    8. Re:You nerds need to get over yourselves by Anonymous Coward · · Score: 2, Insightful

      Most programmers make huge amounts of technical debt and don't know it. They start off being "good enough", but after some time all of that debt starts to accumulate. At some point in the future, you have large amounts of people dedicated to making bandaid fixes to fundamental flaws in design. Design, what's that?

      What starts off as "good enough" quickly turns into negative value. After some time, the company is being held up by a few decent programmers and the rest are constantly creating messes for those few to clean up. Like an old car, you find yourself spending more time fixing problems than adding features or otherwise improving the system.

  2. yes, programming, like poetry, is not words, unive by raymorris · · Score: 3, Insightful

    I've always thought programming is more like writing POETRY than just being literate - not everyone needs to do it. Both involve writing down words, but knowing the vocabulary and grammar isn't the really the point.

    If you wanted everyone to be a programmer, you wouldn't teach them code, you'd teach them skills of system design, troubleshooting, etc. But why would you want everyone to be a programmer? That's like teaching everyone to be a diesel mechanic or poet. Kind of a waste of time.

  3. What? by Anonymous Coward · · Score: 1, Insightful

    So this "modeling" thing he talks about is included in my definition of coding. Coding is not a "mechanical act". When you work with coding, do you get what you should type on a piece of paper first? How do you code if you can't break down a problem and understand it? Idiot author. Next story please.

  4. They tried this in the early 1980s by xxxJonBoyxxx · · Score: 4, Insightful

    >> furious effort over the past few years to bring the teaching of programming into the core academic curricula

    They tried this in the early 1980s and all we got was the Internet at everyone's home, online shopping and news, free video conferencing, entirely new ways to organize photos, transportation and events, realism-quality video gaming, and cell phones so easy to use that toddlers can participate in the world wide web.

    What good could coding literacy possibly do now?

  5. Math by sgunhouse · · Score: 5, Insightful

    They are still not talking about literacy - they are talking about problem solving. That makes it the new Mathematics, not the new literacy. (And yes, what I learned coding on my VIP not quite 40 years ago did help me with my degree in Math a few years later, so I do know what I'm talking about.)

  6. Coding is not literacy. by Anonymous Coward · · Score: 2, Insightful

    It's more like the old Car maintenance. A skill you can use so you don't get screwed because you know nothing about what makes an important component of your life function.

  7. Re:yes, programming, like poetry, is not words, un by ColdWetDog · · Score: 5, Insightful

    Pretty much this. The whole push to have 'everyone' code is because it's trendy and is a definable skill, unlike 'learning how to think' or reason. And it segues quickly into 'jobs' which makes everybody happy. Further, there is this odd belief among many people (including a whole raft of Slashdot posters) that software can do anything and the world should be viewed through the lens of a Von Neumann machine.

    Coding is a subset of human activity, not a superset. Even modeling, as championed by TFA is only a small part of human learning.

    But schools are in a tough place. They are supposed to teach everyone, from the next Albert Einstein to the kid that will be sweeping the floor. They're supposed to push the latter child farther and faster than they could possibly go while not slowing down the new Einstein. All the while acting as in loco parentis, cop, judge and diaper changer.

    For only $29.95 per child.

    --
    Faster! Faster! Faster would be better!
  8. Coding is problem solving ... by gstoddart · · Score: 4, Insightful

    At it's core, coding is problem solving, and relies on logic and reasoning to use the tools you have to solve a problem.

    Debugging is thinking through logically what has gone wrong, examining the code, and possibly taking some educated guesses (hypotheses) about what might be the problem and what you might need to fix it (depending on the nature of the problem).

    So, sure, teach coding.

    But don't think you can do this with people who haven't got a good grasp of problem solving, applying logic and reasoning, formulating a hypothesis, and refining your knowledge based on some experimentation -- which over time grows into a body of knowledge.

    Do they still teach any of those in schools?

    --
    Lost at C:>. Found at C.
  9. Re:We need better software, not more programmers by K.+S.+Kyosuke · · Score: 3, Insightful

    I'm not quite convinced that your analogy is completely accurate. Do we need better programs? Of course we do. But we most definitely need good ways of connecting those good programs together, otherwise you'd have islands of good functionality connected by people cutting and pasting stuff for no good reason. Granted, that's largely what we do in the physical world: the warehouse "program" and the truck "program" aren't automatically connected either, people have to either manhandle stuff or at least operate forklifts, significantly decreasing the efficiency of the compound system relative to the ideal value. However, computers have this tremendous benefit of allowing people to automate these connections much faster than we'd be able to do in the physical world (you can write a pipeline in shell much faster than you can design and build a robo-forklift). This very technical possibility is perhaps why our expectations are a priori higher when it comes to computers. Unfortunately, this process of effecting computational processes by means of connecting primitive operations by means of composition operators and abstraction operators is called "programming". That applies even to those cases in which the "primitive operations" are whole independently-useful programs. And a lot of these scenarios can't be predicted in advance.

    --
    Ezekiel 23:20
  10. Needless Distinction by Tibia1 · · Score: 5, Insightful

    Asking whether coding is 'the new literacy' is a semantic distraction. It's a phrase that tries to build excitement, but distracts from the real question; is coding a skill worth teaching to every youth?

    I believe the answer is yes. Through coding, kids can apply and solidify the math they learn in school in a useful way. It also builds a mentality of experimentation that can help with the sciences. It also makes use of writing in general, making english class even more relevant. Real programmers depend on writing well to communicate, which can make a huge difference (see stack overflow questions).

    Also, the skill of 'modelling' systems can be practiced and taught through the construction of computer programs. It can be very useful to build reasoning skills that are useful even if the person never codes again. Many of the subjects taught in schools don't offer skills that can be used anywhere else but in that specific subject, and are only taught for the sake of 'forwarding the knowledge of that specific field', whereas coding seems to offer many skills that transfer over into other subjects.

  11. This is so wrong... by QuietLagoon · · Score: 1, Insightful

    ... Enthusiasts have been quick to take up the motto: "Coding is the new literacy!" But long-time developer Chris Granger argues that this is not the case: "When we say that coding is the new literacy, we're arguing that wielding a pencil and paper is the old one. Coding, like writing, is a mechanical act. ...

    The new literacy?

    .
    GMAFB

    Coding is a talent or a skill. Beyond that, there is nothing, not a single thing, special about it.

    The extreme productivity that some software engineers possess is not due to their literacy in coding. It is due to their ability to look at, understand, and solve problems at a level higher than most.

    It is not a question of literacy. It is a question of problem analysis and resolution.

    [aside: I often wonder why software engineers constantly have he need to elevate themselves above all others]

  12. Re:Computational Thinking by Half-pint+HAL · · Score: 3, Insightful

    Indeed, but this is like bad spoken language teaching too. "What is the first-person singular subjunctive present suffix of third conjugation verbs?" may get the right answer, but the skill the learner really needs is to be able to say "I ask" in Latin. Any teaching that focuses on structure without meaning is hopelessly lost. The reason that coding should be considered a fundamental skill is that the alternative is to have a specialist class of coders who have no subject knowledge. How do you learn a language if you don't have anything to say?

    There were a lot of computer concepts that didn't make sense to me until I found a real-world problem they modelled. I hated OO with a passion at university, because the examples and tasks we were given were contrived, rather than demonstrating a real-world need. As such, I think coding would be far better taught within the context of a content subject -- engineers have different problems from biologists, who have different problems from linguistics researchers. That also leads us down the road to declarative programming, because our beginners' programming skills courses are currently dominated by various fiddly technical details of the imperative language we're using that we have to deal with before we get to deal with our first problem.

    --
    Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
  13. coding should be taught as coding by dominux · · Score: 3, Insightful

    I want people to understand loops. Loops that happen a number of times, loops that run at least once and end on a condition, loops that are entered on a condition and may never run. I want people to get an understanding of how fast computers are at calculating things. I want people to understand functions, datatypes and recursion. These are all completely academic topics, nothing harder than long division. There is no reason not to teach this stuff. You can do it all with block based languages (scratch/blockly) or with various text languages. That doesn't matter. It is the fundamental concepts that everyone needs to be introduced to, just like everyone gets to do a bit of algebra and a bit of chemistry and a bit of geography.