please don’t learn to code but give it a try

by zen master

This post is a response to Jeff Attwoods post Please don’t learn to code (15th may 2012). I agree with 90% of this post, but I wanted to present a slight twist:

I whole heartledly agree with Jeff when he say’s that its nonsensical that “every-one should learn to program”. Jeff offers an analogy about plumbing and he is correct in this regard. However I will need to re-visit this analogy later.

One thing that I did not agree with Jeff was the following:

But I can also recognize plumbing problems when I see them without any particular training in the area

I think that kind of thinking is dangerous, we may think we know what the problem is. But as untrained plumbers that assumption could be completely wrong. This for me is where the analogy in this case breaks down. Solving plumbing issues does require an understanding of the underlying hydro mechanics. As programmers we would not expect our clients to debug our software for us (unless they happen to be programmers). Then why would we assume the reverse is true?

I think although I agree with the overall sentiment of Jeff, the opposite action should be taken. I think people should:

“please don’t learn to code, but at least give it a try”

Why do I think that people should give it a try, is that not the opposite of what Jeff is saying?

Its a different approach, in my mind that does have a whole set of advantages:

* Unless some-one experiences something, you may not know if you truly like it (bar the obvious of course).

* By giving it a try, those that actually like will naturally pursue it further. The others will just not continue doing it. Its a natural filter.

* It gives the opportunity to those, that may not have otherwise had the chance.

* It will raise awareness of just how hard programming is, we can tell non-programmers that programming is hard but they will never really grasp it. Until you “walk in another man’s shoes” or so the saying goes.

Summary

Overall I agree with Jeff’s perspective, its almost common sense. However to re-visit the old plumbing analogy:

Although its nonsensical for everyone to learn plumbing, it would never hurt anyone to give it a try. Even if you go away learning how to replace a washer. At least that will be one less leaky tap in the world.

An electrician came to a house and found something that caused him to exclaim “That you have done over there is a fire hazard! You’re crazy!”. The house’s owner just went: “What? No, it’s perfectly OK. I’ve done it that way for years, it’s safe.”

Is the fable plausible? I think it is. Should everyone try to be their own electricians? Obviously not. Should people learn a little about an electrician’s trade, so they appreciate what they should and should not do? I think so.

Compared to electricians and plumbers, people have a much hazier understanding of what coders do. Or worse, they think they know, but don’t, causing them to make some very poor decisions.

This is the reason everyone should learn to code. Not because they should have it as their job, maybe not even to use it in their job at all (though I won’t rule out the possibilty that a mayor can be more productive with his spreadsheets knowing a little coding). But because they should have a basic idea of what’s possible and not possible, what they can do themselves and what they should call in help for.

Alexander

I think you took the plumbing analogy wrong. The point is not that Jeff Atwood or I or you can correctly diagnose a plumbing issue, the point is that I can correctly identify when there is a plumbing issue and call the appropriate professional to rectify the issue.

admin

I’d almost agree with you, however Jeff precisely said: “But I can also recognize plumbing problems when I see them without any particular training in the area”. Is that open to interpretation? possibly but that’s another question.

Eric

Alright so I think you and Jeff differ on a critical point. You think that people should give it a try. I agree with you in this. I think that people should give many things a try. Plumbing, Math, Biology, Boating, Football, Cooking,…

This creates a people who have diverse and different skill-sets.

I think that the idea that “everyone should be a programmer” is a bad idea. It is inherently flawed in the fact that no, not everyone can be a programmer.

I also think your analogy is wrong in the aspect of scope. EVERYONE should learn to read and write (this wasn’t always true but is today). But does that make everyone an author? NO!!! Nor does it make everyone, myself included, capable of giving their opinions on various topics.

Well then why teach everyone to read and write. Because there are many aspects as to how English affects our culture. The law is written in and communicated using English. Cirriculums to teach Math and the sciences are taught in English.

Most of all our laws pertaining to the use of the English language (copyrights) are written and followed based on the ability to read, comprehend and transcribe these laws.

So yes, everyone should learn to program. Why, not because we want an influx of shitty developers who think GOTO is the greatest function on the planet.

But to prevent people from seeing the headline Google and Oracle fighting over JAVA API copyright and thinking… “Java… Coffee… Starbucks… Seattle… Oh man I wonder if it’s going to rain tonight…..”

I don’t even want to get into what I think would happen to SOPA if MORE people understood the underlying principals behind coding.

Mostly I think the plumbing analogy dumbs down the issue quite a bit. There are technicians in the world of IT but there aren’t ONLY technicians. There is soo much more to it than that.

Greg

I think you misunderstood his point about recognizing plumbing problems. I interpreted him as saying, “Hey, there’s hot water coming out of the cold faucet. That’s a plumbing problem. I should call a plumber.” Not, “Hey, there’s hot water coming out of the cold faucet, I can fix that even though I know nothing about plumbing.”

admin

As already discussed with Alexander, interpretation wise it is a different question.