Imagine if we could expect a basic level of programming skill from everyone. Not the ability to write an operating system kernel from scratch; just the ability needed to put together a shell pipeline to get a job done, or a twenty-line script to automate some tedious task. Imagine how much that would change everyday life.
How would mass-market applications change if a tiny bit of scripting skill wasn't too much to ask? How would people's behavior change if their first reaction to any kind of tedious task was "I should automate this", and sometimes they actually could? How would public policy (especially on technology) change?
We're moving towards a future run heavily by computers; raising the baseline level of understanding seems critical to me, and it doesn't seem like too much to ask.
We still have that, in 1st world countries. (I've used the wikipedia entry for the US, but rates are similar across EU)
https://en.wikipedia.org/wiki/Literacy_in_the_United_States
> This government study showed that 21% to 23% of adult Americans were not "able to locate information in text", could not "make low-level inferences using printed materials", and were unable to "integrate easily identifiable pieces of information."
Well unfortunately like learning a foreign language if you don't constantly use those skills they are near worthless. Especially as you get older. And in one way it's quite a bit different than learning a foreign language. There is a great deal of latitude to make mistakes in, say, Spanish. If you don't have it even slightly correct people can still piece together what you are saying. With programming as everyone knows it's got to be near 100% accurate in syntax or it's not going to run and/or give correct results. I agree that being able to do things in the shell is helpful if you are somewhat regularly doing that type of work. I question how useful it is if someone learns that in high school or college and then needs to apply it to do a task years down the road.
Edit: In other words it's not like learning how to ride a bike or play tennis.
https://en.wikipedia.org/wiki/Research_Machines_380Z
Then a ZX81, then a BBC Micro
What would now be utterly useless skills if I was suddenly in need of adding some code to my work years later.
Ten years ago AJAX was just appearing [1], Web 2.0 was the buzz, and the iPhone was 2 years away. What would you teach kids today to equip them for their work in 2025 ?
[1] http://www.quirksmode.org/blog/archives/2005/11/javascript_a...
True. But the trouble with programming is that once you have the basic skills, you start thinking that anything is possible. Yet, the real problems start knocking on your door when you want to build large real-life long-lived systems with changing requirements.
Take for instance the issue of "technical debt" or "code rot". Someone who has had just a little exposure to programming might say that those issues don't exist (how could code "rot"?), whereas a manager with no programming experience will more easily accept them as part of life.
I'm willing to bet it will do more good for 90% of them than learning about Chemical Bonds, Hooke's law, solving quadratic equations, enumerating mass movement processes in geography, memorizing historic time periods, reading Dostoevsky/Kafka and whatever other nonsense we were supposed to learn during high-school education that I can guarantee you 90% of my peers (myself included) couldn't answer even at a basic level even if they passed an exam on it at some point with great scores.
Almost every office job I can think of can benefit from familiarity with programming concepts - not even knowledge - just a basic familiarity - enough so you can reason trough a simple SQL query or write a non trivial excel formula.
Plus it makes computers less frightening and magical since you have a bit of understanding of how they work.
where, may I ask, did you ever hear about Hooke's law, chemical bonds, quadratics or Kakfa? You're reference to these things, in the hopes they'd support your rather silly claim, shows that a multi-faceted education is a good thing. If you weren't the recipient of such an education, you couldn't prove your point.
problem solving, logic, etc can be taught outside of programming. I was taught first order logic through a philosophy course. it seems like you think programming can teach you all the important forms of reasoning.
Or I could have just googled "spring physics" as that's one of the few things I vaguely remember from highschool, named Kafka because that's one of the only two books I've actually read before deciding literature is boring/waste of time, chemical bonds - the same thing as "spring physics" and quadratics I actually needed in my day job which is why I said 90% - this kind of knowledge can be easily acquired if you need it.
Majority of that "multi-faceted" 4 year curriculum ended up being a waste of time, and ironically I am probably in the top % of my peers in the amount of knowledge I retained.
On the other hand basic programming is about as enabling as knowing how to do basic probability calculations or writing in formal tone. I never argued about first order logic or learning reasoning so I don't know why you're bringing that argument up - I said that basic programming lets you do stuff that's useful in majority of office work - it helps analyze/transform/collect data and interact with software in a more productive manner. You don't even need to learn programming just going trough the process should give you some insight so when you encounter a problem you can know what to search for and go trough the motions to use an existing solution (eg. knowing how to run a script you downloaded because you know what a script is and what it's supposed to do, or knowing how to modify some formula/query even if you couldn't write it from scratch)
man i feel so sorry for you. its amazing how sweeping ignorance is so easily transformed into arrogance.
I can't do that.
I have written few very basic python/java programs (maybe 200 lines max, very poor irc-bot was my triumph). And at the office I'm the local computer guru. "Let me show you how you can search a string in excel. Note that big and small letters aren't always the same thing." I shit you not.
I think over-learning this stuff really doesn't hurt. Maybe people would grasp what is easy to program and what is difficult. These days you sometimes run into attitudes like "we could ask this SQL data as excel chart, but it's probably ten thousand dollar coding project. So we don't even ask."
If you know enough programming to write a IRC bot I think you can.
I'm sure you'd figure out how to get data out of some Access like tool - eg. ERP system with tool to build custom query/reports, and I doubt you would have a hard time writing excel formulas with conditions and such.
Seeing how you used python if you found a script online that say converted some files you would know how to run that.
I'm not saying everyone needs to be a programmer but knowing the basics actually enables you to use computers much more efficiently and considering that computers are used literally everywhere nowdays it translates to productivity and real world problem solving.
I have to admit that so far I have been completely unable to use my coding skills for anything practical. There would have been a situation where HTML chart had to be converted to excel chart. It was way too corrupted to automate in any meaningful way.
But coding gives me perspective. If somebody tries to sell software at my job, I get to interview them. Nobody else there is quite as good at spotting computer related bullshit.
There is another goal though, and it mimics writing. If only the 'elite' know how to write, then history will be written by the powerful. If everyone knows how to program, this increasingly popular communication medium will be less under the control of a biased few.
Media and politicians right now are abusing the fact that a large amount of the population is tech-illiterate. People can't comment on issues that affect their lives in major, invisible ways because they don't know the implication of, say for example, banning encryption (cf. uk politics currently).
This has to change and it starts with education.
There's no reason to believe programming classes will be at all useful for anything, other than to impart false knowledge.
Humans have been cooking for thousands and thousands of years, but modern schools have no idea how to teach it, hence the epidemics of obesity, diabetes, etc. So how on Earth can they teach anyone to "code" and should that reallly be priority?
Silicon Valley VCs want everyone to learn to code because it'll be cheap grist for their mill...
Too right. I've yet to read one of these that acknowledges that.
That said I'm still on the tutoring mailing list for my university's C.S. department, and so many people jump into it and then fall off a cliff. We are forcing an entire generation into field that many will not be successful in.
IMO we're pushing a mass of people in a direction with peaks, valleys, and cliffs, without taking responsibility for the numerous negative outcomes that will ensue.
"But we need more people in STEM!"
"But not everyone wants, or will excel in, STEM!"
"..."
I love my kids different interests. I think the 'learn programming in school' is highly overrated, unless it's a component of something bigger eg. Logic, technology).
In the UK, all children are now expected to learn coding in school. What this actually means is putting 7-8 year olds in front of Scratch. AND IT WORKS REALLY WELL.
Writeup of my daughter's experience: http://reddragdiva.tumblr.com/post/127964136013/it-turns-out...
There's been a zillion simplified languages intended to get kids coding, but Scratch appears to be the one that works.
She's one of the academically-bright ones, but I asked her teacher about it and he said the average ones and the academically-bad ones also like Scratch. So it's doing job number 1 right: get the kid actually interested.
Programming/coding/software engineer is, probably, the only skill that provides high income opportunities, freedom to relocate, a global market and low financial cost of entry. Unless a kid is coming from a rich family, learning programming among other skills is her/his best bet at achieving a decent quality of life.
Also, saying that programming is just one of many skills is like saying that communication and persuasion is just one of many skills. Just as "people" skill, programming skill is a powerful multiplier.
The programmers of today have been lucky because the thing they loved to do anyway just happened to explode as an industry in a short period of time, leaving only a small supply of labour ready to fill the ballooning demand. There is no reason to think that will hold for the future. As every good investor will tell you, when everyone starts looking in the same direction, it is time to run the other way.
Some suggest that programming is something that only a small group of people can innately do. Others suggest that it is a task that the majority of the population detest. If these are true, then perhaps it will remain a viable career as most cannot or refuse to do what work needs to be done. I'm not sure I agree with either point. Programming tools like Excel are widely used already by the general population, demonstrating that they can program, that they are willing to program in some capacity, and that it doesn't meaningfully improve their economic standing when outside of a very narrow spectrum of programming – specifically what we seem to call software engineering.
I, personally, think programming related work will eventually trend towards what we see in entertainment, agriculture, etc. A small group of people will do very well, more will do the work for practically nothing just to do what they love, and everyone else will have no direct opportunity whatsoever, with, at best, passing relevance in what they do end up doing.
For a fifteen year old kid these days, if you graduate from college not knowing how to program then pretty much you are going to have a shitty life. You already need to know how to code to get pretty much any decent job -- not just for web developers, but also for marketers, designers, data analysts, biologists, filmmakers, finance, advertising, manufacturing, transportation, etc. You don't have to be a professional developer for your entire career, but if you don't know how to code then even if you want to go into marketing or whatever, pretty much the best job you'll be able to get is just harvesting leads for minimum wage and then entering the data into Excel.
Don't want to learn to code? Doesn't fucking matter, that's what society is willing to pay for.
Yeah, but they're the fraction that don't suck and aren't going away in ten years. And again, most people with jobs that require knowing how to code aren't actually developers. E.g. it's difficult to get hired as a customer retention marketer without knowing how to code, but most of those folks also aren't coding on a regular basis, if ever. It's just that when you have 500+ people applying for any decent job, the person who thought it wasn't a good use of their time to spend 3 months teaching themselves to code is almost always going to lose out to one of the other folks who did, just on the off chance that those skills actually come in handy or whatever.
Is it unfair? Maybe. But that's just how it works.
If you were to look at my HN comments from the early days of the site, you'd see that I was pretty much the poster child for saying that learning to code wasn't necessary. And back then I don't think it was, because the tools were so shitty that to be any good at it pretty much meant that you had to forgo being good at anything else, including other skills that were potentially much more valuable like business or marketing or whatever. And it's hard to pinpoint exactly when, but at some point over the past ten years that has definitely changed.