Slashdot Mirror


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

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?"

16 of 300 comments (clear)

  1. Catch the rounded ones early by Bruce66423 · · Score: 5, Interesting

    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...

    1. Re: Catch the rounded ones early by Anonymous Coward · · Score: 3, Insightful

      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 classes have mostly gone away. Being able to repair a dry wall, fix a broken cabinet or replace the compressor on an old fridge are much more important in your day to day life than being able to code a text editing tool. Let's face it, the level at which these classes will be taught, kids will be lucky if they can even do that.

      K-12 schools should be focusing on the fundamentals. You specialize at a later state in life. Math, science, reading, writing, etc are much more important that coding. These curriculums should be reinforced, instead of taking focus away from them for the newest fad.

    2. Re:Catch the rounded ones early by gmack · · Score: 3, Interesting

      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.

    3. Re:Catch the rounded ones early by AmiMoJo · · Score: 4, Insightful

      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.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    4. Re:Catch the rounded ones early by gbjbaanb · · Score: 4, Interesting

      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.

    5. Re:Catch the rounded ones early by theskipper · · Score: 3, Insightful

      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.

    6. Re:Catch the rounded ones early by mrchaotica · · Score: 4, Insightful

      What's with all this bullshit "I can't take time off" astroturfing? It's blatantly a lie -- the idea that someone is somehow in such high demand that he can't take a vacation yet doesn't have enough power to tell his employer to fuck off and go anyway violates basic logic -- but I'm trying to figure out the angle. What's the motivation for posting it? It's as if the poster is trying to create the public perception of a shortage in order to justify H1Bs or something, but it's too stupid to be persuasive.

      At any rate, I'm a software engineer and have always worked a normal 40 hours/week and used all my vacation. If you can't do the same, that's your problem!

      --

      "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

  2. Not everyone becomes scientists... but by tomxor · · Score: 5, Insightful

    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.

    1. Re:Not everyone becomes scientists... but by Rei · · Score: 4, Interesting

      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.

      --
      Crowd: What do we want? Fry: Fry's dog! Crowd: When do we want it? Fry: Fry's dog!
  3. school sport by jblues · · Score: 5, Insightful

    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.

    --
    If it acquires resources on instantiation like a duck, then its a shared_ptr<Duck>
    1. Re:school sport by TWX · · Score: 3, Informative

      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 reasonably complex shell scripts on a regular basis, but that evolved out of my use of MS-DOS and batch files more than it did out of the C and C++ that I took in high school and college, and the scripts that I write are for myself and maybe a few others on my team, not for mass-use by the organization, and the organization actually frowns upon locally-designed things like that since there's no support if I leave.

      My point is that it's great for kids to have, "Computing Essentials," that involve more than how to load a web browser or how to format a document in Microsoft Word, but there is a point where the student is going to choose some subjects over others, and proficient professional computer use and proficient administration are not the same as proficient programming.

      --
      Do not look into laser with remaining eye.
  4. I disagree, all vectors of learning are good by SuperKendall · · Score: 3, Interesting

    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.

    --
    "There is more worth loving than we have strength to love." - Brian Jay Stanley
  5. Combine comp sci and maths by DMJC · · Score: 3, Insightful

    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.

  6. Programming is a trade by Anonymous Coward · · Score: 4, Informative

    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.

  7. Precisely as intended by DRJlaw · · Score: 5, Insightful

    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.

  8. We don't need CS -- We need Tech Literacy by WhodoVoodoo · · Score: 5, Interesting

    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?