Why Pushing People to Code Will Widen the Gap Between Rich and Poor
wired.com
wired.com
Let me explain - coding is neccesary when you are doing something technically innovative. As things become less inovative, layers of abstraction are built to make them easier. Until eventually, there is a nice GUI that lets you achieve that thing without too much trouble.
So once, displaying a square to the screen involved assembley and custom hardware. Then the hardware got commodotized, and we got graphics libaries. Now, you just fire up MS paint and draw a square.
10 years ago, my mum wanted a website, so I coded one in HTML. 5 years ago, she wanted a website, so I coded a wordpress theme and she maintained it for years without trouble. This year I asked her what she does. She uses a facebook page. You don't need to code to make websites.
The website isn't important to her - the day to day activity of the charity are important to her, and the website helps them do that stuff. It is worth considering that while technology is a big part of what we do, most people are trying to do really hard things, sell stuff, help people, whatever, and only need a small amount of easy to use technology where it makes them more effective.
We learn math at school. I used trigonometry last week to create some cool android interaction mode, but I bet most of my classmates forgot it at 18, and only wish they remember it when it comes up on a TV quiz show. It will be the same with code.
I've at least found this to be true in my own experience, but I have also sought out opportunities to combine disparate skill sets and knowledgebases. Being able to toggle between thinking like a sociologist and thinking like a programmer has made my work richer by providing me with solutions I might not otherwise have thought of.
I would prefer to define programming as "composing a set instructions which can repeated automatically". By that definition there are many people who create valuable 'programs' such as spreadsheets, MS Word themes, CRM workflows, Photoshop scripts, AutoCAD scripts, manufacturing plans, automated UI tests or clever ways of using Mechanical Turk and oDesk. These people don't call themselves programmers but they've grasped the fundamental thing that makes programming a more powerful way of working. It's a way of thinking, not a particular syntax, and I think the economy will increasingly depend on those people who can amplify their effectiveness by thinking in that way.
I hope to teach my kids some basic python and HTML but mostly I hope to teach them that just pushing buttons and doing what you're told for 40 hours a week will not be very fulfilling career. Even if you're technically a doctor or a lawyer, you could get stuck being basically a robot. Whereas being someone who designs repeatable systems is much more rewarding.
In the actual world we live in I agree with you.
However, in a thoughtful world, we would get everyone started coding at 5 and have many many classes devoted to it from K-12 ... because computers really are incredible force multipliers. If you know how to code, you can be much better at whatever you do.
But back to the real world, it's going to be much more like your trigonometry ... where kids fight it and forget it when they graduate HS.
I feel like saying everyone should learn to code is in the same spirit as saying everyone should get a stronger math education and everyone should learn statistics. Sure, everyone should get a better math education and learn statistics ... but that's easier said than done.
Good. Maybe 90% of people never use the knowledge again. Maybe 99%. That still leaves 1% who learned it, absorbed it fully and use it to improve the world.
Computers run so very much of the world around us now, not giving people the chance to be educated to the level where they can meaningfully contribute is just plain wrong. Without this happening in school, most people will never have a chance.
It certainly wasn't an intensive computer science education, but I'm not sure anyone is advocating for that anyway.
The reason we should teach programming is to force kids to think like programmers. Even if they hate it. Even if it's only for a couple hours a week for a few months. Programming is problem solving. Think about the mental processes involved: pattern recognition in complex systems, breaking down problems into their smallest parts, stepping through a potential solution one step at a time, managing multiple changing pieces of state at once. Those are your practical skills.
How many arguments could be ended if people knew how and were willing to think through their potential solutions one step at a time and see where each move left them? I'm the first to laugh at "STEM master race" arguments, particularly in education, but just because an engineer-like perspective isn't panacea doesn't mean it isn't a valuable tool that I wish more people had.
Learning metal shop could teach you a similar skill set about putting together something reasonable complex but you can't just be put in a workshop and figure it out.
Learning to "think like programmers" is essentially teaching kids to think like engineers, in other words, recognize complex systemic interdependencies and understand that things usually form a system that has it's own rules, constraints, etc. When you start to understand these relationships, it helps you immensely even outside the realm of tech. For example, the Monarch butterflies are not having such a good decade. Why? Well, the system that enabled their migration (the prevalence of milkweed) has been modified extensively by humans, and now is at the breaking point where there may not be clear avenues for the butterflies to continue their migration patterns. This is a gross oversimplification of course, but the point is that now we can look at the other "nodes" in the system that will be impacted by lack of migration. Birds could be impacted, which in turn impacts whatever feeds of those birds, etc., etc.
Computers offer some of the more understandable and finite systems that we can learn, yet offer incredible flexibility, illustrating how complex things can get. Learning to speak in these languages helps with that understanding.
Also, I don't think anyone is advocating learning assembly or what not. When most people talk about "learning to code", it's picking up a higher-order language that does a lot of the complex things for you. It's not the same as teaching real computer science. It's basic comprehension and knowing how these systems form.
My personal favorite, that I'm always painfully reminded of when reading political news, is the ability to hold multiple interrelated systems in your head at once and check that they're mutually consistent. There's so much unintentional doublethink out there that I think could be significantly improved if people would just stop and walk through their own thought processes in a logical manner. It's not the only way to think, and it's not appropriate for absolutely everything, but it is a good sanity check for many, many domains, and it's frustrating when people tend to look at me funny and end the conversation when I try to, for example, explain that two ideas cannot possibly be held at the same time because they're contradictory when taken a step down the line.
Come to think of it, the concept of a sanity check itself is something that I got from programming and use in everyday life.
But in all seriousness, it's shocking how many people turn a blind eye to inconvenient contradictions/conflicts.
First, the gap between rich and poor is a ridiculous argument for saying the "rich" should stop learning new skills. Property is one thing, we can debate that forever (as far as I'm concerned, neither capitalism nor communism nor any of their variants can yet claim victory, if ever), but knowledge? We now have to stop our children from knowing stuff in order to create a more egalitarian society? That's too insane even for my European "socialist" standards.
Second, learning all kind of basics, from math to biology to chemistry are all accepted parts of the curriculum. In this age computer sciences should be a normal part of that. We don't teach kids to write so that they will become literary geniuses, we don't teach them biology so they'll cure cancer. We teach them a basic understanding upon which they can either build, or at the very least use it to have better grasp on the world around them. Just like mixing some chemicals in the lab, or writing a simple essay, basic coding is an exercise to help them learn. There is neither the intention nor the expectation that they will become programmers when they grow up.
"Reddit, my friends call me a scumbag because I automate my work when I was hired to do it manually. Am I?" - http://www.reddit.com/r/AskReddit/comments/tenoq/reddit_my_f...
> Hired full time, and I make a good living. My work involves a lot of "data entry", verification, blah blah. I am a programmer at heart and figured out how to make a script do all my work for me. Between co workers, they have a 90% accuracy rating and 60-100 transactions a day completed. I have 99,6% accuracy and over 1.000 records a day. No one knows I do this because everyone's monthly accuracy and transaction count are tallied at the end of the month, which is how we earn our bonus. The scum part is, I get 85-95% of the entire bonus pool, which is a HUGE some of money. Most people are fine with their bonuses because they don't even know how much they would bonus regularly. I'm guessing they get €100-200 bonus a month. They would get a lot more if I didnt bot.
So reddit, am I a scumbag? I work about 8 hours a week doing real work, the rest is spent playing games on my phone or reading reddit...
Of course, on the other hand, you could also take the initiative to try to help your coworkers improve themselves and their productivity. Time spend playing games on your phone or reading reddit could've be partially used to help encourage other members on your team. Maybe the compensation structure deters you - but I am sure some if not all of your coworkers would really appreciate your help (technical or non-technical).
Knowledge is worthless and potentially dangerous without the means to properly use it, and that, in my opinion, is where Education has a place. It's about providing the tools necessary to process and accumulate knowledge and cope with unknowns, and fair enough, basic writing/reading and calculus skills are a good start, but far from it all.
In all the countries I've lived in, I've never once seen a school system which properly addresses this problem. I find the very idea of putting children through knowledge cramming and regurgitation sessions utterly appalling. Sure, it makes for a measurable system, but what exactly are we measuring?
I'm not saying the author doesn't have a point, I'm just saying his point doesn't address the real issue. As far as I'm concerned, it doesn't matter if you're teaching kids programming or the art of growing tomatoes, what matters is that if and when they want to do so, they can.
My assumption is that this is your experience of your own schooling, and possibly that of your experience of your childrens' schools.
It's not how my education went, and I was taught subjects, but I was taught to understand them and to approach them all in rather different ways. The subjects are very relevant. Languages bed down better in younger minds. Scientific understanding is different from mathematical understanding and different again from historical understanding.
So I repeat, I'm sorry if you felt your schooling was terrible, if you felt you were being asked to cram worthless knowledge into your head, that's not how it went for all of us.
Does that mean we need to stop trying to raise the living standards of the majority of people and stop trying to offer things like free food, free healthcare, and free education? No.
It's like if someone argued against the use of penicillin because it increased the lifespan disparity between rich and poor. I'm sure it did and still does (for those with no access to pencillin), but what is the point? Are we supposed to stop using penicillin then to keep lifespans closer together? Or should we instead focus on getting more people access to penicillin, similar in a (very rough) sense to how the "learning to code" movement is focusing on making computational literacy more accessible to everyone.
So please allow me to call bullshit.
Last but not least a very provocative analogy but I don't have a better one right now. But for me "they shouldn't learn to code, they can't even spell everything correctly" sounds very much like "we shouldn't try to stop HIV in africa, they don't even have fresh water".
Again sorry, but nothing better comes to mind right now.
A much larger part of poor people would benefit greatly by learning how to speak/write/read better. When I visited the US I was shocked by the large difference in people. I literally couldn't understand some people. For us (Northern European) folks it's hard to imagine so much Americans really do live in a 3rd world part of the US it seems.
What I'm about to say is probably obvious to most HN readers, but I'll say it anyway in case the author is reading the comments: right now the large majority of commercial software is closed-source, and teaching everyone to code is probably not going to change that. Even if it did somehow change, and there were a bunch of eyes looking over all the software that companies wrote, it would probably make it an expensive PR blunder to not implement privacy best practices, etc... you wouldn't want your software's failure to implement proper protections to be a top story on HN.
"Schooling is compulsory for all children in the United States, but the age range for which school attendance is required varies from state to state. Most children begin elementary education with kindergarten (usually five to six years old) and finish secondary education with twelfth grade (usually eighteen years old). In some cases, pupils may be promoted beyond the next regular grade. Some states allow students to leave school between 14–17 with parental permission, before finishing high school; other states require students to stay in school until age 18"
This Wikipedia page also happens to conflict with the article on our literacy rate, claiming it's 99%. Would be interested to see why the difference exists.
I live in a poor area and I was in line at McDonald's and became angry that there wasn't a long line, but the line was moving very slowly. When I got to the cashier I realized the 20 year old girl they had working could hardly read and that's what was taking so long.
I ended up feeling bad for getting mad at the situation, I can't imagine not being able to read and what she must feel having to work there without being able to.
http://www.nsf.gov/statistics/seind12/c7/c7s2.htm
74% of Americans could read a simple chart correctly and 66% understood the concept of "mean" in statistics.
http://www.migrationinformation.org/datahub/charts/final.fb....
I presume that's some non-trivial part of the "functionally illiterate" in the US. The graph even shows the number rising rapidly which may go some way to explain rising levels of illiteracy in the US.
(And just in case there's any ambiguity, I don't attach any stigma to immigrants coming here being functionally or entirely illiterate. Half of my own ancestors didn't know English when they got here either)
It strikes me as a curious problem that we now think 5th grade is necessary for functional literacy. What's being taught between 1st and 5th grades that's necessary for literacy? How are more people entering the 'illiterate' pool? Cannot we just wait for the illiterate pool to die out?
Or perhaps, as some people do, functional literacy is attempting to measure some sort of societal literacy: fluency in a 'common set of core beliefs' of our society. Tyack argues that this 'common set' has always been a low-rigor concept, never well taught by the school system and never well measured, and as such years of schooling and socialization can be used as a proxy for how familiar you are with society. Unfortunately, this societal literacy is sometimes at odds with true literacy: some schools automatically promote societal contingents of one age group to the next grade, regardless if everyone in that group has competency in the current grade.
Thus, I claim the fourty-five million figure was not measured with a sound bar for literacy, and urge a more nuanced view of literacy that celebrates America's success in making its population ~completely literate.
(At 180 days * 6.7 hours a day[2], the US would hit ~ 1200, vs the 960 hr / year average for OECD countries, and many fewer for some of the top countries[1]).
The difference is in the way subjects are taught. As many people learn through many different ways, and are inspired to learn by many different topics, we should be encouraging schools to increase the number of subjects we teach, not limit them.
It would only make sense, then, to offer classes in algorithmic math or integrating coding and art classes, to offer further opportunities to discover new ideas and expand kids' minds.
Edit: fixed US hours
1: http://www.oecd.org/education/skills-beyond-school/48631122....
Allocating resources to teach coding will take away from teaching the fundamentals ... hence leading to worse outcomes and greater inequality.
Something about that argument doesn't sit right with me. It doesn't seem like the answer is to say 'we can't teach literacy well, therefore we shouldn't teach coding'. Seems like a better answer is 'fix how we teach literacy'.
Anything with a GUI? Ok there's all your principals of design to chuck in. Geometry, proportions or what have you can't be ignored so hello maths already.
It might not be a fundamental application but its skill set certainly is.
it just seemed like the 'income inequality' is an orthogonal issue.
A headline of 'Fix fundamentals first' or 'You need fundamentals before you can teach coding' would have made more sense to me.
with that said, for me, coding is actually a huge motivator for learning. You can actually see why you need to linear algebra, calculus, statistics, trigonometry, etcc. Instead of some abstract purpose you can very concretely that you need to master all those topics if you want to make a robot function ... for example.
And frankly, if the rest of the world needs to learn programming in order to function in society, then we haven't done our jobs correctly. We create programs to automate tasks that we don't want to or can't solve manually, with the idea that people have other stuff they want to do.
"Technologies should adapt to our needs and values." Period.
Off to research how education dealt with the horseless carriage and the flying machine back in the old 20th cent.
Or how about fixing the educational system, and add programming while you're at it?
Should the illiteracy problem be a reason to drop other non-essential courses from the curriculum? Is every course currently on the curriculum really more important than coding (which teaches problem solving, logic, systemic thinking, and in fact even involves quite a bit of reading at times)?
The school I went to had computer classes. And they were crap. I took all of them hoping I would learn to program or do useful things. But they are entirely about teaching Microsoft Office and Excel. Not a useless skill, but it shouldn't take hundreds of hours of class time to learn that.
>What’s more, a society where people are expected to know how to code is one where powerful players like big corporations and government are more likely to ignore responsible design obligations — design decisions such as building in privacy protections and making sure technologies have a degree of transparency about how they operate. It would be like saying safety-enhancing features in vehicles aren’t necessary because everyone learned the basics in driving school… or worse, who needs to learn when autonomous cars do it for us anyway?
No, this makes no sense. Even programmers don't want to have to manually inspect and work with the code of every program they use. I feel like the author might be misled here.
>If coding becomes a required skill to navigate a technological environment, then a large part of the population without the privilege of becoming fluent in code will be left behind. It will be the gap between the coding haves and have-nots. A world where filter bubbles and sameness rules over the messy realities of life.
This isn't entirely wrong, but still seems like a zero-sum fallacy. Some people learning how to code doesn't mean everyone else is therefore worse off. And hey, you can say this about literally anything at all. Does driving skill being normal make the world more unequal and worse? Or math education. Or internet access. Or numerous other examples. Would taking those things away make the world better?
That is, I don't want people to be poor, but making everyone else poor for the sake of equality doesn't actually improve the situation.
Sidenote: Is OP, Libertatea, a bot? I thought there was a reddit bot of the same name that just posted articles, and he has a lot of submissions and only a few comments. Just curious, don't mean to accuse OP of anything.
And assuming that educational resources are bounded by what's currently in place is the product of myopic acceptance of the status quo.
Maybe for the next Wired exercise in futurism, they could imagine an educational system that isn't being suffocated to death by anti-tax zealots and privatizers / privateers...
What bad consequences will it have?
I don't mean that theoretically people will feel bad, but how exactly will this be bad for a random joe to have a slightly smaller share of a much much bigger pie??
This puts into words my feelings towards this techno-movement of "teaching everyone to code". Don't get me wrong, I have nothing against increasing computer literacy; with technology so deeply embedded in our modern industrial society, the fact that the majority of our citizenry have little understanding about how these machines work is very real cause for concern. However, I really don't think it's what we should be concerned about right now.
I used to tutor at at an after-school program in a neighborhood in Boston called Bowdoin-Geneva. It has one of the [highest crime rates] (http://www.bostonglobe.com/metro/specials/68blocks) in the state of Massachusetts. The high school graduation rate in that region is abysmal, and of the ones who enroll at four year universities, the percentage of students that actually complete their degree is even worse. It's also a neighborhood with a large population of Cape-Verdean immigrants, and many of these immigrant families send their children to after-school programs, including the one I was at. I was mainly involved with the 7th grade classes, and the environment was often very chaotic. I couldn't really blame them - I mean, it was "after-school". But in interacting with these kids, and working alongside them on their homework, what struck me wasn't so much the fact that they lacked even the most basic knowledge of English and Arithmetic (I knew the stats), but how incredibly curious and energized they were as humans, and yet how utterly pointless and enervating they found school to be. For most of these kids, fun was anything but school. School was like a prison, and this program was a brief escape. It was where they could get help on their dreaded assignments, and then go play for the rest of the day.
Unfortunately, that sentiment isn't endemic to Bowdoin-Geneva. And that, to me, speaks volumes about what's really wrong with public education. It's not just the curriculum (more coding?), it's school. The teachers, the administrators, the culture. Who are we paying to teach? Who are we paying to lead the organizations that build our future? What do we have to do so that kids actually want to learn for learning sake? It's a challenge, and there's no one answer. But adding more features to a broken product is not the solution.