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.
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.
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.
http://quoteinvestigator.com/2011/07/28/ford-faster-horse/
It doesn't invalidate the point, but it's important to be accurate.
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
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.
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.
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.
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)