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.

12 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 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
  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 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
    2. 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!
    3. 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.
  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

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