Want to read Slashdot from your mobile device? Point it at m.slashdot.org and keep reading!

 



Forgot your password?
typodupeerror
×
Education Programming

Jeff Atwood NY Daily News Op-Ed: Learning To Code Is Overrated 300

theodp writes: Responding to New York City's much-ballyhooed $81 million initiative to require all of the city's public schools to offer CS to all students, Coding Horror's Jeff Atwood has penned a guest column for the NY Daily News which cautions that learning to code isn't all it's cracked up to be. Atwood begins, "Mayor de Blasio is winning widespread praise for his recent promise that, within 10 years, all of New York City's public schoolchildren will take computer science classes. But as a career programmer who founded two successful software startups, I am deeply skeptical about teaching all kids to code." Why? "If someone tells you 'coding is the new literacy' because 'computers are everywhere today,' ask them how fuel injection works. By teaching low-level coding, I worry that we are effectively teaching our children the art of automobile repair. A valuable skill — but if automobile manufacturers and engineers are doing their jobs correctly, one that shouldn't be much concern for average people, who happily use their cars as tools to get things done without ever needing to worry about rebuilding the transmission or even change the oil." Atwood adds, "There's nothing wrong with basic exposure to computer science. But it should not come at the expense of fundamental skills such as reading, writing and mathematics...I've known so many programmers who would have been much more successful in their careers if they had only been better writers, better critical thinkers, better back-of-the-envelope estimators, better communicators. And aside from success in careers, we have to ask the broader question: What kinds of people do we want children to grow up to be?"
This discussion has been archived. No new comments can be posted.

Jeff Atwood NY Daily News Op-Ed: Learning To Code Is Overrated

