I remember reading an article about ten years ago that described how computers were making work places less efficient instead of more. I don't think things have improved at all, in fact I believe in some areas things have actually got worse. In my workplace we now have about 5 times as many desktop computers as we did ten years ago, however we have actually reduced the amount of basic computer instruction available. The thinking is that people are now more aware of computers... This may be true, but ten years ago, the people using computers were the ones who were interested in computers and they had some idea how to effectively apply the machines power. Now days everybody is forced to use computers for all tasks, and most of them have no idea what a computer can do apart from send an email, browse the web and print out a pretty document.
I cringe as I go around the office at how little people are applying the power that is sitting on their desks. People use spreadsheets to manage budgets, but most of those spreadsheets will only use the most fundimental of formulas, and mentions of vlookup bring shaking heads and glazed eyes.
Staff listings are created in Visio org charts... only to be followed by much gazing at the chart when the HR staff have to work out when contracts are due to be renewed.
Those few staff who have some understanding of how to create macros in office are seen as alien tech gods, but no attempt is maid by those not in the know to emulate their knowledge... Maybe they fear that if they learn something new, they will be expected to be more effecient.
It is all very well to say, teach kids programming, but untill we decide that work done is measured by how much is produced, rather than how long you spend in the office I don't think we are going to get people to apply that knowledge.
So lets not call for everybody to learn to programme, lets encourage people to find the most efficient way to do things by defining how much work has to be done, and giving them encouragement to get out of the office when that work is done.
Also consider how little the tools people are using have progressed in the past twenty years too.
The fundamental issue might be that there is little incentive for the industry to invest enormous effort to enable an average person to become more productive.
Neither will lessons in a classroom likely narrow the gap to help the average consumer understand the tools.
In the middle industry can sell people software (custom or not) to temporarily solve their immediate issues.
A poor analogy and geeky wishful thinking, IMO.
Computer programming is not like writing in any way. Writing is a facility of language and a way for us to leave behind our thoughts in the past and disseminate them to others. A computer program on the other hand describes a process on a machine. They are two completely different patterns of thought. Language is literature, poetry, ideas, information, and a tool for immortalizing ourselves. Programming has been around for a mere half-century and already many of the programs that brought us here are forgotten and interesting only to a select few. While I like to read programs myself, I hardly find it an essential skill (and some days I'm afraid to admit, I wish I didn't understand it at all).
I'm afraid a "mass-algorate," society would not be nearly as useful as a fully literate society. It's a skill that is not as generally useful to the human condition. Not yet anyway. We're still working on the numeracy part which has been building for a much longer time (and yet I'm afraid we might have missed the opportunity to reach mass-numeracy). Until such a time that a computer is as ubiquitous as paper and pen or a stick and some sand -- I think algorithms and programming will be skills relegated to a privileged, nerdy class of people.
However, I believe I agree with you that technology is not at that point. (literacy, numeracy, and "algorithmacy"[?] are equally beneficial to society - technology is not the reason for this though)
If technology becomes ubiquitous enough around the world (perhaps a touch device for 80% of the world?), many someones will be making the devices more accessible to the less algorate and you're back to "who needs to be algorate?" I don't see technology as the drive to make people more algorate.
But computers are about to become more ubiquitous than paper and pen; most people do (or will soon) constantly carry a powerful computer in their pocket.
That's like saying everyone who has money should be an accountant.
Seeing as most people are barely numerate (despite years of maths education school), I don't have high hopes for this.
At the end of the day it's not about the tech, it's about the world around us - you can take an algorithmic approach to almost anything and end up with increased chances of success. This just isn't a bad thing to teach.
When it comes to technical education I think most schools are dreadfully inefficient at teaching children, I haven't met any one who felt particularly inspired by their high school (or equivalent) computer studies course.
The situation is far more dire and my concerns are that the majority of students aren't as knowledgeable of general studies. I would love for them to know how to program but many in the US have trouble even with the basics of US history.
In high school, I had two teachers who did not teach; at least not in the way we believe teachers should. They provided problems to solve, but gave no guidance on how to solve them. If you ask them any questions, they would point you to the nearest computer with internet access or a stack of books. Despite that, I feel I cam away learning far more from those teachers than I did all of my other teachers combined.
One of those teachers was quite adamant that schools would be completely unnecessary by now. I think in many ways he was right. What he failed to take into account, perhaps because of the bias brought on by his teaching methods, is that most people never learn how to learn. Without that equipment, our vast educational resources are not useful.
In the major cities, teachers are going to have to be pseudo-parents. This is not worth the effort for a salary of $35,000-45,000/year.
A great point and I imagine that plays a huge role on disabling people from learning how to learn at a young age. I was very fortunate to have parents who enabled me to explore and become passionate about learning, well before Kindergarten age.
But does pushing those unfortunate kids through a system that only emphasizes the regurgitation of information do them any good? When the teacher is gone, they are on their own. Teach a man to fish and all that...
Most of my friends, which came from the now defunct Jackson H.S. in Queens, have become drug dealers, ended up in jail, died or never went to college.
Quite literally almost everyone whom I still keep in touch with from high school is now a teacher themselves. Being a teacher may be more respectable then a drug dealer for sure, but I'm not sure it shows a success of the system. What do we gain from producing a society of teachers? A strong economy requires people creating products of value. Education itself has no intrinsic value.
Existing games and non-boring instructional material is pretty thin on the ground, and much of it is of low quality.
To be fair, most college instruction in programming is also not great, so I don't think we're intentionally stiffing kids. But if learning to code is usually painful, fewer children will want to do it.
I wish jcg had written more about why logical and algorithmic thinking is important.
Technological progress has given smart people the tools to leverage their intelligence to greater and greater extents. This has inevitably led to the situation where a small number of programmers can replace large numbers of average office workers for many common data processing tasks.
I do think that trying to teach children how to work well with computers is a good thing, but we shouldn't expect miracles to happen.
A study done in the UK a decade ago showed that "22 per cent of 16- to 19-year-olds are functionally innumerate" .
By "functionally innumerate" they probably mean "unable to manage daily living and employment tasks that require math skills beyond a basic level". (I've paraphrased the Wikipedia entry for "functionally illiterate" here.)
It's just a wild guess but this statistic probably means that only a small percentage of people can do maths to a high school level. So what proportion of people have the skills to write even the simplest useful computer programs?
most people are not intelligent enough
to use modern tools (computers) effectively
On a personal annoyance note: when did 'coding' became cool again? I thought 'programming' was an accurate accepted word. 'Coding' is so 1997.
But look how many people work with Excel or similiar - all the kids in Poland learn to use spreadsheets - and this is just purely funcitonal programming language with strange ui.
If they can understand "COUNT.IF" function and referencing cells in expressions - why couldn't they learn to write simple python srcipts.
Programming is easy to learn, hard to master. Most people don't need to learn to write elegant, correctly designed programs that are easy to extend. Most people would benefit from just knowing how to glue together simple scripts to automate what they are doing.
We don't require everybody to learn to write books, but we do want everybody to learn how to write note.
That's the key here. Variables/abstractions are grasped at the "formal operational" stage of cognitive development. A functional language with concrete elements( e.g table cells ) side steps this requirement. Reduce USEFUL APIs to concrete constructs and it'll be accessible to a lower common denominator.
So, using boolean syntax on google, is that programming too? I wouldn't say it isn't, but if we're talking about that than that already happened and the use of the word 'coding' becomes hilarious.
I'm talking about some sort of middle ground. A concrete subset of a more capable ontology.
Imagine if we had a Smalltalk OS/platform and something like Scratch was a seamlessly integrated interface for example.
Ever since I learned programming, I've found that the more I write code, the harder it is to get in the flow of other tasks that require a loose, less rigid mind set (sports, dancing, writing, music, business). So now I deliberately do things to balance these mind sets.