Every analogy that I have heard including the car one in the article totally misses the point.
If you know nothing about cars and your mechanic is out to screw you, your losses are pretty limited to the value of your car.
A company that I do side work for is out $250,000 from an IT project gone bad from a previous consultant. If he knew literally anything about coding, he would've spotted the tell-tale signs of a sheister early on and perhaps saved himself a quarter million dollars.
I don't know of a downside to kids learning basic coding. If they don't like it, don't do it anymore. But at least they'll have a baseline knowledge of it. I learned how to cook french toast and sew in home economics in school and I don't recall at the time articles like this saying how it's not necessary.
Just to play devil's advocate a bit (I don't necessarily disagree with you), there is a danger in a little bit of knowledge.
Mis-applied knowledge can be a terrible thing. I've worked with people who took one night-class in metal shop, and suddenly were giving tips to the industrial design people. If someone with a little bit of knowledge is in a position of power and decides, "No, we're doing this project in C because I took a class in C and the teacher said it's the most powerful language," then things are going to get ugly, fast.
To use the mechanic example, it'd be similar to someone telling their mechanic to put 10W30 into their car because their cousin swears that it's the best oil around (I know nothing about cars).
I swear the same thing happened during one of my projects - someone kept insisting on building a .NET because they heard about it from a buddy. Luckily we were able to convince them otherwise.
I don't know of a downside to kids learning basic coding.
The cynic in me says maybe people are so upset by the suggestion out of protection of their own interests, i.e. if everybody learns to code does that marginalize them & their cushy programming job?
The cynic in me says maybe people are so upset by the suggestion out of protection of their own interests
As a 41 year old who has worked in IT since I graduated high school at the age of 17, few people have more to lose than I do if there is an influx of new programmers willing to work for 10% of what I make. But I don't care about that. My parents struggled financially to buy me a Commodore 64 in 1982. If not for that decision on their part, I'd likely be in a very similar circumstance to most of the people I graduated high school with. With no degree, no marketable skills and making $10 per hour somewhere.
I think other people should get a shot at the same chance I received.
> few people have more to lose than I do if there is an influx of new programmers willing to work for 10% of what I make
If you're 41, you've probably been in the industry for a while. If you reflect upon the past, you may notice that the massive increase in programmers in the past few decades has not decreased earnings for individuals. Instead, we've seen explosive growth in software's reach and productivity.
Sure, they might be willing to make 10% of what you make, but some other company is offering 50%, and a third company is offering 120%... As long as software produces more than it costs to make, there will be increases in salary.
The obvious downside (if you are a programmer) is that they will like it, and will want to pursue it professionally, thereby reducing programming to yet another saturated market with low pay and difficulty finding work. I think people come with cynicism because it is people who have the most to gain from a large and cheap programming workforce who are most vocal about it.
I love how the article mocks the President's suggestion, while offering the lame "learn math" as an alternative.
He didn't say "everyone go out and become a programmer". He's using his bully pulpit to inspire kids to explore the deeper side of computing, beyond video games, etc.
In my personal case, my dad and my uncle both encouraged me to get involved in technology via programming. I learned about data structures and basic programming by inputing BASIC programs when I was 6 or 7 and learned about things like memory management playing games on my aging PC XT in the early 90s.
I ended up a infrastructure guy, not a programmer, but that exposure was personally inspiring to me. The President almost certainly inspired a few thousand kids to take a look at programming.
> The President almost certainly inspired a few thousand kids to take a look at programming.
Which, of course, is the problem. I'm not an American, but when I was younger, there was a big push by my government to inspire kids to look at teaching. And they did. In droves. Out of interest, a quick tally of the high school friends I kept in touch with shows that 60% of them attempted to pursue teaching as a career in some capacity.
Naturally, when you saturate a market, you get all the problems of market saturation. Most of them struggled to find work, often landing only temporary positions, and several gave up on their dream completely after not being able to find any work in the field. Those who did find jobs as teachers have watched their incomes decline.
The fear many have is that coding is just being pushed because programming is currently, like teaching was several years ago in my area, experiencing more jobs than people. By promoting coding as "the future" we are sending the message to kids that if they just learn to program, they too can walk into a $100K per year job like programmers do today. Except it won't play out that way. It never does.
Silently introducing coding as part of the existing math/computer curriculum seems like a pretty good idea. It is a useful device. However, having people like Obama, Gates, Zuckerberg, and other famous people to talk about how important coding abilities are makes it look like a play specifically to increase worker numbers, which will end badly for anyone following that path.
Keep in mind that teaching is also a cyclic thing. Schools were built out in waves, so without growth, you're subject to the waves of retirements and the waves of school-age children, which vary dramatically. In my area of the US, people in my age cohort (high school graduation between 94-97 all got teaching gigs, no problem. People in my brothers group (2000-2004) are working in Starbucks.
I think the difference between "You should teach" and "You need to learn to code" is that coding is a practice, not a profession. I apply programming skill to IT infrastructure activity, but I'm not a dev. My wife is a financial analyst/Excel commando, writing all sorts of adhoc code snippets for BI and other purposes.
The article argues that people should not learn to code but should understand "the logical underpinnings to coding, the way conditional clauses work and the cyclical way in which systems are constructed."
That seems to imply that we should teach things like if/while/for constructs , but do so without teaching an actual programming language? This seems like an odd statement.
Not sure I agree with car engine analogy either, it's far easier to outsource all of the mechanical work for your car than it is to outsource all computer maintenance tasks. For example a car user is not expected to be able to install third party parts to their own car and most car owners have no need to do this. However we do expect users to be able to choose and install software on their own computers.
Yep. This article is among the worst examples of argument by straw man I've seen in a while.
"Could the president mean everyone should understand the basics of how software works, I don't think so, I think rather that he thinks everyone should learn how to write every piece of code they use so they can get a CS job"
Given two options, the author decides to use the less reasonable interpretation not because it is most likely but because it is easiest to write a flame-filled article about.
Mine was algebra for 2 years and then geometry with more algebra (only 3 required, guess how many people elected for more math). I don't remember much but I never saw calculus in HS. I think the advance math classes went to pre-calculus.
> I think the advance math classes went to pre-calculus.
Presumably using some ordering where algebra < calculus. I don't know what your high school algebra was like, but mine was certainly much harder than derivatives and integrals :p
Mostly it was learning about variables, plotting, some polynomials later. In the end the majority of it was just memorization without a reason for using it.
I don't really remember most of the calc stuff I had to learn but I can at least remember why it's useful but after 3 years I barely recall how to get a derivative and would have to look up integrals.
Personally whenever someone can give me a percentage quickly (sometimes at all!) I am impressed. I tend to feel math education is lacking (in America/general). I especially like articles that surface on HN with math and even more when they have illustrations/examples [1]. It's amazing how many times I had read about it before it just clicked.
The hard stuff is logic, and that's covered in geometry and pre-calc.
Loops and if/then aren't very difficult, I don't remember anybody struggling with that when I was a TA. Logic, on the other hand was a learning curve for the students who dozed through 10th grade math.
Learning to code is the new State standardized testing. A checkbox occupation educators can tick while students mindlessly run through the motions.
Everyone needs to learn to think and create. For that coding is a great option, but not necessarily better than any other hands-on art or science. Having fun and being able to express yourself and explore your ideas is the most important part.
I read the president's suggestion as "everyone should learn how to think". If he said those exact words, I'm sure someone would still take exception to it.
Personally, I think it's just as effective to buy every child a chess set.
I was getting into a discussion on Twitter about the whole learn to code meme, and then one guy says:
"In the future, I want my mom to tell a robot to get 3 tomatoes, and if they have apples, get 5"
Although, I'm still not 100% convinced that learning to code is of any benefit to someone not working in the technical field, but I have to admit: touché.
This sort of article represents the lameness of the 2013/2014 web today.
Step 1: Celebrity/famous person/politician makes a bold statement
Step 2: 50 bloggers simultaneously come up with an article titled "Why x is not true". They then write the content around the headline. First one to publish "wins"
It's predictable, really - and perhaps even more so on HN. HN's is often like this:
Step 1: A post makes a bold statement or question in the headline and gets 100+ upvotes
Step 2: 5 bloggers simultaneously come up with an article titled "Why x is not true". They then write the content around the headline. First one to publish "wins"
Please elaborate. You can write some html? You've done hello world in JS? Mastered the basic constructs? Or have you worked on teams writing in strongly typed languages developing large OO systems? Somehow I doubt it.
It's important because the phrase is being used to imply a position of authority while telling people they shouldn't learn something.
When I'm on my laptop, and in the event when I'm not doing any programming work (e.g. making music, viewing photos etc.), I use the terminal to carry out almost any task. Moving files? `mv <file>`. Deleting one? `rm <file>`. Converting a collection of ogg files to mp3? `for f in *.mp3; do; ffmpeg -i "$f" "$(basename $f`)".mp3; done`. And many, many more possibilities from shell scripting.
So maybe, learn to write shell (or batch scripts). JavaScript and Python--in my experience--doesn't help me handle my day-to-day tasks.
Shell scripts have limited use, its hard to reuse libraries, and they don't port worth a damn. I'd think Python or Javascript would be better because not only can it do day to day moving files around but they can also easily mass edit spreadsheets, text, and images by leveraging the work of other libraries.
Until I started using linux, I never used the terminal to carry out any of the operations you listed above. Why can't most people just use a mouse for these?
The reason why people don't understand the value of coding is the fact that they think it's one of the many skills you can learn in life, just as nursing, knowing how to do heart-surgery, playing soccer and so forth.
However, learning how to do code teaches you problem solving and it does so by teaching how to break down things. This is the MOST important skill in life. That's why coding encompasses ALL the other skills, because if you know how to code you can learn anything else, heart surgery, physics, biomedicine, a summer sault, save money etc.
You can also learn how to break down things through studying something technical such as Bio Engineering, Physics or Math, however these academic studies are hard and not for everyone! In turn, coding is simply the best way to learn problem solving, because it shows you results immediately and everyone can learn it.
With everything else you can BS your way through, not with coding.
Now, there is one thing that coding doesn't teach you necessarily. It doesn't teach you is how to connect with people, how to make friends, how to excite people or how to . If you are a really curious person, it also teaches you that, because the study of social dynamics/how people communicate is also all based on logic and breaking down things. However, it takes a while to learn that.
Let's see Obama hire a programmer for CTO instead of some Harvard economics grad who has only learned: (i) to be the recipient of privilege and (ii) to justify the unfair system that gives him that privilege
Okay... I got fooled. I clicked on this link bait because I read it quickly and thought, hey it's from Wired and they're somewhat reputable in the topics I follow. Oops, nope, it's the Wire.
Well, you got me "thewire.com." You got my impressions with your poorly written, straw-man argument. You got my attention writing things like "plugging hot career" and "blowing air" to instill some sort of emotional response. You even got me going back to this horrible article so I can accurately quote your hyperbole in this HN comment.
Bravo. Now let's downvote this so we can stop sending them traffic.
There's probably a middle way here....How about "Everyone who wants to code should learn how to code?" That sounds about right, and hey, it's exactly how it already is!
I'm kind of torn on this because I know that a lot of people just don't have any interest in coding. Their natural aptitude flows in a completely opposite direction, they enjoy things that I could never enjoy, and I don't see why I should be forcing them to code just as they would never force me to do what they like. On the other hand pretty much everything is going to be software in a very short amount of time, and those people are going to have a hard time of it if they don't learn to code at least a basic level so they know something about what's going on. Does that make coding as fundamental as reading? Possibly.
I think some sort of remedial coding should be a requirement in high school until the student meets a reasonable standard of ability, and then they should be let off the hook to be allowed to do what actually interests them.
40 comments
[ 1689 ms ] story [ 3744 ms ] threadSo True.
If you know nothing about cars and your mechanic is out to screw you, your losses are pretty limited to the value of your car.
A company that I do side work for is out $250,000 from an IT project gone bad from a previous consultant. If he knew literally anything about coding, he would've spotted the tell-tale signs of a sheister early on and perhaps saved himself a quarter million dollars.
I don't know of a downside to kids learning basic coding. If they don't like it, don't do it anymore. But at least they'll have a baseline knowledge of it. I learned how to cook french toast and sew in home economics in school and I don't recall at the time articles like this saying how it's not necessary.
Mis-applied knowledge can be a terrible thing. I've worked with people who took one night-class in metal shop, and suddenly were giving tips to the industrial design people. If someone with a little bit of knowledge is in a position of power and decides, "No, we're doing this project in C because I took a class in C and the teacher said it's the most powerful language," then things are going to get ugly, fast.
To use the mechanic example, it'd be similar to someone telling their mechanic to put 10W30 into their car because their cousin swears that it's the best oil around (I know nothing about cars).
The cynic in me says maybe people are so upset by the suggestion out of protection of their own interests, i.e. if everybody learns to code does that marginalize them & their cushy programming job?
As a 41 year old who has worked in IT since I graduated high school at the age of 17, few people have more to lose than I do if there is an influx of new programmers willing to work for 10% of what I make. But I don't care about that. My parents struggled financially to buy me a Commodore 64 in 1982. If not for that decision on their part, I'd likely be in a very similar circumstance to most of the people I graduated high school with. With no degree, no marketable skills and making $10 per hour somewhere.
I think other people should get a shot at the same chance I received.
If you're 41, you've probably been in the industry for a while. If you reflect upon the past, you may notice that the massive increase in programmers in the past few decades has not decreased earnings for individuals. Instead, we've seen explosive growth in software's reach and productivity.
Sure, they might be willing to make 10% of what you make, but some other company is offering 50%, and a third company is offering 120%... As long as software produces more than it costs to make, there will be increases in salary.
Politicians say lots of things. He did not mean it. He must already forgot what he said.
What is more important to him is those things he will never tell you.
Don't waste your time on this.
He didn't say "everyone go out and become a programmer". He's using his bully pulpit to inspire kids to explore the deeper side of computing, beyond video games, etc.
In my personal case, my dad and my uncle both encouraged me to get involved in technology via programming. I learned about data structures and basic programming by inputing BASIC programs when I was 6 or 7 and learned about things like memory management playing games on my aging PC XT in the early 90s.
I ended up a infrastructure guy, not a programmer, but that exposure was personally inspiring to me. The President almost certainly inspired a few thousand kids to take a look at programming.
Which, of course, is the problem. I'm not an American, but when I was younger, there was a big push by my government to inspire kids to look at teaching. And they did. In droves. Out of interest, a quick tally of the high school friends I kept in touch with shows that 60% of them attempted to pursue teaching as a career in some capacity.
Naturally, when you saturate a market, you get all the problems of market saturation. Most of them struggled to find work, often landing only temporary positions, and several gave up on their dream completely after not being able to find any work in the field. Those who did find jobs as teachers have watched their incomes decline.
The fear many have is that coding is just being pushed because programming is currently, like teaching was several years ago in my area, experiencing more jobs than people. By promoting coding as "the future" we are sending the message to kids that if they just learn to program, they too can walk into a $100K per year job like programmers do today. Except it won't play out that way. It never does.
Silently introducing coding as part of the existing math/computer curriculum seems like a pretty good idea. It is a useful device. However, having people like Obama, Gates, Zuckerberg, and other famous people to talk about how important coding abilities are makes it look like a play specifically to increase worker numbers, which will end badly for anyone following that path.
I think the difference between "You should teach" and "You need to learn to code" is that coding is a practice, not a profession. I apply programming skill to IT infrastructure activity, but I'm not a dev. My wife is a financial analyst/Excel commando, writing all sorts of adhoc code snippets for BI and other purposes.
That seems to imply that we should teach things like if/while/for constructs , but do so without teaching an actual programming language? This seems like an odd statement.
Not sure I agree with car engine analogy either, it's far easier to outsource all of the mechanical work for your car than it is to outsource all computer maintenance tasks. For example a car user is not expected to be able to install third party parts to their own car and most car owners have no need to do this. However we do expect users to be able to choose and install software on their own computers.
"Could the president mean everyone should understand the basics of how software works, I don't think so, I think rather that he thinks everyone should learn how to write every piece of code they use so they can get a CS job"
Given two options, the author decides to use the less reasonable interpretation not because it is most likely but because it is easiest to write a flame-filled article about.
The Math Curriculum at my high school was as follows:
* 9th Grade - Algebra
* 10th Grade - Geometry and Proofs
* 11th Grade - Pre-Calculus
* 12th Grade - Calculus
It would have made sense to teach integrals using for loops, and some proofs using if/else statements, but we did not use either of these methods.
Presumably using some ordering where algebra < calculus. I don't know what your high school algebra was like, but mine was certainly much harder than derivatives and integrals :p
Personally whenever someone can give me a percentage quickly (sometimes at all!) I am impressed. I tend to feel math education is lacking (in America/general). I especially like articles that surface on HN with math and even more when they have illustrations/examples [1]. It's amazing how many times I had read about it before it just clicked.
[1] https://news.ycombinator.com/item?id=6683866
I remember doing "proofs" (although they were very simple) in high school.
Loops and if/then aren't very difficult, I don't remember anybody struggling with that when I was a TA. Logic, on the other hand was a learning curve for the students who dozed through 10th grade math.
Everyone needs to learn to think and create. For that coding is a great option, but not necessarily better than any other hands-on art or science. Having fun and being able to express yourself and explore your ideas is the most important part.
Personally, I think it's just as effective to buy every child a chess set.
"In the future, I want my mom to tell a robot to get 3 tomatoes, and if they have apples, get 5"
Although, I'm still not 100% convinced that learning to code is of any benefit to someone not working in the technical field, but I have to admit: touché.
"No, Your Highness, Not Everyone Needs to Learn How to Read"
Step 1: Celebrity/famous person/politician makes a bold statement
Step 2: 50 bloggers simultaneously come up with an article titled "Why x is not true". They then write the content around the headline. First one to publish "wins"
It's predictable, really - and perhaps even more so on HN. HN's is often like this:
Step 1: A post makes a bold statement or question in the headline and gets 100+ upvotes
Step 2: 5 bloggers simultaneously come up with an article titled "Why x is not true". They then write the content around the headline. First one to publish "wins"
Tedium. We've become someone's audience.
But they are important to teach children how the world operates and to make them think.
Computers are becoming more and more ubiquitous. The web is hostile. The best way we can protect people is by educating them.
Please elaborate. You can write some html? You've done hello world in JS? Mastered the basic constructs? Or have you worked on teams writing in strongly typed languages developing large OO systems? Somehow I doubt it.
It's important because the phrase is being used to imply a position of authority while telling people they shouldn't learn something.
So maybe, learn to write shell (or batch scripts). JavaScript and Python--in my experience--doesn't help me handle my day-to-day tasks.
However, learning how to do code teaches you problem solving and it does so by teaching how to break down things. This is the MOST important skill in life. That's why coding encompasses ALL the other skills, because if you know how to code you can learn anything else, heart surgery, physics, biomedicine, a summer sault, save money etc.
You can also learn how to break down things through studying something technical such as Bio Engineering, Physics or Math, however these academic studies are hard and not for everyone! In turn, coding is simply the best way to learn problem solving, because it shows you results immediately and everyone can learn it.
With everything else you can BS your way through, not with coding.
Now, there is one thing that coding doesn't teach you necessarily. It doesn't teach you is how to connect with people, how to make friends, how to excite people or how to . If you are a really curious person, it also teaches you that, because the study of social dynamics/how people communicate is also all based on logic and breaking down things. However, it takes a while to learn that.
Okay... I got fooled. I clicked on this link bait because I read it quickly and thought, hey it's from Wired and they're somewhat reputable in the topics I follow. Oops, nope, it's the Wire.
Well, you got me "thewire.com." You got my impressions with your poorly written, straw-man argument. You got my attention writing things like "plugging hot career" and "blowing air" to instill some sort of emotional response. You even got me going back to this horrible article so I can accurately quote your hyperbole in this HN comment.
Bravo. Now let's downvote this so we can stop sending them traffic.
I'm kind of torn on this because I know that a lot of people just don't have any interest in coding. Their natural aptitude flows in a completely opposite direction, they enjoy things that I could never enjoy, and I don't see why I should be forcing them to code just as they would never force me to do what they like. On the other hand pretty much everything is going to be software in a very short amount of time, and those people are going to have a hard time of it if they don't learn to code at least a basic level so they know something about what's going on. Does that make coding as fundamental as reading? Possibly.
I think some sort of remedial coding should be a requirement in high school until the student meets a reasonable standard of ability, and then they should be let off the hook to be allowed to do what actually interests them.