Comments Filter:
  • by Bruce66423 ( 1678196 ) on Sunday September 27, 2015 @05:50PM (#50609773)
    He's right that we need rounded people as programmers - but we are more likely to get them if the possibility of being a programmer is accessible to a wider range of people than at present. That's the virtue of this approach; it opens the prospect of programming as a career to a wider range beyond us geeks and nerds!

    On the other hand it may make us unemployable as ordinary people nick our jobs...
    • Don't have to worry about people nicking a real developer's job. The average Joe/Jolene is likely to get excited and whip up some horribly deranged code that he/she will pay a professional developer a lot of money to fix. Think of it as creating more career opportunities cleaning up the mess. After all, maintenance of various sorts is where 90% of the money in this industry goes anyway.
      • by gmack ( 197796 ) <[gmack] [at] [innerfire.net]> on Sunday September 27, 2015 @09:37PM (#50610615) Homepage Journal

        Indeed, this whole conversation brings back memories of my grade 11 Computer science class where I got to see a very motivated and highly intelligent girl brought to tears repeatedly because CS was the one class she just couldn't master (not a girl thing either, I've met several good female programmers). I have also seen people teach themselves to code (the best one at 40) It takes a certain kind of logical thinking to master software development and I have yet to see anyone find a way to teach that part of it.

        Having said that, I think offering programming classes to more students is a good thing since it increases the odds of someone who has the right talent for it being able to try it for the first time. I just don't think any of it should be mandatory.

        • But, from the point of view of a child, a computer language is just a language, like French, German, or Japanese. The earlier a child is introduced to a language, the easier it is for a child to pick up. Understanding the language of computers is as essential as English Language skills (to non-english speakers), not car repair.

          Some kids are natural linguists, some are natural scientists, and some learn by taking things apart and (occasionally) being able to put them back together again. Regardless of apt
          • by gbjbaanb ( 229885 ) on Monday September 28, 2015 @07:21AM (#50612025)

            but a computer language is not just the language - its the way of thinking that matters.

            For example, I can tell you that a cup of tea is very nice.

            Or I can tell you that a beverage consisting of stewed leaves, in a receptacle of suitable size for human consumption of liquids within reasonable tolerances constrained by societal norms concerning the adequate size given for common usage of imbibement practices, at a temperature between the range of values considered comfortable for sensitive tongue, palate, throat and stomach tissues not withstanding the sensation of heat requiring an upper range of temperature given the nature of heat dissipation of cooling liquids is of a nature considered pleasant to many who appreciate the flavour of such beverages.

            both are valid English, but like computer programs I've seen software constructed in ways that make the latter seem a shining beacon of terseness!

            So put software on the school curriculum like Reading, Riting and Rithmetic ;) but otherwise leave them to decide what they want to be without pushing some political agenda on them.

          • by shess ( 31691 )

            But, from the point of view of a child, a computer language is just a language, like French, German, or Japanese. The earlier a child is introduced to a language, the easier it is for a child to pick up.

            Those other languages are natural languages which co-evolved with the humans who speak them. Computer languages are designed to express things to computers, and computers are not humans - they aren't even aliens, they have no innate consciousness, so they do not work with you to adapt your communications. Every little bit of it is artificially constructed and stylized, all the way down. Computer languages are no more like human languages than the jargon used by biologists is like a human language.

            Or, let

        • by AmiMoJo ( 196126 ) on Monday September 28, 2015 @06:37AM (#50611853) Homepage Journal

          Logical thinking absolutely can be taught. Before computers were widespread it was often done by the teaching of Latin, which like a good programming language is very regular and well structured.

          If find that self-taught programmers often lack the ability to think logically and methodically, especially when debugging, so I teach them. It's a method, you start from first principals and validate your assumptions, and then check each possible cause of the problem in turn. You make changes and observe the results, updating your assumptions and redefining the problem space as you go.

          This can all be taught in class. I think it would be of great benefit to most students, along with some philosophy, comprehension and critical thinking skills.

          • by theskipper ( 461997 ) on Monday September 28, 2015 @08:26AM (#50612361)

            Well said. How about cutting right to the core and simply teaching logic to younger kids? As a EE major I begrudgingly took a formal logic class from the Philosophy dep't in college (straightforward proofs w/ standard symbology and sentence analysis, not mushy ponderings). Turned out to be one of the most enjoyable classes I ever took.

            In retrospect it wasn't that "heady" and could definitely be taught to first graders if wrapped as an ongoing game or some other expression that would allow them to keep building on the previous lessons. Latin could be formulated in an equally imaginative way.

            I can't help but think that the phrase "computers are taught in school" will always be limited to teaching syntax. Bridging the gap between typing stuff in and recognizing the logical basis is too roundabout. If presented correctly logic is something both kids and teachers can concretely piece together. "Computers" will follow naturally after that, as will the bigger issue of critical thinking.

            • by laird ( 2705 )

              IMO, the value of teaching kids computer programming are many:
              1) The learn to think logically. Theoretically this could be done in a logic class but there's a value in expressing the logical thinking in a context where it can be validated, which weeds out incorrect logic.
              2) They learn that they can control computers, not just use them. Even if they're not going to write software professionally, knowing that you can control the computer gives you confidence in using it, and
              3) Some will actually program the c

    • by Anonymous Coward

      I think the I.T. industry is going through the same growing pains as every other industry that has ever existed. As a manufacturing engineer with a bachelor's in mechanical engineering and a master's in industrial engineering and also being a volunteer with the GNU project (just giving you some background), I can tell you that programming and computer science literacy is no where near the most important skill to have in the real world.

      Construction, for example, if a much more fundamental skill, yet shop cla

    • And they should be called programmers. Not "coders".

    • On the other hand it may make us unemployable as ordinary people nick our jobs...

      Unlikely. We had to take art subjects all through primary school and again in high school years 8-10. How many of us became Michelangelos? It was an interesting way for us to explore our creativity and to better understand art when we look at it in the real world but comparatively few of us actually came out of it wanting become artists to make a living at it.

      • by narcc ( 412956 )

        Hey, you've got it!

        To add: I think a lot of the trouble people have here is that they really want programmers to be treated like other respected professionals (doctors, lawyers, engineers, scientists, etc.) Of course, there are no gatekeepers or requirements like those other professions. A lot of them are self-taught, having no formal background, meaning that anyone with the interest can become a professional programmer, just like they did. If we taught programming in schools, it'll lose a lot of the myst

        • It's been interesting over the years watching the industry trying to establish qualifications and standards, and seeing them look very silly because technology advances overtake the rules that used to provide the basis for those rules. For example once upon a time there were very separate categories of programmers and systems designers. This was because programming screens and reports took a LONG time - so the designer drew pictures of what the screen or report should look like and left the programmer to pr
  • by tomxor ( 2379126 ) on Sunday September 27, 2015 @05:52PM (#50609785)

    it's good to teach kids science...

    Not everyone should or should want to become "programming literate", but it's not supposed to be like learning how to read and write. There is more to learning to code than coding itself. There is plenty of science at school that people never use in their adult life, but it's useful to have some understanding of how the world works, how others work, and each subject bring a new way of thinking - a different way of thinking is brought with coding and that's useful to everyone.

    • by Rei ( 128717 ) on Sunday September 27, 2015 @07:43PM (#50610267) Homepage

      Indeed. Teaching basic coding (and let's roll in markup languages while we're at it) isn't like teaching someone to become an expert auto mechanic; it's like teaching them to change a flat tire, check their oil, jumpstart a car, etc. Interacting with computers is something that virtually everyone has to do these days. The ability to be able to write a simple script or even just have a basic understanding of *what* your computer is doing is not the same as having a 4-year CS degree. I think it would be good if kids were taught to change a flat tire and check their oil. And I think it's good that they learn the fundamentals of programming. Just like it's good for them to learn the fundamentals of mathematics, and chemistry, and biology, and so on down the line.

      Your science analogy is spot on, but in more ways than you mention. It's not at all rare these days for mathematicians and scientists to have to do computer programming as part of their work. A mathematician is much more likely to need to know what a for loop is than what a scalene triangle is. A physicist is much more likely to need to know what a function call is than which element comes after cerium on the periodic table.

      • I would even go one step further - just like most people don't know how fuel injection works, programmers don't necessarily know how processors work. Programming is just usage of the computer and it would be helpful to a lot of people. Anyone who ever needs to work with long lists of things whether it's data in spreadsheets or in databases or long lists of files could benefit from knowing how to write even some simple scripts. Nowdays that's pretty much everyone with a desk job. It's the difference of knowi
    • Coding as a proxy for logic and critical thinking might be good. To many people don't understand correlation vs causation, cause must precede the effect etc.

    • Coding, by itself, is a skill or trade. Pair that with other concepts, and you've got some flavour of computer science.

      I think it's a mistake to think all students needs to code, per se. It's just that coding (and more so, computer science) gives people a defined structure to think about and exercise problem-solving skills.

      I have non-IT coworkers that literally have no idea how to proceed when faced with a new problem or new piece of software. Even worse, they expect to dump these responsibilities on oth

  • school sport (Score:5, Insightful)

    by jblues ( 1703158 ) on Sunday September 27, 2015 @05:53PM (#50609793)

    I disagree. Today, nearly all kids are given the opportunity to participate in school sport. Not all will go on to be famous athletes, but most will benefit from the experience. Personally, I was an introvert and lousy at sports, but the school sports program instilled in me the importance of physical fitness and a love for nature and the outdoors. The program also taught me about personal limitations, strengths and weaknesses: I was smart, but certainly not good at some things! Didn't feel like it at the time, but that was a healthy too, I think.

    • Re: (Score:3, Informative)

      by TWX ( 665546 )
      On the other hand, lots of people that play high school sports exemplify people portrayed in Bruce Springsteen's song, "Glory Days."

      You make it sound like the number of seats available to teach programming are limited and very competitively sought. This is not the case. It's also true that while some entry level programming can benefit those that work in computers in-general, for those that don't make a career out of programming specifically there is an upper limit. I do LAN/WAN work and I write reaso
    • but most will benefit from the experience.

      Unless it's American Football. Then they'll most likely end up overweight and broken.

  • pleading for money from Microsoft, etc.
  • by GoodNewsJimDotCom ( 2244874 ) on Sunday September 27, 2015 @05:54PM (#50609799)
    People still write books even though there's more books out there than a person can read in their lifetime. Software will keep on being written. Considering it is a low cost endevour to start a software business, it is good for lots of people not willing to take monetary risks.

    Coding is great because it gives a person a real appreciation for math. Though, I already see the transition though that a person who knows which apps to use for a project can be more valuable to general companies than someone who writes custom apps. Until we invent natural language inputs, there will be a use for a coder, but even after then, we'll just be coding, but in natural language.
  • by SuperKendall ( 25149 ) on Sunday September 27, 2015 @05:58PM (#50609817)

    We all want students to be well-rounded, right?

    Well why should that not include a crack at programing?

    I see his point that Reading/Writing/'Rithmatic are all very important. The thing is, programing if it appeals to you, is a way to get better at all three of those things - because you are learning aspects of all three in an applied, not theoretical, way.

    Coding helps organize your thoughts in a way not dissimilar to how you might want to arrange thoughts for writing. Coding ABSOLUTLEY helps reading because my God do you use Google/Stack Overflow.

    Arithmetic is just kind under there sneakily embedding itself into all your code, especially if you do any GUI and animation stuff at all.

    So I say it makes for a great experiment to expose all kids to programming, and see what happens as a result. It certainly couldn't make the schools any worse than they are to introduce a subject that demands logical thinking to succeed.

    If it doesn't work well for the kid, good to find that out now and rule it out as a possible interest early. But it also may get some kinds started much earlier than they would otherwise.

    • You don't need to learn to code, but you do need to learn to think clearly and logically.
      Whether you do that by learning to program, or by going through lawschool, or some other method, is up to you: but I would rather do it by learning to program.
      The book in my sig makes some attempt to teach the clear, logical mindset.
      • Well by that argument making debate club a class might be better. You'd have to learn to think clearly AND how to interact with others that are disagreeing with you. Too much of our education system are focused on either expert-> novice (teacher knows student learns) or with, for example writing essays, student forms an argument and doesn't really get opposed just given a score. In that scenario you learn to guess the rules by which you are scored rather than how to better support your argument (or God f

        • The difference is that debate is "soft" while programming is "hard". I mean this in the sense that if you have an ok argument which is not perfect it can still be effective, but there is a lot less room for error in programming. Your code is accepted by the compiler (or interpreter) or it is not, and it works as intended or it does not.

          Running into problems which are complex, have multiple solutions, and there is a definite working or not outcome is important to teach logic and attention to detail. How e

        • You'd have to learn to think clearly AND how to interact with others that are disagreeing with you.

          The computer doesn't care how you interact. It can't go soft on you. It works or it doesn't.

          Soft human logic can be useful too, but that hard computer logic can be revelatory. And you get soft interaction logic a lot of other ways through life, hard computer logic not so much - or at least, through a dark filter as a user of computers. Programming gives you such a greater clarity of what logic demands.

  • by viperidaenz ( 2515578 ) on Sunday September 27, 2015 @05:58PM (#50609821)

    Sure, we don't teach kids how fuel injection works, but they'll be driving cars when they're old enough

    We also don't teach them how to drive in school. That's something done outside of school.

    Perhaps that was a bad analogy?

    • Just to break your attempt to break his analogy, some school districts (mine was one of them) do teach drivers education on an opt-in basis. In fact, when I took it, (summer of 2000) it was free to any student in the district who was old enough.
      • by TWX ( 665546 )
        Yep, it was offered here too. I took it privately though because I couldn't spare the instruction time during the school day for a whole semester when a single full weekend's practice with professional driving instructor was sufficient that I didn't even need to take a driving test with the motor vehicle department to qualify for my license.
      • I know some schools do.
        Most don't and it's not part of any standard curriculum.

        Most schools already teach some level of coding already.

  • by DMJC ( 682799 ) on Sunday September 27, 2015 @05:59PM (#50609823)
    Comp sci and maths should be combined. Algebra/trigonometry have applications in 3D graphics and it's a lot easier to understand the maths when you apply it.
    • Not just comp sci, science in general should be combined with math.

      Too many people think they are good at math, but only learned to memorize. Many have no ability at all to recognize where you would apply it, making it mostly useless to them in the real world.

    • by Kjella ( 173770 )

      Ye gods, no. At least not if you're trying to teach people at an early school level and if you're talking university level people know what they want to study.

      In math you'd start with basic arithmetic. In computers you'd start with breaking a process down into steps, functions, basic flow control, conditionals, boolean logic, state, scope... I'd leave the pure math out of it for as long as possible because it's a subject many pupils hate and to be honest it's not that essential not even to write business ap

  • I think it is a good idea to know how fuel injection works. I have a book on the K-Jetronic which I had in my Lotus and understood pretty well how it worked, which helped in tearing down the engine and doing a full overhaul and getting it back together and running again.
    In today's modern cars, understanding how the Fuel Injection System works IS coding.
    I don't think every body should have to be a star programmer, but exposure to programming will help a person to better understand how to use their computer
  • by Anonymous Coward on Sunday September 27, 2015 @06:03PM (#50609843)

    Programming is a trade. It is specific to a language and OS. I learned Integer Basic on Apple ][ Plus and that did me no good because when I got to college, the new thing was procedural programming. And then when I graduated, it became OOP. Or something - I cannot keep up with the buzzwords these days.

    My point is that programming shouldn't be taught at the K-12 level. They should learn the basics - like Natural sciences. And considering the pathetic knowledge of most Americans about science, we should be concentrating there instead of creating cheap coders for Facebook and other companies who want cheap labor.

    Education is about learning to learn and critical thinking not a trade like programming - and no, programming does NOT teach critical thinking or even logical thinking aside from the basic truth table. Philosophy is much more valuable than any computer science course in the grand scheme of things. And so is art and music. Programming is like auto mechanics - valuable, but not part of a well education.

    • Anybody going into a hard science, engineering etc should have this tool at their disposal.

      They don't however need to be taught programming in school. Just like turning wrenches, those that will take to it, will find their own way. Money spent on 'the rest' is wasted anyhow.

  • by DRJlaw ( 946416 ) on Sunday September 27, 2015 @06:05PM (#50609849)

    By teaching low-level coding, I worry that we are effectively teaching our children the art of automobile repair.

    And aside from success in careers, we have to ask the broader question: What kinds of people do we want children to grow up to be?"

    [Not that I'm actually that guy, but...]

    I want your children to grow up to be automobile mechanics so that repairs are dirt cheap and mechanics become entirely interchangable cogs.

    I want my children to grow up to be upper level executives at Firestone, Midas, Monroe, NAPA, etc.

    • by GuB-42 ( 2483988 )

      You won't be a good executive if you don't have any idea what your company is all about. You don't need to be as good as the mechanics but you should know enough to have a functioning bullshit meter.

  • You can't outsource a mechanic's job because he needs to be where the cars are.
    • You can't outsource a mechanic's job because he needs to be where the cars are.

      You can outsource most of it, and that's really already happened. Most neighborhood automotive rebuilding shops have disappeared. Machine shops have dwindled in number. So now, rebuilding tends to happen on a larger scale. More and more of what mechanics do is just swapping assemblies.

    • Have you tried shutting it off and starting it again?

    • "You can't outsource a mechanic's job because he needs to be where the cars are."

      But you can reduce them to minimal wage parts exchangers and button punchers and that's exactly what's happening.

  • My wife was a school attendance clerk.
    She could do the word docs, and the Excel, and she could use the predefined reports that the attendance software provided.

    Enter the new software, Infinite Campus. It put the control of the reports in the hands of the end user.... big mistake.

    Rather than learn to code the new reports themselves, which means every school might have different reports, she simple quit, along with many others, teachers and staff, who just did not want to deal with it.

    Had she been taught prog

  • The car analogy breaks down here. A computer is not like a car. It is something like a package of five engines, 5 sets of tires, six transmissions, several seats, a few truck beds, and some chassis elements. You can put together anything from a pick up truck to a bulldozer to a formula 1 race car with the provided kit. And coding is how you put together whatever you want. Most people put together only golf carts. But companies put together specialized vehicles and without knowing coding the managers would m
  • If you see coding as something you use to build GUIs, sure his fuel injection analogy might more or less apply. But you can also use coding to automate everyday tasks in almost any job, dramatically increasing your productivity. Depending on your working environment you can do this using bash, Python or even Excel macros. But you do need to unlock a certain way of thinking of what you are doing that is what these coding classes should aim for, in my opinion.

    • by plopez ( 54068 )

      I'm sure chefs use bash and Python everyday. Or perhaps chefs prefer "Puppet".

      (Now let's see who get the jokes :)

  • This is a false dichotomy. We can teach computer skills as well as math and science and reading and all the rest. I agree that all students don't need to become master hackers, but I think a bit more computer literacy, taught young, isn't a bad idea. And I'm sure they can find time to squeeze that in without disrupting the other subjects.

    • And I'm sure they can find time to squeeze that in without disrupting the other subjects.

      Why not disrupt some subjects? I mean, I loved Geography, and did really well in that class, but honestly, it felt like it was there to fill in a slot of time because the school didn't have anything else to teach.

  • Human knowledge is doubling at about every three years. That implies that we need to cram a lot more education into our students which is a difficult if not back breaking demand. Obviously nations like Japan traditionally are quite severe in the demands put upon children. Americans would see their system as child abuse. But against that we have a strong counter point. If you want great trumpet players you must train many thousands of trumpet players for several years for the great ones to rise
    • by plopez ( 54068 )

      "Human knowledge is doubling at about every three years"

      Knowledge or information. There is a difference.

      " If you want great trumpet players you must train many thousands of trumpet players for several years for the great ones to rise from the mundane players"

      How do we do that? Music is usually optional, trumpet playing even more so.

      "If we train 30 million young people to very high levels of programming we will see programming super stars emerge"

      Once again, how do we do that? What is the definition of "very

  • If someone tells you 'coding is the new literacy' because 'computers are everywhere today,' ask them how fuel injection works

    I'm a system programmer/administrator w/30 years experience *and* i know how fuel injection works - port and direct. Knowing at least a little about a lot of things has helped me in my life and career more than, I believe, would have knowing a lot about a few things. Along with that, and perhaps more important, is really, actually knowing your limits.

  • There's nothing wrong with basic exposure to computer science. But it should not come at the expense of fundamental skills such as reading, writing and mathematics

    But so many people struggle to see what the point is of the math they learn beyond arithmetic. But if they had a semester/year of programming before taking algebra, many of the struggles that they have with math between arithmetic and calculus will be gone. Teachers won't need to think of story problems to try and help students realize that math is used. The students will already know how to apply many mathematical principles because they've used them, or see how they can be used, in their programs.

  • Learning programming is worthwhile for the logical thinking skills it involves: I'm all for making it available. The problem is that putting such an emphasis on it, at the expense of other useful subjects, is going to backfire for those who can't learn it.

    It's not PC to say so, and there are lots of "experts" who insist it ain't so, but programming is a talent that not everyone has. Anyone who has been in the business knows that, unless they never interviewed new people and never worked with anyone who hadn

  • by WhodoVoodoo ( 319477 ) on Monday September 28, 2015 @03:24AM (#50611431)

    We don't need coders -- We need people who know how computers work.

    We need classes to teach people what the difference is between the OSes. We need people to know what https is. We need people who know why to VPN, what security is, and how to protect their info on the internet. We need anti-phishing anti-419 courses. Indeed, teaching C/S to the English teacher is wasted, but perhaps they knowing how the internet works is not lost?

  • ... but I know enough about scales that I can find the notes and I also know that they are historically grown - much like the computer keyboard. I also can sing and recite some classic songs from Schubert and Loewe. I learned all this in school, in regular music class. I also learned poetry and what a jambus rythm is. These are all small but valuable cornerstone of my education.

    Long story short: No one in his right mind expects everybody to be able to code a well-architected appserver or an asynchronous web

  • Just like music, language skills and art, programmers benefit from learning core computer science skills in early childhood.

    Sure, an adult can learn these things. Will they ever be as good? Will an adult who learns how to play violin in adulthood ever be as good as someone who learned as an adult? No.

    However, we live in a technology-driven society now, and unlike where the value of the occasional child violin prodigy could be questioned, there is no question that if even one child out of the thousand who ta

In order to dial out, it is necessary to broaden one's dimension.

Working...