440 comments

[ 2.3 ms ] story [ 329 ms ] thread
He looks so very tired in that video.
Agreed. No matter how effective you think he is, or how much you like his policies, it seems pretty clear he's under tremendous stress.
Working with the congress that has the lowest approval rating in history, and the congress that has passed the least amount of bills will do that to you.
Rating Congress by "number of bills passed" is as smart as rating coders based on number of lines of code written.
I get what you're driving at, but the analogy doesn't quite work.

We want software to perform functions and we don't care about the amount of lines of code to achieve this. We also want our government to perform functions, and law is how they achieve this.

Your stance would make sense if we were in a state that didn't need improvement.

We don't want government to simply "perform functions". The best government is the least government. Like code, we want no more government than is absolutely necessary, and I say we have way too much government already. Your stance would make sense only if adding more laws would improve things.
> The best government is the least government

is not actually a fact, though you stated it like one.

>The best government is the least government.

Nope. Least is not the same as efficient or effective. You're just stating a libertarian principle.

Best comment ever.

The exact same words had formed in my mind, and then there they were, already written out for me.

The job is brutal. Look at photos of Bush Jr. before & after -- same thing.
it's only brutal because those jokers take themselves too seriously. If I were president, I'd pay myself a minimal salary, go on extended vacation, veto everything, and the only responsibility I'd take upon myself would be that big fat red button.
Ironically it is congress that sets the president's salary. Thus you must get congress to pass a bill which you then must sign. That's a lot of work!
He definitely caught the coding bug.
"When you guys are good, you should totally take a crack at healthcare.gov. That'd be awesome."
Can't they get the stuxnet guys to help with that, or even their managers who understand how to get software done? Don't tell me they don't have some overlapping skills.
To be fair, stuxnet proved that some government agencies could create code to break things; healthcare.gov is already broken, so they don't need help from the stuxnet team.
Well, stuxnet breaks things in one or two specific known ways on purpose and the healthcare site is broken in lots of unknown ways by accident. You think that is fair?
I was trying to be fair to the healthcare.gov administrators, but I agree with you.
The message is clear: top political donors want cheaper labor.
"Make no mistake, you will be able to keep that code"
"Let me-ah be perfectly clear. Yes, We Can Code."
Yep. Can't have high-paying jobs. That would empower people.

We are very rapidly moving toward a time when the labor battles of the late 19th and early 20th centuries will have to be re-fought. History is clearly showing us that the alternative to activist labor is feudalism. In "natural" markets, multiple overlapping network effects cause nearly all wealth to flow to a very tiny number of strategically positioned or connected participants. Everyone else must fight for a slice of the pie. Even in a growing-pie scenario, nearly all the growth flows to the top; a rising tide lifts only the largest boats.

The libertarian ideal of volitional culture leading to equality and general prosperity is, like nearly all other political ideals, rapidly shaping up to be false. It's becoming clear that the natural state of human affairs is feudalism, and that anything else is an unnatural state that must be maintained "artificially."

how's that state-subsidized going to college working out for everyone? Or state-subsidized home ownership?
They worked for a while. Now new approaches are needed. Everything is like that. Human progress requires both a continuous input of energy and a continuous state of change and innovation. There is no formula for progress of any kind that can be applied unchanged forever.
What happens when everyone has a high paying job?
I know where you're going with this. It's possible to ask the converse question: what happens when everyone has a low-paying job?

The answer is that deflation must occur. Home prices must fall, etc.

The problem is that deflation is incredibly painful, more painful than inflation. Activist labor is highly inflationary, which in today's debt-overburdened environment is exactly what we (meaning about 99.5% of the population) need.

You can make shoulda-coulda-woulda arguments about how we got ourselves into this mess with too much debt, but there's two problems with that. The first is the pragmatic fact that we are here and that populist-driven inflation is the least painful way out. The second is a bit deeper. One thing that's becoming clear from history is that "trickle down" economics does not work. Money does trickle down, but it trickles down in the form of debt. Why engage in entrepreneurial ventures or pay higher salaries when you can lend money at interest with less work required on your end and more assurance of repayment? There's a direct balance sheet correlation between the rich getting richer and everyone else going deeper into debt, since the savings of the rich become the debt of everyone else.

I am not, by the way, advocating "socialism" in any dogmatic sense. That IMHO is another discredited dogma. I am advocating pragmatism in lieu of a better idea, since I think all political dogmas are discredited at this point. If you don't have a systematic approach to solving a problem, the only choice you have is between winging it and doing nothing. Doing nothing here will lead back to feudalism.

Edit: one more point: Silicon Valley folks have a distorted picture of the rich. California's neuvo riche tech elite are not in the mainstream for their class. In short, your rich people are better than everyone else's rich people.

The mere existence of folks like Elon Musk and Jeff Bezos shows by virtue of comparison that the vast majority of their socioeconomic contemporaries are merely lucky gamblers who have rationalized their ascent as meritocratic via survivorship bias. If being in the 1% were truly meritocratic we would have a ton of Elon Musks launching a ton of world-changing ventures all the time. Instead we have a bunch of mediocre rich people putting their money in dumb Wall St. funds that do nothing with it but buy government bonds or create more debt (and me-too herd-driven bubbles) for the masses.

Heh... I guess another solution would be much smarter and more creative rich people. :P

Wat.

A few months ago when someone taught a homeless man to code we congratulated him on improving another man's lot in life.

We continue to give kudos to folks like CodeAcademy for teaching people how to code free of charge and introducing more people to our industry.

But when the government does it it's a conspiracy the depress wages?

Sometimes I just... nevermind, I forget where I am.

when you go to codeacademy that is your choice to improve yourself, and you either enrich yourself or quit. Fine. Very few on HN say, "you're an awful person, you tried to code on codeacademy and couldn't do it" (OK maybe someone might rag on a non-technical MBA that tries to pull the strings on engineers without understanding the damage they are causing).

When the government urges people to go do things (presumably to be followed by things like subsidies), it is a recipe for blowing up the industry by steamrolling people through it. Good examples abound: Home ownership. Going to college. Getting into STEM.

Sh... don't disagree with or poke holes in the echo chamber ...
What echo chamber?

Even better: in what way(s) is/are there not enough coders in America?

While I think more people should learn code, I think the president getting up and telling everyone to do anything that isn't applicable to... well... every-freaking-one... is stupid.

Washington is clueless in two ways. (1) It normally doesn't get new things and lags behind. (2) When it does get things, it proceeds to fail at execution or not really get them and do ham-fisted things like this. So that means that Washington is always clueless about everything.

Sometimes I think the only thing that keeps us from being invaded or otherwise run over by the rest of the world is that nearly all other governments are at least as incompetent as ours.

I agree. How many of those making laws right now know anything about technology let alone how to code? So why does Joe Public specifically need to know how to code? It would be much better to teach people math and proper grammar, that would get them much further in life.
What do you mean by proper grammar? Stuff like using "you and me" correctly and not falling into the "you and I" prestige English trap?

People acquire proper grammar naturally with their native language.

Proper grammar, for practical purposes, should be defined as "is capable of talking in a way that will not put them at a disadvantage in job interviews". Use of the the word "ain't" probably isn't worth worrying about; stunted vocabulary and inability to match tenses probably is.
Yes, this is exactly what I meant. I'm not pedantic enough about the "you and me" stuff, or even fully correct in my own punctuation and I'm a native English speaker. But knowing the difference between "there, their and they're" is very important for example.
It seems like you might be more concerned with people knowing how to communicate well. Knowing how to format their thoughts so that they will be understandable through conversation or text. The ability to adapt this formatting process to fit the audience they are trying to reach.
Yes, that also. As a programmer, half the battle in trying to understand an issue exactly what you have just stated. In my job the second part is also very true, tech speak for other developers, business/marketing for everyone else. But I've found this applies to all walks of life.

