Hacker News new | past | comments | ask | show | jobs | submit login
Why we should teach our kids to code (pozorvlak.livejournal.com)
75 points by saurabh on Sept 15, 2011 | hide | past | web | favorite | 33 comments

I think we have a long way to go, both in the creation of tools that are usable by the average person with minimal training, and in the ability of users to recognise opertunities to utilise the ability of computers to make their lives easier.

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.

> creation of tools that are usable by the average person with minimal training

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 long shot, but: Do you happen to remember the title of the article? Or at least where you read it?

Computers are not like cars. Cars have a well-defined purpose, for which they have been ruthlessly optimised. Computers are more like writing. Writing is a means for expressing and conveying ideas (and here's the key bit: any ideas); computers are machines for executing instructions (and here's the key bit: any instructions). Saying that only a few people need to code today is like saying that only a few people needed to read and write in the 1500s.

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.

edit: spelling

Analogies are useful because they are analogous, not because they perfectly mirror the concept beig analogized. The argument seems to he whether we are at that point of technological ubiquity where being generally algorate is a benefit to society.

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.

> 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.

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.

And even if that does become true, should everyone know how to program them? Or be able to express ideas about algorithms?

That's like saying everyone who has money should be an accountant.

Not everyone who is functionally literate must also be able to write a screenplay or discern why Hemingway's style is superior to Tom Clancy's.

Most people don't manipulate numbers in their daily lives much, but are taught basic maths. Most people are taught to write an essay, though they probably won't do it at all in their daily lives. In the same vein, most people should be taught how programming works and do some very basic stuff, simply to get what it's about, not to practice it daily.

Everyone who has money should be able to balance a checkbook and write a simple budget.

Oh how I wish this was the reality we lived in. Sadly, it's not..

"I want to live in a mass-algorate society."

Seeing as most people are barely numerate (despite years of maths education school), I don't have high hopes for this.

I'm sad you feel that way; in most cases, you can teach an algorithmic approach without it necessarily appearing mathematical, and that could easily in turn help solve the problem you point out with "most people".

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.

I'd rather that companies who were creating cutting edge technology (software or whatever), would visit schools more often in order to inspire at least one more kid in the classroom to do something creative with their skills than become another banker or lawyer.

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.

I agree with you wholeheartedly. The problem is that K-12 teachers are paid far lower salaries than they deserve and the talented people who can inspire will take jobs at companies where they will be paid more.

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.

Where I am, K-12 teachers with a few years experience under their belt are making $80,000 per year and up. And yet, I am not sure we are any better off for it. It seems to me the problem is much more fundamental.

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.

I don't know where you grew up but where I grew up it was different. I went to Catholic school during K-12 while the rest of my friends went to public school in Brooklyn and Queens, NY. The teacher to student ratio was far greater for public school students and many did not have good parents or parents that cared. Teachers that live in the cities with large populations get paid nothing and they will not go out of their way for their students, which is needed. I was in a similar situation as you. I had lousy teachers making a lot of money and I came away learning particularly nothing from them. The school itself had protected me from outside influence which allowed me to learn on my own. 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. These are people of white, black, Asian and Indian descent. The only friend that made anything of himself went to Brooklyn Tech and is now a medical teacher at Harvard. Even he went to Catholic school with me in K-8.

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.

many did not have good parents or parents that cared.

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.

I get why we should teach our kids to code. I'm just hung up on how.

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.

From the jgc article... It's obvious to most people that illiteracy and innumeracy are problems to be tackled at school, but it's not obvious that we are now living in a world where logical and algorithmic thinking are very, very important.

I wish jcg had written more about why logical and algorithmic thinking is important.

I think a "mass-algorate" society is impossible because most people are not intelligent enough to use modern tools (computers) effectively. I don't think this will change unless we are able to invent ways to augment human intelligence on a mass scale.

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.

I believe that anybody who is able to understand highschool level math is also able to implement simple algorithms and maybe write a small game. It's not rocket surgery.

Unfortunately the proportion of people with that level of math skill is probably much lower than you think.

A study done in the UK a decade ago showed that "22 per cent of 16- to 19-year-olds are functionally innumerate" [1].

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?

[1] http://www.tes.co.uk/article.aspx?storycode=6042996

    most people are not intelligent enough 
    to use modern tools (computers) effectively
Most people have never been taught how to use computers effectively.

I for one, agree with arctangent. Unfortunately it seems to be a common trend here at hacker news, assuming that everybody could take a theoretical physics PhD while washing clothes by hand on some swamp in africa or india. I don't know why. Do many believe that they can look intelligent simply by stating that complex things are accessible to anybody? I'm getting tired of everybody talking about how their four year old kids implemented Lisp. Or how simple is to do things like computer programming. There are way more important things in life that I want my kids to prioritize at young age than computer programming. But then again, I'm a country boy, so I guess you can call me old fashioned.

On a personal annoyance note: when did 'coding' became cool again? I thought 'programming' was an accurate accepted word. 'Coding' is so 1997.

I don't know about programming games, or complex applications.

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.

>and this is just purely funcitonal programming language with strange ui.

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.

You guys are slowly walking away from the main stream concept of programming. Not that you're not right, but what's the point of the article then?

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 not sure I agree with the article. I feel neutral.

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.


Algorithmic thinking may be a useful skill but in my experience, there are down sides. Many (not all) programmers are rigid in their thinking; yes they can solve problems logically but sometimes this obstructs other ways of thinking.

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.

Interesting. I've signed the petition. I'll probably be teaching my daughter about code long before she gets to school, mind you.

I think the crucial idea here is that teaching computer programming is important not just to future computer programmers but also computer users. Not everyone will be a computer programmer, but almost everyone will be a computer user. The relevant knowledge and skills are therefore universal, like reading, writing, math, and other basics.

Guidelines | FAQ | Support | API | Security | Lists | Bookmarklet | Legal | Apply to YC | Contact