Please learn to code. Also, learn to change your oil and maybe your spark plugs; learn to cook; learn to replace buttons on your shirts; learn to fix your leaky sink and plunge your toilet; learn to plant flowers and tomatoes; milk a cow; shovel some dirt; experience driving a tractor, both the kind in a field and the kind that pull tons of cargo down the expressway ...
Get out of your comfort zone, live for a minute in someone else's shoes and maybe, just maybe, you'll learn to respect the work that other people do and be willing to pay them for it - they deserve to be paid for their Work. Yes, sitting behind a desk all day bringing brainpower to bear on saving the company money is Work. Driving 11 hours a day is Work. Grilling that steak and walking it to your table is Work. It's all Work because it takes us away from our families, because it's so well regulated that it adds stress, because we'd rather be doing other things but the bills have to be paid (i.e. we have to pay other people for the Work they do keeping our lights on, our Internet connected and our water reasonably clean.)
So, please, learn to program. Then, when you need software built, you'll know why you hired me for "so much" and how much trouble I'm saving you.
The problem is that the list of things you should learn, as you imply, is endless. There's a reasonable case for learning literally thousands of skills to allow you to improve your life, understand what is possible or why something is non-trivial and there simply isn't the time to learn all of these things.
As people who have embraced technology we all see the benefits of it and it's foremost in our minds as to how useful it would be if others did the same but how many of us have really weighed up the benefits of someone spending 20 hours learning basic coding against 20 hours learning to cook, or plumb, or speak a foreign language, or understand physiology, or how to listen, or a safe driving course, or plastering, or gardening, or understanding statistics, or history, or spending that time with a friend.
It feels to me to be a gross generalisation - it's really useful to me therefore it's really useful - but without knowing more about the person in question, their life, their issues, how they think, that's really all it is.
I think everybody should learn the fundamentals of programming for the same reason that we learn the fundamentals of physics - not because we're going to be reproducing Newton's experiments at home, but because we live in a world powered by physics, and life is easier and less frightening if you know a little about it.
Given how people drive around here, I'd venture you're right. (Or they'd realize that not leaving enough space between cars at highway speeds is suicidal.)
I'm pretty sure most people know about gravity when they leave school, I'd even venture to say that most at least know of the concept that things are made up of smaller things. I'd also venture to call those two things part of "basic" physics.
If a pen is dropped on a moon, will it:
A) Float away
B) Float where it is
C) Fall to the surface of the moon
This question was asked to students studying physics across a range of levels. I don't know if they just cherry picked the really bad answers. I have no idea how these US educational course translate to international courses.
> "The gravity of the moon can be said to be negligible, and also the moon's a vacuum, there is no external force on the pen. Therefore it will float where it is."
> "Gravity will not pull it down, because there is less of it. It shouldn't float away just because I've never seen it happen. There's a balance between gravity and the opposite force."
I'm pretty sure most people leave high school and if you asked them 12 months later about gravity they couldn't give any kind of coherent answer, just something along the lines of "it stops us floating off into space". Just like all people need to know about coding is it is how websites and apps are made. Any more specific, no one cares.
It's the bulk mail method. Send physics at two million people a year, not everyone is going to "get" it. But we don't know which of those two million are going to grow up and revolutionize the semiconductor industry, which of those are going to jury-rig some clever device at home that keeps their energy bill down, and which of them are going to forget it all.
Just like you never know which email address will respond to a Viagra advertisement.
No. Everybody should learn about computers, how to turn them on, how to browse the internet, etc. Not knowing the fundamentals of programming does not prevent a person from achieving any of the above.
I'd venture that people are psychologically better off compared to the time when people had no idea how cars worked, and they would hang bulbs of garlic under the hood. (Which happened when the Ford Model T came out.)
Actually, hanging something under the hood of a running car can be something of an engineering exercise in itself. (But more people back then could tie knots and had good rope or twine sitting around.)
I'm with Jeff on the idea that programming isn't in the same class as reading and writing and basic maths but I certainly don't agree with the whole article.
But I think the criticism of his article isn't to say he's wrong, everyone should learn to code, it's that he's wrong, some people probably would benefit from learning to code.
My issue is really with the people who flip his position 180 degrees and say "No, everyone should learn to code". Both positions are wrong.
My post isn't encouraging everyone to learn everything. I'm trying to encourage people to do something different from what they normally do. People, especially the U.S. citizens I live near, need some perspective.
I agree that everyone should try something different, and that they should try something they consider scary and alien and borderline impossible (but that obviously isn't because other ordinarily competent people clearly do it).
The effect of this post to me is that it makes me realize how vast the body of knowledge and skills is, and that is quite humbling. I must admit that I have tried around half the things on your list, but, as you imply, there is a larger list.
... learn to fly a plane; learn to fight with a sword; learn to design cars; learn to write novels; learn to make shoes; learn to design clothes ...
So in that respect, why should I decide that one of my skills is the most utile on the planet and thus, everyone ought to be familiar with it. We all wear shoes that only a minority of humanity know how one can be built from scratch, and virtually no one can build one from scratch without requiring input from professions he/she doesn't understand.
IMHO, this whole "Learn to code" thing is a bit egotistic.
[EDIT] Changed "profession skill" to "one of my skills"
I posted on Jeff's original HN posting... so I know what it's like to have one's arguments split over multiple tit-for-tat postings.
I also agree with what you advise that learning is good for its own sake esp. if it is a concrete skill.
--
But I think the "learn to code in a year" fad has less to do with normal concrete skills. A lot of the cheerleading present this mysterious "Coding" as some form of national imperitive.
I've seen references to how many 'coders' other countries have as some sort of Arms Race. More coders == better somehow.
Whilst I admit having zero coders is bad, I just don't think that happens in practice.
=====
Please learn to code. Also, learn to change your oil and maybe your spark plugs; learn to cook; learn to replace buttons on your shirts; learn to fix your leaky sink and plunge your toilet; learn to plant flowers and tomatoes; milk a cow; shovel some dirt; experience driving a tractor, both the kind in a field and the kind that pull tons of cargo down the expressway ...
Get out of your comfort zone, live for a minute in someone else's shoes and maybe, just maybe, you'll learn to respect the work that other people do and be willing to pay them for it - they deserve to be paid for their Work. Yes, sitting behind a desk all day bringing brainpower to bear on saving the company money is Work. Driving 11 hours a day is Work. Grilling that steak and walking it to your table is Work. It's all Work because it takes us away from our families, because it's so well regulated that it adds stress, because we'd rather be doing other things but the bills have to be paid (i.e. we have to pay other people for the Work they do keeping our lights on, our Internet connected and our water reasonably clean.)
So, please, learn to program. Then, when you need software built, you'll know why you hired me for "so much" and how much trouble I'm saving you.