To me, programming comes down to breaking a problem down into smaller pieces, which is basically like algebra. My first internship (way back) required us to carry out a written test: here are some simple algebra equations, you have a basic calculator with one (or two, can't remember) memory bank, write out the exact exact key presses to solve the equations. To me it was simple, but apparently not to everyone.

It's stuff like this which the education system should already be teaching, work on improving that rather than trying to get _everyone_ to code. Coding is not for everyone, your doctors, lawyers, actors, artists and many others are not going to need it

That's mostly an issue with English spelling---which is an attrocious system.
Possibly, I presume you mean because it is not phonetic? But that is not going to be so easy to change... My biggest gripe of the modern school leavers is when dey ryt n txt spch & i hv 2 decifa evry wrd. That's ok in an actual text message, but I've heard of stories where it has been carried over to exams, CV's and the workplace.

Anyway, that's what grinds my gears :)

Oh, that's mostly a failure to communicate in the prestige dialect of English.
You seem to have a big gripe about the English language. There is nothing prestige about it, some of the upper class may like to pretend there is but it's just a means of communication like every other language and I would make the same observations about those too.
There are different version of English. Please refer this most interesting paper "Grammatically Deviant Prestige Constructions" (http://fine.me.uk/Emonds/).
Do you really think the parent is talking about "nit-picky" stuff such as that ... Are you aware of no grammar problem anywhere in the US??? Really? You would have to be pretty sheltered for that to be the case.
I'm glad to be sheltered from the US, by having only visited once.
It's nice that he likes programmers. But the talking heads from DC should be encouraging people to learn job skills in proportion to the numbers needed by the economy of the future.

Clearly, an economy entirely composed of programmers is not viable. There has to be at least one other person to dig out all the basements.

Wow. Looks like Youtube comments haven't improved much after all.

Seriously, it seems like half of the comments seen on Youtube (or at the bottom of any article on a news site) read as if they could have come right from a post on StormFront.

Also, conspiracy theorists. They seem to have a blast when anything related to Obama is mentioned.
Actually, conspiracy theorists don't exist. They were invented by Obama to distract us from the real issue: who killed Kennedy?
Disclaimer: I'm a major contributor to Code.org's own tutorials.

Most of the comments here on HN are similarly shameful. How can free, high quality educational materials, and lobbying to improve access to computer science education possibly be a bad thing? I've talked to a ton of educators and technologists and they are nothing but excited, then I come here, and it's cynics and conspiracy theories.

Shameful? And the president himself is not shameful? We are witnessing the biggest information scandal in the history of mankind ie- 'Snowden revelations' - and it all happened under his watch.
Well, here on HN, there's a different undercurrent of negativity. Keep that in mind, when you read through this thread, because it's an important distinction.

On YouTube, what you'll see is a swirling vortex of stupidity from which even light itself cannot escape. YouTube comments barely even break a kindergarten reading level and represent some of the most acidic vomit society can produce. It's like a kind of caustic acid bath, which, in the same way bulimia will destory a person's teeth, YouTube comments manifest as an erosion of intellect. This is a curious result, since Google has made great efforts to curtail obnoxious behavior on YouTube, but with little effect. It appears that the lowest common denominator on YouTube has no shame, and that even when a person's legal given name is exposed on YouTube, the quality of a person's comment remain as awful as ever. This is the context of thearn4's comment.

Meanwhile, here on HN, the tone of the arguments is different, and while there will always be an amount of social and political flamebait as ambient background noise, the discussion is not the same sort of bestial braying that you might find on YouTube. The reality, though, is that the best and brightest here at HN are wise to avoid any sort of non-technical discussion, especially when the topic is politically charged and emotional. In most respects, this is due to the phenomenon known as "bikeshedding" where you'll find that the easier it is to have an opinion, the more absurdly conflicting opinions will be found, and the more intractable the topic becomes. In this case, it's easy to have an opinion about Obama, and an opinion about how practical the generalized concept of "programming" is. Thus the thread becomes a dumping ground for everyone willing to share their 2 cents. Still, a dumping ground here on HN will produce higher quality well-sorted recyclable refuse, and not the fuming vat of toxic waste you might find on YouTube.

As for the trends in this particular thread, many seem to touch on some key premises:

1. In order to develop a useful appreciation of modern computing, the learning curve of today's state of technology demands a degree of immersive dedication that will rebuke most ordinary people. In some ways this might seem like a jaded, pessimistic outlook, but many are speaking based on personal experience, and not a desire to exclude.

2. The reality of computing as a career choice is a pockmarked mine field, peppered with unique absurdities not found in other fields. The industry surrounding the production and sale of modern computing devices and related services is an active war zone, with fluid and rapid changing fronts. Conflicting interests consistently hatch plans to sabotage one another, and raise the costs to enter the field. This detail is not lost on the HN audience, and contributes to the tone of pessimism.

3. While teaching and learning are admirable aspirations, and no one will dispute that, one cannot easily dismiss certain realities of modern computing history, most importantly that there are major forces at play in this field, with deliberate designs to disinform and disenfranchise end-users of the basic functionality of the devices they may purchase, with the deliberate goal of enriching corporate profit margins. This behavior is exclusionary, regardless of any claims otherwise, and is a hotly debated and emotionally charged political topic. The very topic this video might (perhaps naively) approach. The topic of free open source software.

4. While educators will champion access to computer science education, large business will assuredly attempt to mutate the nature and success of freely available education materials, wherever any ideas presented by such education might come into conflict with a company's business model.

5. Already aware of these premises, differing factions of the HN audience will present opposing narratives for why computer science education will prove impractical and ult...

I have to say, coding is definitely not for everyone. A rather specific kind of person (such as myself) is drawn to program computers. While I enjoy it most people I know would not. Certainly having the option to take Intro and AP CS courses (both of these are available at most public high schools) is great, but "calling on all Americans," to code seems a little excessive.
HN has this funny attitude: whenever someone is "bad at math", it's the fault of our education system and the way math is taught in schools, because everyone is clearly born with good sense of logic, however coding is for some reason such a different skill, and only a selected few (aka HN readers) can truly master it.
I didn't mean to sound elitist, its not about "mastering" coding, the question is more about whether someone actually wants to code in the first place.
We see programming as a lifestyle, a vital part of our everyday lives. The goal with hour of code is to encourage people to learn programming as a utility, not necessarily as a lifestyle.
I've taught my daughter the basics of programming with Python to do things like sort her photo library. I think basic programming is a skill any American who uses a computer will find useful and the majority of Americans use a computer from day to day. Knowing programming is a force multiplier in computers. I don't know how many times I've seen someone spend 2 weeks hand editing some stupid spreadsheet that I could have written a script to do in 45 minutes.
While I enjoy it most people I know would not. There is a distinction between satisfaction && enjoyment. I find coding more satisfying than enjoyable.
This could be America's great leap forward into the 21st century.
I'd rather have a 20th century healthcare system, or a 20th century prison system, or a 20ths century set of .gov regulations, or a 20th century separation of church and state, or a 20th century social welfare system or ...

Don't get me wrong, I totally look forward to a 23rd century anti-matter power plant or whatever, but there's some huge issues to be solved first. "learn to code, but god help you if you get sick, because we won't" or "learn to code, in a for profit prison, because you smoked the wrong plant". "Or learn to code, quickly, before you get cancer, because we're business friendly now so we don't enforce environmental and food safety laws anymore"

Maybe if everyone knew how to code, we could fix healthcare.gov.
I am under the impression that this was a project management failure, not a technical failure.
No, it's because we need more coders or at least that's the essence of the problem.
You are correct. Political and bureaucratic types with no experience in building big systems called the shots until the 3rd week or so of October, and were making major change orders in August, and other changes in the week before launch. And no single manager had it as his personal, full time responsibility (although in fairness, it just occurred to me that anyone savvy in HHS would have avoided such a position like the plague). The infrastructure was grossly under-provisioned, and when the general contractor/integrator including integration testing, HHS's CMS (now "fired" and replaced by the private QSSI) finally did integration testing in the couple of weeks before launch it failed hard. But somehow, in best waterfall in practice tradition, that had no effect on the decision to launch.

As I like to say, no Google/Facebook/Lisper dream team could have possibly succeeded given the top down constraints. I can't even see a lot of the contractors putting in their best effort when they had to throw away so much work so often....

Being able to code "hello world" is almost useless, but knowing something about scalability would help. Even if nothing more than "its important".

I bet healthcare.gov is full of algorithms that scale just great as long as there's only one state, and one insurance provider, and one healthcare provider (which is a concise subversive political statement of exactly what's wrong with the American sick care system)

I don't think he has read the mythical man-month. Adding programmers to a late project makes it come out later.
This "learn to code" meme is getting tiresome.

Why not focus on the more critical skills in life that are more applicable to most people. Here's a big one:

1. Learn to communicate. Improve your writing and speaking skills.

Well presumably because we already are telling people to learn how to write and communicate. Public schools spend more time on those topics than probably any other. Furthermore, advocating mastery of one skill is different from advocating basic literacy in another skill.

This said, I agree that "learn to code" is tiresome. Why aren't cries of "learn basic electrical engineering" as popular? Or, if we want clear societal benefit, why not advocate learning how to swim? Thousands of American adults and teenagers drown every year; something like 36% of Americans cannot swim.

Of course "either tell people to learn how to swim, or tell them to learn to code" is a false dichotomy (both can be done at once) but I am wondering why "learn to code" gets so much attention. The amount I hear about getting the general public to code seems disproportionate.

> "learn basic electrical engineering"

Because when, outside of work and hobbies, have you ever found it useful to know basic EE? Unless you're rewiring houses on a regular basis, I can't really think of a common situation where you'd need this type of knowledge. OTOH and IMHO, everybody should know how to use a computer and have at least a rudimentary idea what the thing is capable of.

Edit: Actually, rewiring houses isn't even EE, it's whatever we call what electricians do.

A basic understanding of the physics of electricity will give you helpful insight into countless things in your everyday life; you likely don't notice this because you take such a basic understanding for granted. For example, understanding resistance current and voltage will allow you to reason about the efficiency of different sort of light bulbs (the package will give you the numbers and tell you it is good, but consumers are rightfully wary of what packaging tells them), understand how electrical heaters work, reason about their monthly power bill, etc. Knowledge of how electricity works, particularly home wiring, can save lives. Hell, just understanding what a circuit breaker is for and how to use it has the potential to save lives (and you would not believe the number of shoddy low gauge extension cables I have confiscated from my grandmother...) Even figuring out how to jump a car battery becomes much easier if you understand what you are attempting to do.

Meanwhile, since you and I can both code, we naturally inflate the importance of it. If we could not code, we would still get along in life just as well as the majority of the population (which by most reasonable accounts, is "just fine"). Basic computer literacy is much different from the ability to code, and this is only becoming more true year after year.

Don't know anything about the contemporary curriculum in US high schools, but my secondary education in physics included the basics of AC, DC, semiconducters and fundamental digital electronics, sufficient to help me fault-find a busted LED in a string of christmas lights this past weekend.

If schools aren't teaching circuits, V=IR and P=IV, I agree they should. But I'm pretty sure in many cases they are, so you're arguing with a straw man.

Not too many folks are paid to swim. Clearly some folks think that programming has career potential in the future for young folks...
In the long run the ability to understand and manipulate information via automated instructions (ie, coding) will almost surely end up being as important being able to capture down and consume ideas (reading and writing) or manipulate abstract quantities through symbology (mathematics.) It's a fundamental skill that is plain to see unless you are so entrenched in the contemporary details of things like programming languages and platforms that you've lost touch with the underlying power, leverage, and joy of it.
The joy I find in programming is no more a reason to encourage people to learn to code than the joy of plumbing is a reason to encourage people to learn to plumb. People can find joy in nearly anything, that isn't something special that coding brings to the table.

Power and leverage? Yes, coding gives you those things, in certain domains, but I do not buy the argument that teaching coding is the most efficient way of teaching these things. Trying to use coding to teach critical thinking, logical reasoning, and basic troubleshooting would surely work, but we have these things built into language and fields that is already designed to handle it first and foremost, without the material distraction.

Very few universities start their CS programs off with something other than vocational drudgery that would be pointless for anybody who just wants those nice side effects of learning to code.

Consider that in 100 years we will still have people performing some derived concept of "coding" today, whereas all of our plumbing will probably be done by the machines which are created by those people.

Coding is an abstraction on top of an ever more essential skill: directing automated symbol manipulation. It seems foundational and those fighting against it are best likened to the subset of monks who surely saw writing as a skill to be learned only by a select few and not as some universal, fundamental skill all people would need to participate in society.

The extent that programming has been required to make effective use of computers has been in freefall since computers were first constructed. I see no reason to think that this trend will not continue.

Making sure that people can effectively use computers is different from having people learn to code. I really think that anyone who insists that the later is necessary has some serious tunnel-vision.

If this were true then we'd be hearing less and less about coding education, not more. There would be less "I have an idea and need a programmer" people, and not more.

More people want to learn how to code now because they realize they are at a fundamental disadvantage in manipulating these things that are entering every facet of our lives. This is the dominant force, not the slow marginalization of the utility of writing source code vs. well established problems like those that can be solved by Excel. In any case, programmers are currently proverbial priests who are the gatekeepers to enabling this effective use of computers, which I think explains a lot of the resistance to this stuff.

> "If this were true then we'd be hearing less and less about coding education, not more."

I don't think that follows. My hypothesis is that lots of programmers think that programming is more important than it really is, and politicians wanting to get tech on their side, humor them.

You know how rural farming towns often have strong 4H clubs? I think this "teach kids to code" stuff is the tech equivalent of that. Everyone wants little jimmy to grow up just like daddy and mommy, because daddy and mommy consider their line of work to be uniquely important or special.

Those communities think it is very important for children to learn how to raise cows, or drive a tractor. Ours thinks that it is very important for children to know something about computer programming. I think that either suffers from tunnel-vision and is is trying to put children into a box.

Can you not see how programming, as a skill, and computer science, as a discipline, are fundamentally different than things like plumbing and farming?

Society is on a trajectory. Automation, information processing, software. It is well on its way to permeate literally every facet of life. If there is a more direct way to position people to not be left behind in this shift than ensuring they have a basic grasp of computer science and understand they can make computers do what they want via code, I'd be hard pressed to come up with it.

Thousands of American adults and teenagers drown every year; something like 36% of Americans cannot swim. I'm not surprised with the high level of obesity in the US.
Obesity isn't as much of a factor as you might think. With proper technique, very obese people can swim (at least 24 yards, which was the bar used for that statistic) without much effort.

Adipose tissue (fat) has a density slightly lower than that of water, so the primary concern is really keeping your head above water and not panicking (both of those are mostly technique, not really 'physical feats'). Once you've got floating mastered, an elementary backstroke will get you moving slowly through the water without much caloric expenditure.

Swimming ability seems to correspond to family income (and therefore access to pools) rather closely. Increasing the swimming skills of the general population would mostly be a matter of ensuring that school districts have pools, and making swimming lessons in PE classes a higher priority. Kids don't die because they don't know how to play badminton, but people do drown...

(Disclosure: One of my jobs through highschool and part of college was working as a swimming instructor, which is part of why this issue has my attention)

Not to mention "America's obesity epidemic" in reality means "most people have a little bit of extra flab" (based on BMI), not giant super obese people who can't get through their front doors. Most "obese" people are not in any way physically impeded from swimming.
1. Learn to listen.

2. Learn to speak.

0. Learn to think.
Funny, I thought that was the basic value proposition of the liberal arts degree.
From my experience with administration work in a bank: just a little bit of code will go a very long way. Programming very much seems to obey the 90/10 rule. For 10% of the effort, you get 90% of the reward. (Maybe work the numbers a bit and call it 80/20).

Just consider how much Excel is used in just about any business. A tiny bit of VBA can really work wonders. Sure, a guy emptying bins isn't going to be helped by learning to code, but there are a huge number of people in desk jobs where just a bit of coding ability would make an enormous difference to productivity.

In short: I'm not convinced your assertion that writing and speaking skills are broadly more important is correct.

For better or worse, most people make judgments based on how well one presents themselves and communication is a big part of this.

Even in the software field, most companies are looking for people that can communicate effectively as well as code. I know the industry has a higher tolerance for people who are talented but lack social and communication skills but there are only so many companies out there that can accommodate these individuals.

Learning to code does not mean programmer, but if you learn a little bit about creating software you will have a peak behind the curtain and will be better able to assess what is practical and what is not as well as have some sympathy for the code monkeys.
Except that not everyone will work with code monkeys. Basic computer skills and able to use applications is a lot more different than programming, and often the reason you have levels of middle management with technical and business ability to decipher and relay the important information.
But that's not STEM so it must not be valuable or worth supporting. /s
Call me a cynic, but I'm really indifferent to this entire "everyone should learn to code" nonsense. There are so many mistruths that Code.org is spreading that it's shameful. Let's get down to the biggest one: that with a "little bit of math and science" you can build the latest video game or write an app.

Buzzer #1. It doesn't take just "a little bit" of math. It takes a TON of math. Reading CLRS took me a month to master, and that was already with a background in elementary calculus using the infinitesimal approach. I'm reading Knuth's seminal "Art of," and I can immediately say that it would be absolute hell for anyone without an advanced mathematics background.

That brings us to mistruth #2: that somehow, learning to "code" will help younger people build tomorrow. That's utter bull. Learning to code will only lead to worse code: uglier, crappier, and less elegant and efficient code. Github will become a junk pile. Instead of coding, we need to teach students the programming part of computer science. Get a copy of Algorithms into every CS course and get rid of all of the silicon in the classroom. Trust me, people will learn much more meaningful things about problem-solving that way. Isn't that what writing code really sets out to do? You know, SOLVE PROBLEMS? Just code is NOT going to help that at ALL.

Then there's problem number 3, and probably the largest one: it assumes that programming is something we need EVERYONE to learn. EVERYONE. Yes, that is Code.org's goal. EVERYONE SHOULD CODE.

You know what, fuck it and let's teach EVERYONE TO BE A MECHANIC. Right? Why the hell not? It's like programming. Only that nobody in their right minds would tell people to make mechanical engineering a part of the curriculum. But people insist on doing the same for CS, as if it's any different.

I could go on about this for days. But forget it, Atwood's explained it far better than I ever could.

––––––––––––––––––––––––––––––––

originally posted in the original discussion located here: https://news.ycombinator.com/item?id=6873136

"Only that nobody in their right minds would tell people to make mechanical engineering a part of the curriculum"

At the elementary school level, my kids attend a psuedo-STEM school and sadly you're not too far off the mark. Its pretty much that and civil.

Civil is actually a good one for kids. Give them a beach and some water buckets and shovels and they're happy for days if not weeks. Some clay and dirt works even better although filthier. Its pretty much outdoors only due to the mess, so the kids are stuck with a mostly MechEng STEM

Do US schools not have "shop" class that teaches this I certainly did wood and metalwork and technical drawing at my UK school.
Not exactly. Those used to focus on "actually doing stuff" and tradesman type careers, which about half the grads eventually end up doing after dropping out of super expensive university. Socially that has an incredible negative opinion over the past few years (lots of marketing by the .edu and banking complex to spend more on schooling). So between irrational hatred of the trades and liability costs and/or insurance, shops have been mostly although not entirely removed.

Drafting is still borderline acceptable because its assumed you'll be an engineer and obviously the training you get in autocad 2003 at school will be about as useful on the job in 2023 as my experience with Bank Street Writer when I use vim today (In other words zero if not negative)

The STEM fad is less oriented toward practical tradesman type stuff and more toward physical learning... we're doin' it "engineering style" if we build bridges outta lego for fun time instead of playing dodgeball or having a spelling bee.

The fad is burning out... An inductive proof of all .edu fads, or all fads in general, is something like generation zero was real STEM, but n+1 was 95% of what passed for STEM in generation n and 5% whatever we used to do. Once generation n gets to a high enough number you end up doing whatever you feel like. Comes from not having a real definition, along with everyone loves a popular label, so kindergarteners attend STEM schools meaning ... um what?

Well learning the basics of technical drawing isometric views etc is till useful whether you use a pencil or auto cad.
And yet the vast majority of programming jobs do not require knowing CLRS and Knuth. Let's not confuse theoretical with practical knowledge.
Do you really need to know some science to code ? From my perspective it is not required.
With the scientific process, one could become an inventor instead of staying a simple laborer.
Electrical engineering, computer engineering, and computer science are related.

But, no, you don't need to know much about science to make phone apps or webpages. Studying a foreign language or in-depth grammar would probably be just as useful for those industries.

That being said, children going into software would benefit from exercising the parts of their brains responsible for patience, tenacity, intellect, technical reasoning, and problem solving.

A lot of people are getting attached to the "every American" aspect of things, and I think its important to note the distance between "knowing how to code" and "becoming a programmer." Amateur programming (for lack of a better term) like basic Python for data analysis or HTML/CSS to work on Wordpress sites (Hell, one of my friends who's a Social Media Manager learned Python to create some QoL scripts for her day-to-day routine.) is growing increasingly popular amongst recent grads.

"Whether you're a young man or a young woman -- whether you live in a city or a rural area -- computers are going to be a big part of future. And, if you're willing to work hard, that future is yours to shape."

It's hard to argue with the central message there, but we must be careful not to conflate that with the necessity of getting a CS degree. Every American should probably be able to change a tire. That doesn't mean every American should be a car mechanic.

I love your parallel between car maintenance and coding, and I have repeated it many times myself. I think changing a tire is a reasonable thing to expect every driver to be able to do. Likewise, I think understanding SSL errors is the kind of thing every computer user should be able to do. Not code, necessarily, but understand something about this system you trust with most of your life.
So how is learning to code going to help with basic computer use skills? One does not imply the other.
Understanding that the computer is a stupid, un-magical machine which obeys only (and exactly!) the instructions you give it is somewhat of a prerequisite for successfully writing computer programs. (Not exactly true, but it's very helpful.)

Understanding that the computer is non-magical also means that your computer users may be more likely to understand how to troubleshoot errors ("Was it something I did, or something out of my control?").

Coding doesn't teach you that. I have programmers that write commercial software opening tickets to change their shell prompt, or to enable VNC on a Linux build server because they 'can't be expected to learn how these systems work, they're programmers.'

What you want people to learn is basic system maintenance and troubleshooting.

It helps a lot in a general sense, being able to reason through how a system might work can give you a lot more confidence in figuring out where to start on a problem.

Of course when it comes to very specific issues it is always nice to have the luxury of opening a ticket and letting somebody who can do it 1/10th the time fix it for you.

I'm actually surprised how hostile HN is in these comments, considering that I thought the popular sentiment was similar. Every other day a new "learn how to code" post hits the front page, despite, I'm sure, most people who are commenting/upvoting don't need the tutorial for themselves.
I don't think the GP intended to be hostile. I think he's saying that people should learn some coding (more than they do now), but not necessarily as much as many others are suggesting (less than a CS grad does).
(comment deleted)
>I think its important to note the distance between "knowing how to code" and "becoming a programmer."

Very true. I know people who are highly educated but have no idea what computers are capable or incapable of doing.

On the other hand, more people actually know how to code than know they know how to code, thanks to Microsoft Excel. See http://research.microsoft.com/en-us/um/people/simonpj/Papers... for instance, where Excel is referred to as "the world's most popular functional language."

Maybe if everyone completed a few software projects, we would have better social appreciation for the difficulty and scale of large software tasks.
Or people might under-appreciate the complexity of software.

"A little learning is a dang'rous thing;

Drink deep, or taste not the Pierian spring".

Fair point. But computers are basically magic to a lot of people. Even having a common vocabulary would be an improvement in my opinion.
I agree that a basic understanding of computers would help people; I think that the clarity of syntax, and logical operations would help many people reason more clearly. I also think that schools should teach the history of the transistor with as much emphasis as the history of the industrial revolutions (or maybe even the civil rights movement), because of the enormous impact Shockley's innovation has had on human welfare.

I am not sure that appreciation of complexity is a worthwhile or even an achievable objective.

> I think its important to note the distance between "knowing how to code" and "becoming a programmer."

Sure, except we talk all the time about how bad hiring practices are in our industry, how bad we all are at discerning talent. So I don't really see this being a positive thing for existing developers (increasing supply and pushing wages down), though who's to say we deserve the situation we're in presently?

Large employers in this company would like to have labor costs reduced, especially for costly positions like software development. I'm not saying that is necessarily a sinister thing, but things like this should be thought of in the context of reducing labor costs. That's all it is, I think --as opposed to fancy notions about democratizing technology and so forth.

> Sure, except we talk all the time about how bad hiring practices are in our industry, how bad we all are at discerning talent. So I don't really see this being a positive thing for existing developers (increasing supply and pushing wages down), though who's to say we deserve the situation we're in presently?

In what way does high school kids learning to write simple Python scripts affect your career as a software developer? We're talking about giving students a baseline knowledge of programming here.

If you agree that teaching people to code will result in more professional software developers, which seems reasonable to me, we'll have more of them and the cost of any one of them will be reduced. And again, the skill thing is diminished because we all suck at figuring out who the talented developers are.

I'm not saying we should hoard the coding knowledge or whatever -- that cat is already out of the bag. But if the president is saying nice things about coders, maybe think about what reasons he could have for that besides the goodness of his heart.

> If you agree that teaching people to code will result in more professional software developers, which seems reasonable to me, we'll have more of them and the cost of any one of them will be reduced.

I'm not sure I can agree with that, though. The barrier to entry is already really damn low -- the kids who are seriously interested in programming are already learning to program anyway, because it only costs them their time. The net effect will probably just be that the average student will become a bit more knowledgeable about how software works, which is pretty undisputably a good thing. If you go into a high school district and make a home economics class mandatory, are half of your graduates going to become chefs? Of course not -- only a few are going to do that, and they were probably going to do it before you even made the class mandatory. The only difference is that now everyone knows how to cook for themselves.

> And again, the skill thing is diminished because we all suck at figuring out who the talented developers are.

On the contrary, I think giving everybody a baseline knowledge of programming could have the opposite effect. If you study English at a liberal arts college and blast through the Codecademy Javascript tutorial over the weekend, you can see why you might think that a career as a programmer would be good for you -- you don't have any technical friends to talk to about what you've learned, and Codecademy says you learned everything there is to know about Javascript, so obviously you must be ready for a web development position, right? You have to know what you don't know, and the problem with unqualified developers is that they don't know what they don't know. If everyone learns how to write functions in high school, then you're acutely aware that there's a whole world of stuff you won't know unless you study independently.

> I'm not saying we should hoard the coding knowledge or whatever -- that cat is already out of the bag.

To be honest, most of the objections to the "everyone should learn to code" suggestion sound like that. It seems like everyone is extremely concerned with protecting the value of their own education, no matter what the cost.

> But if the president is saying nice things about coders, maybe think about what reasons he could have for that besides the goodness of his heart.

What are you suggesting here? The president has an evil plan to destroy your livelihood?

I doubt President Obama came up with the campaign on his own and I very much doubt "pushing down labor costs for software development" is even on the list of reasons. Labor costs may ultimately come down, but it won't be due to some devious collusion between the IT industry and him.

It's more likely that this campaign to encourage programming is aimed at multiple problems from a better understanding of the tools necessary in the 21st century to making young students interested in the field again. Just possibly there is a long term hope in him that the USA can cut down its reliance on foreign help for software development, thereby, keeping jobs in the country.

If I was in his shoes, I would be concerned that the USA seems to be relying on foreign graduate students for its research in technology. Until domestic students are interested in the field again, the reliance cannot be reduced.

(comment deleted)
(comment deleted)
Most likely his motivation is the ACA website debacle. What he fails to grasp tho' is that it's not a technical problem.
I think you will find more people applying to be CS majors, not necessarily graduating with CS degrees. The weed out classes at the better colleges will put an end to anyone striving for a CS degree that shouldn't have one.

What I would expect is that the myth of just get some high school kid to do it would finally end if everyone had an idea of how high the skill cap is for coding/design.

Plus it'd be a lot easier for me to talk to people, which would be nice. It seems the only people that really get along with me these days are technically informed.

> If you agree that teaching people to code will result in more professional software developers, which seems reasonable to me, we'll have more of them and the cost of any one of them will be reduced.

If I may disagree - you're assuming that the 'demand' for software developers is fixed. But, we know that it isn't. In fact, more software developers working on software may actually increase the demand for software talent, particularly if these developers go on to start companies themselves =).

This assumes a constant supply of programming work, which is simply laughable. We probably only ever need, e.g., so many lawyers as a proportion of the population, but the demand for programmers relative to supply is accelerating. Failing to train more people now risks either simply not being able to do the work, or an opening of the immigration floodgates in which case present demand could theoretically be met and wages could be depressed. But doing this slowly through educational initiatives would be a minimal risk to salary status quo.

Keep in mind, there is virtually no one available to teach everyone to code. Many US states regard computer science as a high school elective and thereby disincentivize schools from offering it.

Then take someone like me who really likes the idea of teaching programming, but would need about three more years of college to qualify and then would see my wages cut in half, with minimal job security (initially) or advancement in salary (forever) and all the attendant disrespect that our society bestows on teachers.

Being able to teach all our kids to code would be a good problem to have.

>Sure, except we talk all the time about how bad hiring practices are in our industry, how bad we all are at discerning talent. So I don't really see this being a positive thing for existing developers

This only applies if there's no way hiring practices could possibly improve, which given the existence of some data on the subject seems unlikely. In particular, it's not too far-fetched that people with some coding literacy may make better hiring decisions than Muggles.

>Large employers in this company would like to have labor costs reduced, especially for costly positions like software development. I'm not saying that is necessarily a sinister thing, but things like this should be thought of in the context of reducing labor costs.

Reducing labor costs in the long run reduces average prices and increases real incomes. Historically, it's not usually a bad thing; in this case, real incomes[1] go up whenever cost savings are passed to consumers.

The market may not be perfect, but it's usually better than fiat and ignorance.

[1]: cost-adjusted income, see http://en.wikipedia.org/wiki/Real_income

That's a particularly cynical response to something I consider to be incredibly positive, but I think there's a lot of scar tissue in the industry from bad behavior so you may be right to be wary.

Let me tell it from my perspective. I was a finance guy whose only coding experience was a couple of CS classes in college and some excel coding at my job in ibanking. When I decided I wanted to start a company, the first thing I did was spend three months of teaching myself how to do some basic coding. I did the Udacity classes and Codacademy. I read up stuff online and did bash tutorials. I spent 4-6 hours a day doing this because I wanted to be serious.

Today, I'm the CEO of a lightly-funded startup that just got our TechCrunch bump last week. I do all the front-end design and development because of resource restraints (I'm okay at it; not great). But the biggest takeaway from learning to code was not the work itself, but how to talk to developers and manage their time and resources. When I draw up requirements for our dev team, I have a baseline knowledge of what's easily do-able, what's quick vs. what's long, what we can hack and what we need to build to scale. If I started a company in China, I'd expect to learn a little Chinese. Why isn't this the case for people who work in technology?

Now back to the President's announcement. As he stated, software is eating the world and if we want a generation of consumers to have some knowledge of how their world works, then a baseline education in software is critical. Thanks for reading.

Why'd you leave IBD/VC?
Before, I built pitch books and excel models and funneled money from one place to another, taking a cut.

Today, I build websites that democratize content (okay that's a bit hyperbole). I just feel better about my life choices now that I'm building something substantive.

Being an entrepreneur is a great experience for anyone who can cut it. I also think it should be a necessary pre-req for investors to be a founder at least once. I do miss the money and lifestyle though...

I was curious because I recently finished my two analyst years in ibd (@ a bb), but switched into PE instead of a startup, which I was considering. Always interesting to hear the other side.
Large employers (or any other corporations) don't see labour costs as an end in it of itself, but merely means to an end: the ends being (whether in the long term or in the short term) making money. They could pursue the ultimate "throw more bodies at the problem" strategy, but per Brooks it is known not to work; companies that do so are penalized by the market.

On the other hand engineers can't choose between working many low-satisfaction jobs simultaneous or working for one high-satisfaction job -- so they choose jobs that maximize their satisfaction. While there's low marginal value in higher salaries past a certain point (so other factors, e.g., for me it's working on interesting things take over); however, significant sub-market compensation (in terms of both salary and stock) -- compared to what an individual of similar ability, experience, and location would get in a company of similar size, age, etc... -- does greatly decrease satisfaction.

That gives: engineers want to maximize their satisfaction which requires not being underpaid; companies want to maximize the money they make, but can take many different approaches to this.

So at the end, the market "chooses" to hire fewer, but strong engineers through a combination of university recruiting (and paying high salaries even to new graduates), tolerating a certain degree of churn among early-career software engineers, and also aggressively going after a smaller cadre of experienced programmers who can also mentor talented but less experienced new-hires and interns.

So no, I don't see the scenario you describe as happening. Instead, I'm not alone (http://en.wikipedia.org/wiki/Average_is_Over) in thinking that similar trends will occur (or, rather, are already occurring unseen) in other white collar jobs, as well as many skilled blue collar jobs. Company finance departments will want to hire workers who are able to write VBA and not rely on clunk recorded macros; manufacturers will (and already do) want to hire workers who can program a CNC machine[1]. This will not make them software engineer any more than me being able to solve a differential equation makes me a mathematician or understanding logic circuits makes me an electrical engineer (to take it one layer lower, knowing Maxwell's field equation and even using it on the job, doesn't make an electrical engineer a physicist). Circling back, this is exactly why it makes sense for people to learning programming -- if robots are automating large parts of people's job's, there will jobs that require knowledge of both the job and programming, to be able to write "userland" programs on the robot, as oppose to program the robots' embedded systems (or to write Excel VBA scripts as opposed to build Excel itself, etc...)

[1] Language they use is G-code (http://en.wikipedia.org/wiki/G-code -- note the date, it's nothing new), and yes, it's Turing-complete: http://callenblogi.blogspot.com/2011/03/bf-interpreter-in-g-...)

> Every American should probably be able to change a tire. That doesn't mean every American should be a car mechanic.

I agree with that entirely, and a similar "fix a flat" knowledge of computers should also be expected. What perplexes me is that "learn computers" is a popular thing to advocate, but I have never heard of the president asking Americans to learn their way around their car.

Candidate Obama did, pointing out that maintaining adequate tire pressure would obviate the need for more drilling.

http://abcnews.go.com/blogs/politics/2008/08/obama-pushes-ba...

Well, that is something at least. Fair enough.

I still can't shake the feeling that the "everyone must learn some coding" thing is a meme with unusually high coverage. I had not read it until I saw it linked in this thread, but I think this hits the nail on the head: http://www.codinghorror.com/blog/2012/05/please-dont-learn-t...

That's because car knowledge, at least for men until 20-30 years ago, was the kind of knowledge that fathers passed onto their sons voluntarily, without needing a presidential exhortation.
I think learning to core for a lot of people would be useful to them in heir job in the same way that learning to work on machinery is to a farmer. Even if itts not their speciality, it relevant to their job.
Ever dude should know how to work on their automobile. Especially these days, when it so easy to look things up.
I am guessing it's going to get substantially easier to program going forward. Look at amount of tools and technologies we have access to. Communities, Github, Refactoring, Intellisense. So many things just out of the box. Many ready made, battle tested libraries and frameworks. It's going to get a lot easier for a non computer science person to do some end level programming. Like dragging some blocks (just thinking out loud). Or encouraging youngsters to learn to code now will unfold a future which we can't even fully fathom now (AI, robotics, drones, medicinal advancements)
The main thing holding back software development is source code. And the reason for that is culture rather than technology. Because you aren't a 'real' programmer unless you are typing colorful complex text. That's just what the definition of a programmer is.

However, in most domains, interactive graphical tools have been invented and reinvented numerous times that are more efficient than text-only programming. Those tools remain unpopular because of a cultural failure to recognize that programming does not require colorful text that is difficult to decipher.

What? GUI programming more powerful than colorful text? You're gonna have to back that statement up.
At the same time, you can argue the exact opposite: Having to know all these libraries and frameworks makes programming substantially harder.

When I was growing up, in the 1980s, I saw 10-years-olds around me code in assembler. They were not geniuses, they just wanted to draw sprites on a screen. I don't think that, say, learning CSS would have been equally attractive.

The computer scientist, or mechanic, is the builder of the human extension. But if the user of this extension understands core rules of telling things what to do and how to do them, then the extension is more powerful. The user can adjust the extension to fit more complex needs. So i guess my argument is that learning to code is more like being a better, more capable driver of a more dynamic car. You don't need to make a business of building the dynamic cars.

And since this extends to much more than just driving cars, it just means for a higher bandwidth interaction between each other and our environment. More like speaking a better language that packs a much greater punch. Maybe one example: if i can quickly release to consciousness an interactive system to express an idea i've had or discovery i've made, it just disseminates faster than if i were to use back and forth conversation, write a book, lecture, make a video. The packets are denser. Sure, i could wait for someone else to write the interactive system for me, but i'd have to communicate it to them. If they don't get it right then there's more back and forth, more latency. Wouldn't it be better if we were all just more capable?

>> QoL scripts

Whats QoL? Quality of Life?

Correct. Specifically, she used TweePy to grab recent followers/unfollowers and try and mine some basic information (bio, loc, etc.)
I agree. For example, my cousin is an artist, and building a web portfolio with functioning store was a requirement for graduating.
Very well put! There should definitely be a layer between software engineers and people who can 'code'. Hopefully there will be a way to categorize these types of contributors so enterprises and the job creators of the world will know how/when to staff them.
We teach writing as a required subject in schools, without the expectation that everyone is going to be a professional writer.

We teach science without the expectation that everyone is going to be a scientist.

We teach physical education without the expectation that everyone is going to be a professional athlete.

These are all good life skills to have even if you don't learn enough to make it your career. So it should be the same with programming.

We should also be teaching how to change a tire, how to cook basic nutritious meals, personal finance, etc..

“A human being should be able to change a diaper, plan an invasion, butcher a hog, conn a ship, design a building, write a sonnet, balance accounts, build a wall, set a bone, comfort the dying, take orders, give orders, cooperate, act alone, solve equations, analyze a new problem, pitch manure, program a computer, cook a tasty meal, fight efficiently, die gallantly. Specialization is for insects.” ― Robert A. Heinlein

> how to cook basic nutritious meals, personal finance, etc..

This is already being taught (atleast here in Norway.)

Unfortunately, in the US, it isn't being taught :(
Yes it is, depending on where you go to school. 50 states are not all the same.
There were classes like this at my school at least.
I haven't been in high school for over 14 years; are they mandatory/required?
No they aren't. It's a shame.
I hate that quote. It starts fine, but then reaches a stupid conclusion. I wonder how much worse our life would have been without centuries of specialization: in science, in education, in business...
I still find value within in. Sorry! Specialization is important for society collectively, diversity is important for the individual. Balance is key.

I don't want to die gallantly though, just satisfied with whatever I've accomplished and left behind.

I can certainly agree with that. "Specialization is for insects" is needlessly insulting, though...
But true. How many jobs will you have during your lifetime? Will you only use one skill throughout all of them, or even just one?

Specialization isn't just for insects. Its for robotics and software. Anything that can't learn and evolve.

Isn't it a quote from a character in a storey? It may have been intended to be gruff or insulting, depending.
> I hate that quote. It starts fine, but then reaches a stupid conclusion.

The thing at the end is the premise that the rest comes from, not the conclusion it reaches.

You don't teach kids how to cook or manage their finances?

And people wonder why you are so obese and in debt.

Depends on who the "you" here is. Our schools do a mediocre job of teaching those things (especially finances), many families do a great job of it, and many families do a poor job of it.
I've assumed the quote was sarcastic. My sibling-comments made me question that, now.

Note: I never bothered to research the context.

Nope. It represents an 'ideal man' that Heinlein pretty consistently praises across his books.
"plan an invasion" - sounds inhuman
I take it as reading Sun Tzu's Art Of War at least once; strategy.
I agree with this quote, but "microspecialization" is the appropriate response. You might specialize on Tuesdays by one skillset, and specialize on Wednesday by another.

I think the following assertion adds a significantly interesting context to this entire debate[0]:

    All programming is Web programming.
Basically, our daily lives depend on the Web. If you do not understand the [process] of what constitutes the Web, you will be utterly mystified and frightened by it. You don't need to know how to change a tire in a practical sense, but if you cannot understand it conceptually...

For example, bank hacks and e-mail hacks. Do you need to understand how to code to change your password? Surely not. Do you need to know how to code in order to change your password in a relevant way? Probably. And doing that involves knowing how to code, in that one learns something minimally about a very interesting concept: abstract dictionaries.

[0]: http://www.codinghorror.com/blog/2009/08/all-programming-is-...

Just because we currently teach everyone trigonometry, it does not mean we should also teach everyone X. What exactly is the point of knowing how to code a little, without being very good or proficient at it, which most people won't be able to attain ? But I do agree that every school should have C.S. curricula as an option, not as a requirement
We certainly don't currently teach everyone trig...
Most people in developed countries need to handle significant amounts of information. Knowing how to code a little (even just simple loops and conditions) allows you to be an order of magnitude more productive.
Which people? Sorry but forget about most people, most programmers themselves don't need to handle significant amounts of information.

Most people need to learn how to cook, first aid, read, basic personal finance, hygiene, basic mechanical work etc etc the list is endless.

You can only chose a few at a time. And even then things are so big these days, you can probably learn one or two correctly if you were to even dedicate years learning it.

The thing is most people don't know what they want to do. That's the reason why schools force you take a variety of subjects so you could find your niche. I had no intention of growing up and becoming a developer, but here I am, all because my friend showed me a few lines of HTML. The idea is to give people a little spark and let them follow through if they want to continue down this path or not.
I think everyone should know enough programming to know where programming is an appropriate tool, even if they are not also to wield it, so that they can bring in someone else to solve it with programming, instead of throwing manpower at problems like copy pasting between documents.
Teach people to learn on their own and set their own agenda. Wouldn't that be radical.
(comment deleted)
I learned a lot of valuable math skills in public school. I was interested and paid attention. Just because some kids don't want to learn doesn't mean we should deprive the rest of the opportunity.
Interestingly, you could group your words in two ways:

good (life skills)

(good life) skills

Both apply equally!

Asking the American people to code is not going to solve the nation's problems. What it does is add one more tool a citizen can use to make him or herself more useful to society.

What the president should encourage people is to become a MAKER - a general term for DIY manufacturing.

http://en.wikipedia.org/wiki/Maker_culture

People will not learn to code unless they have a reason. Maker is more people trying to solve their own problems. It may happen that others may have the same problem and there may be some opportunity.

I agreed totally with the every american should change a tire thing. And learning to code is awesome, we need more developers, or even if people won't be developers at leafs they have some idea what is involved.

Next step, teach everyone in america, how to keep windows free of viruses... nah... maybe teaching everybody to code is easier. :)

I am 42 years old and I have never had to change a tire, not once.
Obama says a few nice things about Computer Science and encourages people to learn more about the world, and HN still manages to find every possible negative angle to trash it. Impressive!
Obama said a fundamentally ignorant statement that seems even more ignorant considering all the technical problems with Obamacare. Hacker News is just pointing this out.
You've told me nothing; you've added an irrelevancy.
Encouraging kids to try to become astronauts is not an ignorant statement despite the fact that becoming an astronaut is really hard. Telling kids to try to design iPhone apps or make video games is much less so. It's a shame that HN can't recognize what is fundamentally a good thing: a statement from the president encouraging curiosity and proficiency in computer science and programming. It's incredible to me that this community of so-called "hackers" can be so quick to shit on it. Perhaps it's an insecurity thing, and they are afraid if others learn their skills they may no longer be in the position of power they are in now?
When coca cola tells me to smile in an advertisement I don't get a warm fuzzy feeling in my heart for their advertising team that agonized for weeks over just the right kind of generic appeal to get me to drink more sugar water.
> Perhaps it's an insecurity thing, and they are afraid if others learn their skills they may no longer be in the position of power they are in now?

Most of the objections seem to boil down to this. For better or for worse, HN is an entrepreneurial community, and everyone seems to be approaching this with an ultra-logical "this policy will decrease my worth by $X" approach. Post this video on a forum that's geared toward, say, developers of open-source software and see how different the reaction is.

I agree. Generally, I think criticism comes easier than praise. And no doubt, selection bias contributes to perceived hostility in forums. But I think CS cultures like in HN especially pride themselves on detail and pedantry. Let's be honest, I think most of us here have a superiority complex to some degree. It was probably ingrained in us through debugging. "compile? damn, segfault. gotta fix ALL THE ERRORS."

Lately, I've realized the motivational impact of having a hero. Something to aspire to. Kids go after what you expose them to. This ties in to what pg said in his essay about "nerds", and I imagine it has a lot to do with the unevenness of the CS demographic. I think the president's video is great. Not all of us have to become CS grads. But for some, the meekest exposure can sow the seeds of a great career path or hobby.

"encouraging curiosity" this.

I've tried to talk to younger kids in my family about building things with computers. You'd be surprised how hard it is to get them interested, even if they play Minecraft all day.

For many of us, we got interested in programming though randomly hacking a game at one point in time. Telling kids that they can build their own games or apps and helping them potentially get interested is a big deal in itself.

One thing isn't inherently harder than the other. To put things in linear dualistic terms like

hard vs easy good vs bad moral vs immoral

can sometimes be over simplifying due to the normative nature of these concepts.

For someone who knows Vietnamese to learn Chinese is easy, but for someone who only knows English learning Chinese can be harder.

Each discipline has its' own linguistic domain. The difference between a software programmer and a rocket scientist is the rocket scientist knows a set of specific terms/vocabulary that distinguishes different parts of rocket, fuel, working process of aerospace and other stuff I don't know anything about. Not only does the rocket scientist knows all the terms, he/she also understands the relationship between each terms. It is mastery of this Linguistic Domain that make it possible for rocket scientists.

Programmer has mastery of a different Linguistic Domain and for some rocket scientists it may seem hard.

I do some what agree with you on the 'insecurity thing'. Although I think that is only a case in below stage 4 working culture (see Dave Logan, Tribal Leadership for reference on organizational culture stages http://www.ted.com/talks/david_logan_on_tribal_leadership.ht...).

Why is it ignorant? Care to explain?
You're supposed to get suspicious when a politician tells you nice things! I think it's sad that viewing this as being in the interest of reducing labor costs is cynical and "negative".
I'm critical because this video isn't doing much in the way of taking action. It'd be great if there was some follow through.

Here's an example: Obama can commit to open sourcing as much code as possible and encourage teachers to use the bug reports as a teaching tool. Children can fix the code as assignments.

How amazing would it be if you contributed to fixing Healthcare.gov as a 14 year old? Each successful bug fix from a student could get a bumper sticker: "My child fixed Healthcare.gov". Imagine the pride a parent would have putting that on their car.

Ugh, we have enough awful, unmaintainable code to deal with as it is. We really need less code now, not more.

I'd prefer it if he would call on Americans to learn to think first, or at least to meditate or something.

In the back of my mind, I secretly resent this code.org initiative. It is clearly a good effort that needs to happen, but man, I really enjoy my cozy position as a web developer in 2013 making an insane amount of money doing relatively little work.
I do think it would be a good thing if more people, preferably in management positions or office-positions would get the chance to learn to code, or at least an introduction to it.

It would allow them to appreciate the hard work that get's done on the background, make them think twice before defining deadlines and most importantly realise some of the work they do on a daily basis could be automated! In result to that they might at least consider getting in touch with a programmer and trying to find a way to make theirs own job more efficient.

But that everyone should go get a degree in CS or everybody should be able to program is to me, the same thing as saying everybody should be able to cook 3 star restaurant dishes.

Judging from the responses so far, it seems the thread is going to evolve into a similar fashion to these previous threads discussing the same topic (not to say it isn't worth discussing again - but it has come up quite often recently).

Most on HN seem to support the idea that not everyone should become a computer programmer (as a profession), but being exposed to the ideas in used in CS are very helpful for learning how to think about certain types of problems.

Personally, from a practical standpoint, I think a lot of people could benefit by learning basic scripting to automate computing tasks - I've seen way too many people doing extremely tedious tasks by hand, when a simple script could have saved them hours.

---Similar discussions---

Everybody does not need to learn to code: https://news.ycombinator.com/item?id=6237007 (74 comments)

Why everyone should not learn to code: https://news.ycombinator.com/item?id=5302157 (62 comments)

Please learn to code: https://news.ycombinator.com/item?id=3975992 (147 comments)

Please don't learn to code: https://news.ycombinator.com/item?id=3975744 (268 comments)

While I agree that it's a great mental exercise to learn how to code (and to learn the mindset that goes along with it), isn't it much more important for every American to learn how to budget? To learn how to save money? To me, those are things that are far more important to the country as a whole than understanding even basic scripting.

As a quick example, the meaning of "afford" has changed in the last 2 generations or so. To my grandparents, "affording" a car meant being able to spend the money to buy the car outright. To many of my peers, "affording" a new car means being able to make the minimum payment on the car, or even just the lease payment.

Many of my peers (meaning my specific circle of friends) don't even budget, nevermind put aside money for the future. Hell, even friends in the finance industry don't contribute to their 401k because they'll "do it later". To me, this is a problem that is very serious for our country as a whole, moreso than people learning to understand some basic code.

Don't get me wrong, I think it would be great for everyone to be able to understand how computers work at a deeper level than "magic". It's just that I think no one really bothers to teach kids how to save money, to invest, to budget their lifestyle, etc. Just an opinion, though.

Isn't that a rather ... subversive concept when a good fraction of those learning it will then apply it to the Federal budget, their state's budget and on down?
How is that subversive? It's basic personal finance. It's no more subversive than teaching kids to share toys encourages communism, in my mind.

In general, people shouldn't spend more than they make. If they spend more than they make one month a year, but save enough the other months to cover it, no big deal. I don't see how that's any different at a macro level, but I'm also not an economist.

To me it's far worse to avoid having people learn basic personal finance things than it is to avoid it, in case some people apply it to bigger things.

We have major debt problems in the population, in my opinion. The housing bubble was a part of it: buying things that one can't afford, with the assumption that prices always go up. Credit card debt being near $1 trillion (I think it's around $800b), college loans being over $1 trillion.... Borrowing has been made very easy for quite some time, but just because money is easy to get doesn't mean that the average person should borrow as much as they can (which is what I meant above when I said that affording minimum payments != affording something).

Put those numbers up against the median retirement savings, which are ~$150k for households with head-of-household aged 65+[1, Table 7]. It seems pretty obvious that we as a nation should be educating people to save for their future. I guess another solution, which would be to assume that people can't/won't save no matter what, and use the government to facilitate that "savings" (i.e. increase Social Security's role to the primary source of funds for retirement). That way we wouldn't have to worry about people subverting the system and can just trust the government to do all of the hard work for them. That may match up better with your view, if you find personal finance potentially subversive...

[1] https://www.fas.org/sgp/crs/misc/R43057.pdf

(Edited to fix typo: $8b -> $800b)

The trouble is that a simple house hold budget is very very different to that of a sovereign state.

This simplistic approach leads some (some might say most) politicians to sell dubious policies by folksy appeal to peoples perceived knowledge when in fact they are guilty of "Unconscious incompetence"

Forget coding and budgeting, I'd rather every American get 30 minutes of exercise 3 to 4 days per week. That would solve an awful lot of problems...
There has been a move towards credit rather than saving, but a big part of what you are talking about is actually just the economy tanking. People can't save. I don't have money for my healthcare, or for my taxes for this year, or for taxes for last year. The reason is that I have health problems I haven't been able to deal with. I am not uneducated and I have excellent technology skills. I don't spend a lot of money. I am not an unusual case.
>Starring Bill Gates, Mark Zuckerberg, will.i.am, Chris Bosh, Jack Dorsey, Tony Hsieh, Drew Houston, Gabe Newell, Ruchi Sanghvi, Elena Silenok, Vanessa Hurst, and Hadi Partovi. Directed by Lesley Chilcott, executive producers Hadi and Ali Partovi.

>Code.org owes special thanks to all the cast and the film crew, and also Microsoft, Google/YouTube, Facebook, Amazon, and Twitter for helping us spread the word

What the fuck is this shit? They really pumped billions in marketing!? Is America really that desperate to destroy the only real market it has left? You guys might applaud this but the only thing which this will lead to is unqualified people thinking they know how to program.

The job market will get saturated with mediocre programmers and those who really know their stuff will be too expensive to hire or get lost in the noise. We will see an increase of shit code in production. People think they can have a shot at the field which was dominated by us, the outcasts, for years.

This worries me, brothers, this worries me. If you think this is anything good, look at what happened with finances. It completely fell under the massive appeal of the mainstream crowd who thought they could become a manger and earn a quick buck. Programming is a serious art, skill and dedication you have to live up to.

It shouldn't be - and isn't - for everyone.

Every kid should be able to learn this stuff and should understand why they would want to. If we have more kids programming in 2013 then I assure you by the time they are in a position to take your job they will deserve it.
> Is America really that desperate to destroy the only real market it has left? You guys might applaud this but the only thing which this will lead to is unqualified people thinking they know how to program. <

That ship has already sailed, and in the world of corporate/enterprise software development I'd argue it was never really docked, so to speak. Hell, as recently as my last job, less than a year ago, I worked with "business analysts" who, because they put together the front-end forms of an Access database and wrote some basic SQL thought they were "coders".

They shouldn't be a source of worry to skilled programmers. These "amateurs" will never be able to take the job of a person who is truly skilled and seeking a position that actually requires that skill, at least not for any length of time.

There is some legitimate cause for concern about wages. Big companies would love for nothing more than to see a complete commoditization in the wage of software developers. Hell, I'd argue a significant number already believe that software developers are interchangeable. They'd be right a good proportion of the time, but not nearly as often as they might think (or like).

> What the fuck is this shit? They really pumped billions in marketing!?

I work for Code.org. "Billions" couldn't be any further from the truth. We operate on a shoestring. Everybody in these videos participated because they care about education, not because we paid them.

Yes, you work for Code.org but I doubt if the president is involved you get the fine numbers.
Doubt whatever you want. I'm telling you a fact: Nobody bribed anybody in either political party to participate in our campaign in any way. Code.org runs with a tiny team and an astonishingly small budget. It's the easiest lobbying job anybody has ever had to do ever.

"Hey, computers are the future."

"Yeah, you're right. And my constitutes know that too!"

"Great, do you want to be in a video that will give you exposure for supporting our great cause?"

"Sure!"

The fact that you think of programmers as a brotherhood tells me all I need to know, but I'd just like to add that the problem today is that there are an incredible number of mediocre programmers out there (many in this thread). I, for one, want it to get HARDER for mediocre products to make an easy living. The goal of teaching programming to children is to help kids decide if they even like programming. There are waaay too many kids in the US who have to wait until college to even learn programming formally.
(comment deleted)
(comment deleted)
When I was growing up in Silicon Valley, everyone learned to code using Logo in (iirc) third grade. Everyone also learned to type. It was a required part of the curriculum.

Teaching us to code didn't mean we didn't learn to communicate. We still were taught math. At no point did the small period in programming and typing done once a week somehow deprive us of critical life skills.

It did however have a dramatic effect on myself and a good amount of my class. By the time I was in 6th grade, I knew three people running their own BBSes out of their houses (this was about 1989).

Not everyone who went through Bullis Elementary went into programming, but thinking procedurally (though technically Logo is a functional language), is a valuable skill to be learned regardless. In my opinion, being able to break a large task down into simple steps is a critical life skill.

So much work could be saved if most people learned a tiny bit of scripting, or really even what code is capable of doing. My girlfriend was telling me how one of the people in her office spent a few days renaming a huge number of files, so they'd be consistently named. I cringed when I heard that - it was repetitive, followed a pattern, and could have been done in minutes with a python or perl or bash script written in an hour or two by someone with a basic knowledge of code. That's the kind of coding everyone should know - the same way everyone should be able to add columns of numbers without using their fingers.
I agree with your point. As for the example, it's the type of thing that should be built into the OS. The absence of such features in Windows is the tip of the iceberg on how modern computer OSs have failed users and even society.
>>ould have been done in minutes with a python or perl or bash script written in an hour or two by someone with a basic knowledge of code.

The same would be a day worth work in Java.

See the problem there. Its not about learning 'programming'. The scripting guy just could do it because of the familiarity of tools.

Beyond all if the people have issues identifying problems. Merely teaching programming isn't going to help.

I call on every American to learn English and possible a second language first. Then maybe we will have more ideas to code.
I would be happy if just the Obamacare website developers would learn to code.