Slashdot Mirror


Should We Really Try To Teach Everyone To Code?

theodp writes: Gottfried Sehringer asks Should We Really Try to Teach Everyone to Code? He writes, "While everyone today needs to be an app developer, is learning to code really the answer? Henry Ford said that, 'If I had asked people what they wanted, they would have said faster horses.' I view everyone learning to code as app development's version of a faster horse. What we all really want — and need — is a car. The industry is falling back on code because for most people, it's the only thing they know. If you want to build an application, you have to code it. And if you want to build more apps, then you have to teach more people how to code, right? Instead, shouldn't we be asking whether coding is really the best way to build apps in the first place? Sure, code will always have a place in the world, but is it the language for the masses? Is it what we should be teaching everyone, including our kids?" President Obama thinks so, telling Re/code at Friday's Cyber Security Summit that 'everybody's got to learn to code early' (video). But until domestic girls (including his daughters) and underrepresented groups get with the program(ming), the President explained he's pushing tech immigration reform hard and using executive action to help address tech's "urgent need" for global talent.

35 of 291 comments (clear)

  1. skynet by itzly · · Score: 5, Funny

    No, we need to finish Skynet as soon as we can, and then it can do all the coding for us.

    1. Re:skynet by garyisabusyguy · · Score: 5, Insightful

      No matter how good it could code, you could give skynet bad requirements and it would still give you crap

      We need to teach people how to use logic, perform analysis and give clear descriptions of what they want to happen

      Far too often I have seen 'customers' give an incomplete description, fail to understand what they want to happen and then spew at the developers that they failed

      Just teaching them to work with others and stop expecting magic unicorns to appear when they described a turd would remove half of the barriers to delivery

      --
      Wherever You Go, There You Are
    2. Re:skynet by itzly · · Score: 5, Insightful

      We need to teach people how to use logic, perform analysis and give clear descriptions of what they want to happen

      A little knowledge is a dangerous thing. I deal with people describing what they want, and in my experience, I'd much rather deal with somebody who can tell in his own terms what problems he's facing, and wants to have fixed. The worst are people who know a little bit about coding, and instead of describing the problem, they start describing a "solution" they came up with.

    3. Re:skynet by FatdogHaiku · · Score: 2

      We need to teach people how to use logic, perform analysis and give clear descriptions of what they want to happen

      That would be every politician's nightmare... you can't have people thinking and reasoning, they are way too hard to control if they can figure anything out on their own.
      What makes the job easy is to make everything an emotional issue requiring visceral over reaction.

      --
      You have the right to remain sentient. If you give up the right to remain sentient, you will be elected to public office
    4. Re: skynet by garyisabusyguy · · Score: 5, Informative

      Yup, that is how it is supposed to work. In the best case you work through the roles, use cases, develop screen mockups and a data design (usually don't show that to customer, but it should support the screens and use cases)

      However, on more than one occasion I have run into a scenario where the customer will have a single requirement (this would be for an insurance interface)
      1. Create insurance interface that meets requirements set by insurco

      Then they will include an attachment that demonstrates the line format for the output

      The following conversation goes like...

      Dev: Let's work on the process flow for adding insurance, dropping insurance, changing insurance tier (add/lose dependent etc)

      HR Customer: It's in the attachment

      Dev: Can I contact a rep at insurco to find out how they handle these cases?

      HR Customer: No, I am the only contact to insurco, everything must go through me

      Dev: Okay, but I need to be ready to handle the business cases, so will you please walk me through it?

      HR Customer: QA already signed off on my requirement document, so you have to accept it

      This continues ad absurdum through an entire dev-test cycle with full customer acceptance testing and the day that it goes into production...

      HR Customer: It's broke, you failed because it does not do what we need it to

      Eventually we find out that the HR data entry people use multiple different ways to drop coverage, many of which the HR rep was not aware of.

      Long story short, I end up learning HR's job better than they do in order to deliver anything, with them complaining about my delivery and demanding that I be removed for insubordination...

      This happened years ago in a waterfall based dev shop. I have worked earnestly since then to apply Agile, prototypes, fast turnaround for approval and (usually) taking the time to learn the customer's job because they do not know it themselves

      Simply getting the customer to accept logic, admit they do not know everything and get out of my way would help

      --
      Wherever You Go, There You Are
    5. Re: skynet by Bengie · · Score: 2

      In college, they thought me the customer is never to be trusted. It is your job to figure out what they need, not what they want. Obviously someone failed to analyze the needs. Easier said than done, right?

    6. Re: skynet by gbjbaanb · · Score: 3, Insightful

      In such cases you take the requirements document and fulfill it exactly. Then , when the customer says "but its broke and doesn't do.." you pull out the requirements and say "it does everything you asked us to do, anything further is additional development and will be billed accordingly".

      Why else do you think government IT contracts cost so much? Why else do you think Agile was invented?

      The core problem is that the customer doesn't know how to achieve successful delivery, they need to be educated in fundamental agile processes, of iterative development to evolving requirements (and by evolve, I mean "as the customer figures out what they want".

      I used to have similar problems with a customer, but fortunately I had a contact who knew the business. When I received the stupid requirements, I'd phone him and ask what they really meant. Then I'd develop what he said and deliver it to the customer who was always happy, not matter how far from the written spec it was (it helped that my contact was a senior guy at the customer or it wouldn't have worked)

  2. No by Anonymous Coward · · Score: 5, Insightful

    Most people aren't fit to code. Don't force them to do something they won't enjoy, are going to end up hating, and is most likely going to be very useless in their lives. Well, okay, many think that about maths too, but then I can see that the fundamentals of maths are needed everywhere.

    1. Re:No by twistedcubic · · Score: 2

      I agree. Writing "10 PRINT "Hello"; 20 GOTO 10" is not rocket science. Nor is doing something marginally more advanced. The "problem" most people have with programming is the same with math: "why would I even want to do that?"

    2. Re:No by garyisabusyguy · · Score: 2, Insightful

      Far too many people have built-in barriers to performing these steps

      Belief in magical entities that change the world at will, or belief in absolute rules have to be the biggest barriers

      --
      Wherever You Go, There You Are
    3. Re: No by garyisabusyguy · · Score: 4, Insightful

      Sure, right up to the point where the 'customer' feels like you are challenging their status by asking questions that they cannot answer (and should probably know to perform their job)

      --
      Wherever You Go, There You Are
    4. Re: No by Sperbels · · Score: 2

      Clearly you have not taught much programming. Yes you can teach most people to write simple programs, but there's a big difference between that and writing professional or even usable code.

    5. Re:No by ColdWetDog · · Score: 4, Insightful

      You may be more correct than you think - yes, we've allowed everyone to get a driver's license.

      No, civilization is not the better for it.

      Be careful what you ask for, you just might get it.

      --
      Faster! Faster! Faster would be better!
    6. Re:No by fyngyrz · · Score: 2

      as long as students pursue some field of human endeavor, they will benefit.

      Fine. But seeing as they don't all do that, a simple coding course in high school -- perhaps replacing the tribal me-better-than-you training of competitive sports -- could serve to at least somewhat uplift those who aren't otherwise particularly motivated. Actual learning of logic and math would likely do the same (and no, I'm not talking about what passes for sufficient math to graduate from high schools these days.)

      Look at all the cognitive failure modes we see now, some old, some new: anti-vaxxers, many different kinds of superstition, failure to comprehend the consequences of withholding health care from large segments of the population, rampant jingoism, shaming, all manner of intrusive moralizing...

      I'm not saying a basic ability to do coding, handle logic or work math would actually outright solve these things, but good grief, they wouldn't hurt and they might keep some people from stumbling off into all these dark, dead mental corners. Move them away from being dull followers of charismatic liars and at least somewhat towards a mindset that encourages a fact-based outlook.

      I look at the twisted society that the government and the corporations have created and my foremost thought is that US citizenry is so, so screwed. Back in the 60's and the 70's, I and my peers fought our battles for the right to vote if you were forced to serve; for women's rights and equality for non-whites, even such things as working against the (then) almost universal careless littering that went on... but I don't see deep social problems of today being addressed by the current generations. It appears that self-directed angst is the primary concern of most of the young people I meet; and when they're not concerned with themselves, they're hip-deep in some form of entertainment. And the downhill slide continues and accelerates.

      The lawmakers are nearly 100% in thrall to the rich and powerful; they continuously implement schemes of immense disadvantage to the citizens; the "where are your papers" we used to mock the Nazis and the Soviets for have become our daily experiences; heavily armed stormtroopers break into our homes and pre-emptively shoot our pets, warrants are passe, torture is seriously considered a "good thing" by large segments of the population...

      Anything, and I do mean anything, that would help these people to think and in any amount reduce their proclivity to swallow the agitprop whole while begging for another, sir, would be of some kind of service to us all.

      So yes, teach coding. Or any other structured, reality-based task that requires real thought and responds poorly to just making crap up.

      --
      I've fallen off your lawn, and I can't get up.
    7. Re:No by lgw · · Score: 4, Insightful

      Far too many people have built-in barriers to performing these steps

      Belief in magical entities that change the world at will, or belief in absolute rules have to be the biggest barriers.

      Coding is world built entirely from absolute rules and that's why people can't do it. They can't actually say what they mean, they just grunt a bit and expect you to have "common sense". The compiler has absolute rules, however.

      And if you don't believe in magical entities that change the world at will, you haven't debugged a sufficiently complex system. "Follow these exact steps and the problem will reproduce about 1 in 5 times, more or less."

      --
      Socialism: a lie told by totalitarians and believed by fools.
    8. Re:No by lgw · · Score: 2

      I look at the twisted society that the government and the corporations have created

      Back in the 60's and the 70's, I and my peers fought our battles

      Back in they day, youth staged protests that actively turned people against the causes they claimed to support. No one cared, or course, because no one cared about results, only intentions, and getting laid and or high, which the protests were the best social scene for. That hasn't changed at all.

      The lawmakers are nearly 100% in thrall to the rich and powerful;

      Just like though all of history, good times and bad. The good times come when those lawmakers have limited power, the bad when they have near-absolute power. In no case do the lawmakers hurt those who are really in charge.

      Anything, and I do mean anything, that would help these people to think and in any amount reduce their proclivity to swallow the agitprop whole while begging for another, sir, would be of some kind of service to us all.

      Finally, something we agree on. Funny how we came to opposite conclusions on everything else. All that logic and reason becoming common will change is that the propaganda won't insult our intelligence so much, but I'll take any sort of improvement.

      --
      Socialism: a lie told by totalitarians and believed by fools.
    9. Re: No by ceoyoyo · · Score: 3, Interesting

      I work with physicians. They quite often have to look things up in databases - patient records, imaging, test results, etc. Simple SQL queries would let them find exactly what they're looking for. Since they can't do that, they have to use a basic search interface somebody made (which they paid an arm and a leg for) and then look through individual records. Even more painful is watching them collect charts for some purpose. A simple script with a little SQL would do nicely, but instead the job is so painful they usually hire someone to sift through everything. That someone invariably can't write the simple script either, so does the whole thing by hand.

      Similarly, our research coordinator needs things like lists of patients with missing data. Compiling that is a two line Python program (I did it for her once) or a day of clicking. Guess which she has to do?

      I have a friend who's a due diligence type accountant. Her job is to sift through accounting records looking for stuff. There are some programs for doing that kind of thing, but only if the data happens to be in the right format. So she spends a lot of time wading through things by hand. The ability to write simple scripts wouldn't make the job automatic, but it would help a lot in searching and organizing.

      I know a secretary who is supposed to keep the boss's CV in order. She has to take new publications and enter them on a couple of web pages and End Note. The citation records themselves are online and easily accessible. If she could write some basic code it would be pretty much automatic, but instead she just types them all by hand, repeatedly.

      A friend of mine wants to make a webpage with some photos. She doesn't want anything complicated, and most of it can be done with existing open source stuff, but she wants a couple of custom tweaks. She can't do that. Actually, she can't even do the setup for the site, because she can't follow a bit of basic HTML or tweak some javascript.

      There's an immense amount of busywork that gets done because people can't write a bit of special purpose code for themselves. Not to mention the problems caused by people who don't possess the logic or problem solving skills that they'd pick up in an intro coding class.

  3. Yes we should but... by mykepredko · · Score: 5, Interesting

    It needs not to be with the expectation that everybody will become an app developer.

    Learning to code provides a person with an opportunity to develop a better understanding of
    1. How a sequence of operations is constructed
    2. How logic is part of the decision making process
    3. How to approach problems in an organized fashion
    4. How to communicate, describe and document ideas
    5. How to work with others in a collaborative environment

    My business (https://www/mimetics.ca) uses robots to teach programming, but it's important to note that not everyone will become a programmer (or develop applications for robots) but the skills learned by creating simple applications are applicable in life and will help then in a multitude of other pursuits.

    Saying that people should learn to code because at some point they will probably will have to program an app is counter-productive and will probably create some very negative perceptions about it. Teaching people (kids) programming as a way to develop the soft skills above and give them a taste of it so they can decide whether or not to pursue it as a career is much more effective and positive.

    myke

    1. Re:Yes we should but... by JaredOfEuropa · · Score: 2

      Coding is actually a good way to teach some of those skills. Especially a skill not mentioned in that list: troubleshooting. The good troubleshooters and problem solvers in my professional circle, whether they are managers, business analysts, project managers, consultants, or IT support staff, are almost always people who have done a bit of coding at some point in their life. Coding appears to be a great way to impart those skills even on people who will not be coding professionally, ever.

      The real question is: can we fit a meaningful coding class into the high school curriculum? The coding classes I've seen so far have been given as part of math class, or consisted of a lame 3rd year high school course that lasted all of one semester. I'd say a real coding class is an hour or two a week over at least one year, preferably two. And why not? Hell, I was forced to take German and French for 2 years before I was allowed to drop it, so why not coding? (By the way: language class is useful as are coding classes, but for different reasons. I did get some benefit from them).

      --
      If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
  4. We need to teach people to think, and to use tools by mtrachtenberg · · Score: 5, Informative

    Ah, the computer, that magnificent "universal machine."

    Have you ever watched as someone tries to take information from, say, Microsoft Word, and use it to do mailing labels? Especially if the information has been formatted to be "pretty." Let me tell you, it ain't pretty.

    We don't need for people to learn to "code." We also don't need for people to learn how to use particular proprietary products. We need for people to learn things like basic math, basic logic, and understand how they can use computers, with a teensy bit of effort and understanding, to accomplish their unique and specific tasks. We also need to teach people that they should not feel helpless when confronted with a computer program that doesn't do precisely what they want.

    I feel a bit Mao-ish on this subject, and truly think the best solution would be to issue a voltage surge to all existing infrastructure, and not allow anyone to buy any replacement computers until they demonstrate an understanding of their jobs (not the computers' jobs, the individual workers' jobs).

  5. of course. by nimbius · · Score: 4, Insightful

    Teaching everyone to code is like teaching everyone to become prostitutes. for some it wont be interesting enough to continue as a profession, for others they wont be proficient enough. However, if you're a wealthy man looking for a prostitute who doesnt entirely understand sex, its the deal of a lifetime and pennies on the dollar.

    --
    Good people go to bed earlier.
    1. Re:of course. by ColdWetDog · · Score: 2

      My god. You've manage to Rule 34 this discussion.

      I am totally impressed.

      --
      Faster! Faster! Faster would be better!
  6. Ford never said it by Anonymous Coward · · Score: 2, Insightful

    http://quoteinvestigator.com/2011/07/28/ford-faster-horse/

    It doesn't invalidate the point, but it's important to be accurate.

  7. Re:We need to teach people to think, and to use to by garyisabusyguy · · Score: 2

    Unfortunately, many 'successful' business-people are only adept at rhetoric

    --
    Wherever You Go, There You Are
  8. Ford knew better than this. by westlake · · Score: 2

    Henry Ford said that, 'If I had asked people what they wanted, they would have said faster horses.'

    Ford was raised on a farm.

    He knew perfectly well that what people wanted was a tireless "iron horse" with coach or wagon that demanded minimal care and expense and could be out on the road in an instant.

    The Ford Model A could cruise safely and comfortably at 25-45 mph on a hard surfaced road, but these were almost non-existent outside the larger cities in the early days.

  9. same old shit by sribe · · Score: 2

    Instead, shouldn't we be asking whether coding is really the best way to build apps in the first place?

    Management has been trying to find a different way since at least the 1970s, CASE tools, 4GLs, yadda yadda yadda. Yet, somehow, in the end if you want an app working, you have to specify it down to the level of a programming language.

  10. Not how to code by Livius · · Score: 2

    It does not make sense to teach everyone *how* to code any more than it makes sense to teach everyone law or brain surgery or aircraft repair.

    However, everyone does need some degree of understanding *what* coders do, for the simple reason that coding is something that has a large impact on society and the economy. Same as people (particularly those choosing careers or education) need to know what law or surgery or aircraft maintenance are, and maybe some rudimentary knowledge of the field so they have some minimal frame of reference in common with the experts.

  11. Why does everyone need to be an app developer? by __aaltlg1547 · · Score: 2

    "While everyone today needs to be an app developer, is learning to code really the answer?"

    Who's going to make stuff? Are people planning to stop eating and living in houses at some point in the future?

  12. On a related note: by ruir · · Score: 4, Insightful

    Should we teach everyone to: - work in an ER room? - be a mechanic? - operate sewing machines? - be a pilot? - be a prostitute? The possibilities are endless, I tell you.

    1. Re:On a related note: by Rinikusu · · Score: 2

      I would say everyone should have to work Retail and Food Service for at least 6 months-1 year during their teen years.

      --
      If you were me, you'd be good lookin'. - six string samurai
  13. Re:We need to teach people to think, and to use to by jader3rd · · Score: 2

    What about surgeons? Should they be forced to learn to code? What about basketball players? Landscapers? Chefs[1]? There is a huge set of people for whom coding is irrelevant. Learn critical thinking? Yes. Coding? Probably a waste of time.

    Were these people taught Art or Music in their public education? Were they taught history, or calculus? Were they forced to learn physics and geography? While they may not use all of the lessons taught to them as part of their career (the reason why "Are you Smarter then a 5th Grader" is actually a feasible show), it's possible that it will help them become well rounded and productive members of society.

  14. Re:But what is code by lgw · · Score: 2

    If the language is Turing complete, someone will port Quake to it, eventually. Still waiting for Quake ported to C++ template expansion, some I/O challenges there.

    --
    Socialism: a lie told by totalitarians and believed by fools.
  15. Re:This will never work by Shados · · Score: 3, Insightful

    Not everyone will become a software engineer. I learnt basic statistics in junior high and I never became a statistician. Still, it made it easier to understand charts, statistics, and help not getting duped by everything I read.

    IMO everyone should learn basics... computers are in EVERYTHING we do. I was thought basics of electronics, woodworking, biology, math, foreign languages... a lot of things that are useful in every day life, but are much less ubiquitous. Why not basics of programming?

    Then some will run away with it and become software engineering super stars. The rest won't, but will at least be able to understand enough to be able to communicate with the engineering department at their company, or maybe write little scripts on their own to automate stuff they do often.

    Why not? Its -everywhere-. They should know at least enough to be able to ask questions about it.

  16. Should we teach everyone to write? by Vingborg · · Score: 2

    Should we teach everyone to write? I mean, only a few of us ever become poets. Or authors. Or even journalists. Why? To write crappy comments on Slashdot, that's why.

    --
    For the sufficiently clueless, even trivial applications of common sense are indistinguishable from wisdom
  17. Mandatory computer literacy class in high school by peter303 · · Score: 2

    Where an introduction to coding would be a part of it. The bulk of the course would be about the major components of computing and most important applications like the Office suite.