If tomorrow you want to learn to cook, how would you feel if a master chef told you "No, don't. You'll never be as good as me. If you're hungry, come to my restaurant instead".
I think there's nothing wrong with learning a new skill, whoever you are, whatever you do.
Learning new skills is what makes us human.
Apart from at least a fundamental ability to use a stove, it is naturally not that crucial of an ability. The argument of the blog post is that it is the same with programming, i.e. It is not a necessity to succeed in life to know how to code.
I don't think the point of the post is to discourage anybody from learning to code. Rather it is a counterpoint to the recently heavily promoted idea that programming is somehow a necessary life skill.
Yes. Knowing cooking is paramount to feeding yourself and your family cheap, healthy meals.
I might be able to learn a lot of math in school, reading/writing, research (in university), critical thinking (throughout life). But being able to care for my own food, to know, what not to buy (or what to buy) and so on, helped me stay sane and in good shape.
Cooking is of course a good skill to have. So is plumbing, car repair and a lot of other things. But this is entirely besides the point.
The point was this: Is it a necessity for children to be taught [cooking/car repair/plumbing] on the same level as math, reading and writing: From 1st to final grade in school, 10 hours every week? Of course not.
Atwood argues that it is the same with programming. No matter how much we and he love programming, it is not comparable to reading, writing, math, communication and similar.
And in school you're not learning just "reading, writing, math, communication and similar".
Other disciplines learned in school are biology and its branches, like botany or anatomy of the human body, chemistry, physics, history, foreign languages like French and Latin, psychology, philosophy and so on. Not all of these disciplines are taught 10 hours per week.
Also, reading and writing are only taught in the first years. After that they teach you grammar and literary analysis, but considering how illiterate today's teenagers are, many schools are clearly doing a poor job, so to save some taxpayer's money they should just make those optional.
And seriously, I could think of a couple of disciplines I learned in school that would be less important than cooking or programming.
The parts in my comments about cooking, 10 hours pr week, and the short list of subjects, are all merely examples. Replace it with car repair, 2 hours a week and your informative list of school subjects, and the argument is untouched. It should be obvious that these details are entirely irrelevant.
The argument was that a very high proficiency in reading, writing and maths has more value for the average student, than a very high proficiency in a niche subject. A nice subject being FOR EXAMPLE, cooking, car repair or programming.
Sure, our students might benefit from these subjects. But I doubt anyone would seriously suggest giving the same level of educational focus to those areas, rather than to basic life skills such as reading and writing.
And that is Atwood's point: Programming, like car repair, is an esoteric subject, and as such not equal in worth compared to more basic skills such as reading, writing and communication. By all means, subjects such as cooking, car repair and programming is good to know. But for the average student, a high level in reading will be considerably more important than a high proficiency in car repair.
This is the point (and that's actually Atwood's point, I haven't supplied mine), which I was merely explaining to the OP, as the OP interpreted the blog post as being against learning programming at all.
A couple of people countered by argumenting against irrelevant details, such as the use of cooking and car repairs as examples of esoteric subjects. They even started arguing the value of the specific examples compared to the basic skills, which of course is entirely irrelevant to the point I was making.
On a personal note, I was not very good at math in high school and college. I learned Perl for my first job and developed better problem solving skills. I've noticed that the concepts that confused me in my math classes have become more clear.
I think people who want to learn to program are learning already. The right analogy would be teaching everyone cooking in elementary school as a required subject, together with reading, writing and mathematics.
Would that be a bad thing? Many-many-many moons, sorry - summers, ago they did that. Along with maths/etc pupils were taught practical stuff, like woodwork, cookery, etc. Not that the goal was to make them all carpenters or cooks, but just to give an idea what it is like and teach to look after themselves.
So I think that coding is something along the woodwork lines. New generations should get at least an idea of what it's like, regardless whether they're going to use it professionally or not.
Jeff's article is trying to point out that while understanding code isn't a bad thing, coding isn't the most important part of writing software. Those who think it is end up writing code without purpose, something I consider as dangerous in the long term as shoddy bridges.
Seriously, cooking as an analogy highlights a difference between private recreational practice and public for-pay professional practice. Building bridges, unless you live in a place where everyone has a backyard with a river in it, not so much.
If we could all build bridges in the our own yard, I think we'd see some of new fantastic bridges which we could re-use. With coding, we can.
I'm a lousy cook - but I can cook food if I follow instructions that have accurate measurements.
That doesn't mean I shouldn't learn to cook.
For most people, they are just going to follow a recipe and you are right, that is all they need. But to be on a professional level and to be able to reproduce those flavors it takes a lot more than that. Check out the book "Professional Baking", it shows a lot of the complex nature that goes into being a pro.