Exactly like everyone shouldn't need to be a professional carpenter, but have a basic DIY tools and know how to assemble some ikea furniture. Or basic physics understanding to know what to do and not to do with an electrical socket!
Productivity gains that will be captured by their employers in the form of higher profits and bonuses for executives and most likely won't be passed down to the employee.
Not saying learning coding is a bad idea, but some perspective is useful I think.
Assuring that aggregate economic gains are justly distributed is a social (politico-economic) problem that clearly (in light particularly of the last ~40 years of history, where there has been clear and damaging regress in that area) needs to be address, but that doesn't mean that we should stop seeking aggregate gains.
Edit: I was working as an engineer at a manufacturing plant, for context.
http://www.theatlantic.com/business/archive/2015/02/why-the-...
And like any teaching, that job should be properly paid. What I find irritating is that it almost seems to be a given in the tech industry that people would do this job for free. And the fact that it will create more software engineers on an average leads me to think that all the "Learn to Code" movements are not as altruistic as they may seem.
I agree that everyone should learn to code, but similarly why shouldn't everyone learn basic science, economics, or civics? I know a lot of people the US anyway seem to be really behind the curve on these matters, but because it doesn't really benefit large corporate entities, they aren't lining up to teach kids these skills.
We already teach those things to every child in the US. Whether or not they pay attention is something we have less control over. The vast majority of students do not have any opportunity to learn to program.
Exactly, and the teachers are paid for it. You rarely find companies promoting movements offering to teach economics or civics for free.
> The vast majority of students do not have any opportunity to learn to program.
Then it should be put into the school curriculum, and a qualified person should be paid to teach them, instead of the current expectation which seems to be "programmers will teach these kids coding in their spare time because...everyone should learn to code!".
Individuals can understand nuance, people don't.
I'm reminded of that exchange from Men In Black. J (Will Smith) insists that people will understand about aliens, K (Tommy Lee Jones) disagrees:
J: "Why the big secret? People are smart. They can handle it."
K: "A person is smart. People are dumb, panicky dangerous animals and you know it. Fifteen hundred years ago everybody knew the Earth was the center of the universe. Five hundred years ago, everybody knew the Earth was flat, and fifteen minutes ago, you knew that humans were alone on this planet. Imagine what you'll know tomorrow."
"Mathematicians make a lot of money! Everyone should learn to count!"
"Authors make a lot of money! Everyone should learn to write!"
"Cartographers make a lot of money! Everyone should learn to read a map!"
"Micheal Phelps got a lot of Olympic gold medals! Everyone should learn to swim!"
>>Specialization is for insects
and
You can know the name of that bird in all the languages of the world, but when you're finished, you'll know absolutely nothing whatever about the bird. You'll only know about humans in different places, and what they call the bird. … I learned very early the difference between knowing the name of something and knowing something. - Richard Feynman
Every set of X elementary skills is a highly useful skill set that can be applied many set of Y professions.
Ask any doctor and they will explain to you the importance of first aid, and basic knowledge of a healthy human body. Ask a driver and they will explain to you why driving skills are so important. Plumbers are likely to tell you the importance of learning some basic tap-changing, flush-knob changing skills. Teachers may emphasize on learning and teaching skills as the most important skills on earth. Basically every skill has the same importance as every other skill.
>>"Learning to code" just means recognizing when a problem can be solved by applying a discrete series of repeatable steps
This in the old days was called 'Math', and trust me has been a part of school curriculum for more than a century and half now and things seemed to have barely changed anything.
You assume that by learning to code a person begins to start thinking about automating any process he/she comes along. While that skill is a rarity even among programmers.
Yes, and, guess what, teaching first aid and basic human health in schools is (outside of debates over content relating to sexuality and reproduction) relatively uncontroversial and widely accepted.
> Basically every skill has the same importance as every other skill.
This conclusion does not follow from the idea that some people will argue generality for any given skill, nor have you supported it otherwise.
What's actually special is building things. While in school, my school principal had our school host science and art exhibitions every year. We would routinely attend other science and art contests at other schools. The common pattern there? You will see the same 10% population in every school participating everywhere else.
To break this pattern, our principal bought in a concept of team work, basically to pair up 90% people with the participating 10%. It was a colossal failure, apart from the fact they were teams on paper, it was essentially those 10% people doing all the work while everybody else in just for the participant tag.
The issue here is human behavior and psychology. The assumption that merely teaching programming will likely build master makers, automation identifiers out of every school. In reality a bare regular 10% of the kids are likely to have the motivation and discipline to see things through.
You do realise that:
a) Historically working hours have not decreased with an increase in productivity, and
b) The notion of a basic income, and the concept that not everyone needs to work is regarded with extreme suspicion (in the US anyway)?
All those people who are copying and pasting things are doing a certain job. You can eliminate those jobs with a single script, but I'm not so sure doing this en masse would be a positive thing without making a parallel effort to reduce work hours for everyone and making a push for basic income.
Those long days arose in consequence of the industrial revolution (both because the things which enabled them were products of the industrial revolution, and because they were adopted to maximize the return of the capital investments in factories in industrialization), working hours were shorter previously.
Its true that they later came down as a result of social movements spurred by the conditions those long hours produced, but its not clear that those were net shorter hours from productivity or just a reversion of the increase.
(In some areas of the developed world, there've been further reductions since, which may be a continuation of the same social movement adapting to changes in the production capacity, which would perhaps illustrate a socially-mediated course for the trend you suggest, but that hasn't been universal.)
"Everyone should learn to code" has the same relationship to "everyone should get a job as a software developer" as "everyone should be literate" has to "everyone should get a job as a writer" or "everyone should learn some math" has to "everyone should get a job as a mathematician". Though, really, I prefer "everyone should learn to design programs", or "everyone should learn to analyze and structure systems to perform defined tasks".
To quote from the preface of the excellent How to Design Programs, 2e:
--
Programming differs from good programming like crayon sketches in a diner from oil paintings in a museum. To emphasize this difference, we refer to the latter as program design. Don’t let the words “painting” and “museum” scare you. We wouldn’t have spent fifteen years writing this book, if we didn’t believe that everyone can design programs and everyone can experience the satisfaction that comes with it. Indeed, we go as far as saying that program design—not programming—deserves the same role in a liberal-arts education as mathematics and English: everyone should learn how to design programs.
Also, it is not as if there are huge barriers to learning to program. Anybody that can type a google query can get started. All the tools and knowledge needed are at your fingertips for a sufficiently interested person. As many in this thread have pointed out, they started from nothing, learned on their own for a year or two, and landed a gig.
To me I can't escape the feeling that well monied interests are working their hardest to ruin one of the last good, well paying careers.
You're right that it has never meant the everyone literally needs to be able to write software in the programming languages du-jour.
I think the author understands this but is responding to those around him who have taken the words "learn to code" literally.
The "learn to code" movement came about around the time that Doug Rushkoff wrote "Program or be programmed". I don't blame Rushkoff as he clearly made the case for individuals taking control of their digital lives lest it be taken from them. He never meant that everybody literally needs to start programming.
(Later he said: "Alas, it didn't come to pass.")
Coding is just one of many things that has potential to make millions. But it's not something that will be done overnight. All these make millions statements forget to point out how the folks in these industries got to those millions.
I recently took on a hobby of building a very large shed and successfully completed it. I learnt more about problem solving using tools (saws, files, chisels, pincers, RHDs, etc) and physics than I have in years through coding. Dealing with stresses, gravity, plumbing, etc was amazing.
I learnt a lot about problem solving without coding a single line of code. The learn to code is emphasising the wrong lessons. I've use several of these sites with my kids to see this first hand.
"Learning to code" just means recognizing when a problem can be solved by applying a discrete series of repeatable steps and then learning how to tell the computer to do those steps rather than doing it yourself. The productivity boost we could get just by eliminating people manually copying and pasting (or, dear god, re-typing) things from one spreadsheet to another would be enormous, let alone other applications.