Slashdot Mirror


Should Everybody Learn To Code?

theodp writes "In July, the Association for Computing Machinery announced it was partnering with Code.org, with ACM contributing funding and its Director of Public Policy to Code.org in a push to 'ensure that every K-12 student in the US has the opportunity to study computer science.' Interestingly, joining others questioning the conventional Presidential wisdom that everybody-must-get-code is the Communications of the ACM, which asks in its February issue, Should Everybody Learn to Code? By the way, Code.org is bringing its Hour of Code show to the UK in March. The new National Curriculum for England that is to be taught in all primary and secondary schools beginning in September includes a new emphasis on Computer Science curricula, said to have been sparked by a speech given by Google Chairman Eric Schmidt in 2011."

17 of 387 comments (clear)

  1. Should Everybody Learn To Code? by Anonymous Coward · · Score: 5, Insightful

    No.

    ensure that every K-12 student in the US has the opportunity to study computer science

    Yes.

  2. Reading comprehension first by buchner.johannes · · Score: 4, Insightful

    (1) Reading comprehension
    (2) Household economics
    then Coding.
    Everyone thinks that their profession is the most important in the world. But making everyone a programmer is not the most important task.

    --
    NB: The message above might reflect my opinion right now, but not necessarily tomorrow or next year.
  3. Re:clickbait by Joce640k · · Score: 4, Insightful

    Correct. We should start with learning to read/write before we move on to the advanced stuff.

    --
    No sig today...
  4. I get why it's so valuable, but forcing it.. by Anonymous Coward · · Score: 4, Interesting

    I'm torn on this issue as someone who works in a sales org but has learned how to code/is in a continual process of getting better at it.

    On the positive side of things, it's absolutely amazing how much time can be saved by extremely trivial code. For example, I had a client who needed to check something like 800 URL's for a given result on their page. They were chunking out ranges of the URLs to give to a team of people to do the task before we told them to put down the crack pipe and give us 10 minutes. A quick Python script looking for said element on each URL in the list dealt with that task nicely.

    On the negative side-- the one thing learning code has taught me is that I'll never be that good at it. I had to bash my brains out on a table for many, many weeks, just to understand basic concepts like lists and arrays, and am only NOW really grasping the concepts of classes/why I should care. My code is sloppy, works well only really when run by me, and my ability to read other code/make modifications is limited to say the least. I stuck with learning code ONLY because I truly enjoyed it, and even then, after about 6-7 years of working at it, remain pretty mediocre.

    In short, I'll never be a very good coder. I had to work INSANELY hard to get as good as I am, and I only did so because I genuinely love coding (even if I'll never be a savant with it). Trying to force people to go through that sounds like bad news bears, and I just can't see it working on any level. On the other hand, I get the appeal, because really everyone benefits. I get along great with our engineers because I can genuinely speak with them at a level that is more attuned to what they are thinking, and I can legitimately translate between the two orgs better than they could without me. It should be noted that we also have some rare engineers who can cross over to our world and love them for it.

    So in short, I get why people want this to happen. Forcing it however is a recipe for disaster.

  5. Re:clickbait by JaredOfEuropa · · Score: 5, Insightful

    The question brought to mind a nice quote by Oscar Wilde: "A gentleman need not know Latin, but he should at least have forgotten some". Coding is not for everyone. Neither are history, poetry, chemistry, or Latin for that matter. But it's important enough to be included in a broad curriculum. Show your children everything, and they'll choose the stuff that is of interest to them.

    --
    If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
  6. Re:clickbait by turbidostato · · Score: 4, Insightful

    "The question brought to mind a nice quote by Oscar Wilde: "A gentleman need not know Latin, but he should at least have forgotten some"."

    Absolutly right and, probably, in the same sense as Wilde tried to transmit.

    Should everybody learn to code? Absolutly not.

    Should everybody learn to think rationaly, not to be fooled by appearances, find the nut of a problem and then be able to decompose it into action items, set a path of action to solve them and finally check the intended result with the obtained one? I think so.

    And it happens tom that learn to code can be a fantastic tool, probably the best, to achieve that goal.

  7. flamewar of the decade by bzipitidoo · · Score: 5, Insightful

    And it's a lot more fun than MS vs Linux, Java vs .NET, Nvidia vs AMD, or even vi vs emacs. Sorry "gcc or llvm", your grudge match will have to settle for a 3 AM slot on a low budget, obscure science light cable TV channel.

    The big language demolition derby is still hot and furious, like the annual playoffs of old sports that still excite fans, if you can see past all the smoking wrecks like Modula and the entire team of modular programming cluttering the arena. If only the Perl 6 team could sort out their engine troubles and get their car into the arena, replace that sputtering Perl 5 vehicle and challenge that JavaScript/CSS/HTML/AJAX monstrousity that was cobbled together from a dozen different brands of automobiles, and that C++ bug that still works after being run over and rolled over and which just got a fresh set of wheels. OOP sponsors must be wondering which teams are still proud to bear their logos. And where's Haskell? Oh yes, loudly honking their horns from atop the safety of their functional programming pedestal while the LISP car circles round and round as if they expect a ramp to appear at any moment. Python? Dancing around the LAMP pole with PHP's go-kart. In one of the darker corners of the arena are the excruciatingly slow horse drawn wagons of the Fortran and Cobol teams, just trying to hold their ground. Follow the oil slick to find C. Java is struggling to move under the crushing weight of their massive armor, spare parts, and the huge gas tanks needed to feed their too thirsty engine. The kids would still love those Logo toy cars they used to hand out last century.

    If coding is so universal, what language should everyone learn? We're nowhere near sorting that out. Shouldn't we be able to settle and standardize on the essential elements of a programming language? As it is, it's like arguments over mathematical notation. Multiplication works the same whether the symbol used is x or * or a dot or nothing at all because it's the default operation. But it's not so easy to tell what is trivial and what is important in programming languages.

    --
    Intellectual Property is a monopolistic, selfish, and defective concept. It is "tyranny over the mind of man"
  8. Re:Should Everybody Learn Calculus? by Anonymous Coward · · Score: 4, Insightful

    And therein lies the... I don't want to say problem, but I cannot think of a better word.

    When you see "learn to be a plumber", you think the simple stuff. Others may think more complex stuff, like soldering copper pipes, determining the correct angle of decline for waste pipes, repacking a shutoff valve, and other things that, not being a plumber myself, I do not have the knowledge to even consider as something a plumber would do.

    Likewise, when people see "learn to code", some will think simple things like.. I don't know, how to grep a directory of text files. But others will think things like how to write an OS.

    Or for the car analogy, it's the difference between knowing basic maintenance and being a full-blown mechanic.

  9. Re:Should Everybody Learn Calculus? by Ardyvee · · Score: 5, Insightful

    Thus, we should say basic knowledge or advanced knowledge (basic maintenance vs full-blown mechanic). Everyone would probably benefit from basic knowledge on a number of things in today's world/civilization. Not everyone will benefit from advanced knowledge.

    --
    I don't care if I'm wrong. I only care about everyone obtaining something from the discussion.
  10. Re:clickbait by DoofusOfDeath · · Score: 4, Interesting

    I do have kids in school. The school places decently in national rankings, and I'm often alarmed by the quality of the kids' instruction. I think the GP is somewhat on the mark. For example, I've seen the kids taught to develop powerpoint presentations, where the emphasis was on the visual aspects of the presentation, rather than on the soundness or validity of their arguments. I've seen this even at the highschool level.

    I don't have a good sense as to whether it's better or worse than when I went to school, because I'm not viewing both from the same perspective. But I do see a big gap between the education my kids are getting, and the education I wish they have.

    Perhaps my expectations regarding kids' teachability are unrealistic (e.g., that they have longer attention spans and more interest than they really do). But I am sad that my employment situation hasn't allowed me the time to home-school them. I know they're capable of far more than is being asked of them.

  11. Re:clickbait by emj · · Score: 4, Insightful

    Though for me Logic 101 was a lot better for my thinking than learning to code.

  12. Re:clickbait by Oligonicella · · Score: 4, Interesting

    And it happens tom that learn to code can be a fantastic tool, probably the best, to achieve that goal.

    Some of the worst logic and most fragmented display of problem solving I have ever seen in my life was produced by people who knew how to code so I disagree, learning to code does nothing by itself.

  13. Re:Should Everybody Learn Calculus? by Anonymous Coward · · Score: 4, Funny

    C has pointers. They're pointy and dangerous. Someone might get hit by a bus error.

  14. Re:Should Everybody Learn Calculus? by ShanghaiBill · · Score: 5, Interesting

    All right, but let's expand that a bit. Should every engineer know calculus?

    I was required to take four semesters of calculus in college. During my 30 year career in engineering, I have never, not once, used anything beyond the first semester. When anything else comes up (which is rare), I just look it up in a table of integrals, use a tool like Mathematica, or solve it numerically. The hard part is never "doing the math" but rather figuring out how to construct the mathematical model of physical reality in the first place. Math class doesn't help much there. Knowing how to to integrate an equation doesn't do much good if it is the wrong equation.

    On the other had, programming has been absolutely critical to everything I have done. I have probably spent 20,000 hours doing that. Yet in college, I was just taught how to invoke the Fortran compiler and given a photocopy of the basic syntax. Everything else was self-taught.

    At least for me, there was a vast difference between what I was taught, and the skills that were actually useful.

  15. Re:Should Everybody Learn Calculus? by s.petry · · Score: 4, Insightful

    All right, but let's expand that a bit. Should every engineer know calculus?

    Yes, every Engineer should know Calculus. This is different from what's in the subject "Re:Should Everybody Learn Calculus?".

    Now what someone could ask without such an extreme bias is "Should every student in high school learn what calculus is and what you can use it for?" to which the answer would be "yes".

    Learning "Calculus" requires a lot of precursory work which people in general don't in High School. A person could even ask "Should everyone learn the basics of Algebra, Geometry, and Trig to which that answer would also be "yes".

    I'm not saying you introduced the bias, the AC did.

    --

    -The wise argue that there are few absolutes, the fool argues that there are no probabilities.

  16. Re:Should Everybody Learn Calculus? by ShanghaiBill · · Score: 4, Interesting

    "Should every student in high school learn what calculus is and what you can use it for?" to which the answer would be "yes".

    Well, I would say the answer is "no". But either way, that is an answer to the wrong question. The question is not "Should schools teach X?" but rather "What should we remove from the curriculum to make room for X?" There are a lot of things that could be taught, and saying "everything is important" is the same as saying that nothing is important. For instance, at my son's school the kids in grades 4-6 can type their assignments, instead of writing them out with pen or pencil. Several parents asked the school to provide a touch typing class so the kids learn to type correctly. The school said the schedule was full, so if typing was going in, then something had to go out. After some back and forth discussion, the school decided to dump cursive writing, and replace it with classes on touch typing. That seems like a big improvement to me, since most of these kids will never again in their life write a letter or paper with a pen, but will spend much of their lives in front of a kayboard.

  17. Re:Should Everybody Learn Calculus? by elashish14 · · Score: 4, Insightful

    Being able to do calculus helps you think critically and serves as a basis for study in many other important fields. There's a pattern of reasoning skills that you develop when you read a book, learn a method, apply it to solve a problem, verify your answer, and return to the problem to identify and correct errors.

    Being able to solve the problem without having to look it up gives you an intuition for solving complex problems without having to resort to such means. If I tell you the derivative of a value is x^{-1}, you shouldn't need to look up that it varies logarithmically. And being able to solve the problem yourself is what gives you the faith in the solution being correct. You could always look up the wrong value from the table, or provide the wrong input to a compute engine (side rant: Mathematica syntax drives me bonkers). You should always have multiple ways of understanding and verifying your solutions because relying solely on existing tools to perform the work for you without understanding where they come from turns this process into a black box which you have to rely on purely out of faith; I would argue that this can be dangerous, especially for mission critical applications. For basic calculus, linear algebra and differential equations, which every college engineer is expected to understand, I don't think this is an unreasonable requirement.

    Even while you yourself may have not been in a situation where you needed to understand these concepts, there are many fields in which being able to manipulate these equations is important: particle advection, comupter graphics and animation engines (manipulating ODEs and PDEs, linear algebra), or scientific and numerical computing and modeling (pretty much anything field of math). So I would say, if I were developing a comprehensive computer science program, I absolutely would have to include this in my curriculum, otherwise I would be shutting our students out of these fields. And if you're a mechanical, electrical, chemical, etc. engineer (or you're any other kind of engineer having to work with them), you need to understand these concepts to have faith in your results.

    The purpose of your college program was not to cater its curriculum directly to you, but to give all the students enrolled a broad set of skills that they could apply in situations that might arise. And understand that your program can only expose you to the skills that you should learn, but it's up to you to find a practical use for them.

    --
    I have left slashdot and am now on Soylent News. FUCK YOU DICE.