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: