Estonia To Teach Programming In Schools From Age 6
An anonymous reader writes "With the launch of the Raspberry Pi, computers are becoming affordable again for the younger generations. Now what we need is kids learning about computers in greater detail, including what the hardware is inside the box, and how to create rather than just use software. Estonia looks to be the pace-setter in this regard, and has just announced that it is introducing computer programming learning for all children attending school. By all, I mean from grades 1 through to 12, meaning children as young as 6 will be writing their own code and producing software. The program is called 'ProgeTiiger' and is being introduced by the Estonian Tiger Leap Foundation as a pilot scheme to some Estonian schools this year. Next year the program will expand, adding programming groups for older kids who want to carry on activities outside of the classroom. Eventually it looks as though ProgeTiiger will become just another standard part of the curriculum, just like math and language studies are."
I can't honestly say I've endorsed a whole heck of a lot of ideas from Estonia, but this is a great idea. I only wish I could travel back in time and encourage my teachers to teach me and my piers programming at age 6. Then I'd probably be able to figure out this compiler error I'm getting right now.
But seriously, I hope that the U.S. adopts a similar program ASAP.
Computer programming is not such a fundamental area of study that it deserves to be elevated to the level of "math", "reading" and "writing". To a large extent this is a zero sum game. To teach programming in primary school necessarily crowds out something else. History? Foreign language? Music? Some subject other than "computer programming" is getting the shaft.
There's no basis for this statement, unfortunately.
Perhaps we should stop teaching basic math to 6 year olds as well? Math itself is pretty abstract, as it's all numbers and not anything physical. At least with programming they can see the results of their efforts play out before them.
That's the root of the issue: that programming is seen in the same light as design and manufacturing, in other words, something that only professionals with years of training should do.
It's not. Most computer users could benefit from having some (very basic) programming knowledge. For example, my dad does software translation, and he doesn't really know much about "proper programming" (I did try, unsuccessfully, to get him to learn Python), but over the years he's worked with a number of scripting languages to automate parts of his job. These days, he tends to use AutoHotkey scripts, but a number of years ago he also used Windows analogs of shell scripting and sed to automate a number of tasks, including munging (ASCII-based) document formats in various ways. He understands the basics (variables, while loops, etc.) and can use them with a simple language to make his life (much) easier.
What could Joe Average Computer User do if he knew a bit about programming? For example, he could write a userscript to fix up a gripe in website that he visits frequently. Or write a batch file or shell script to automate a daily task. Or add some more complex logic to a spreadsheet. Or write a tool to organize his music collection in exactly the way that he wants it. Or write out a long mathematical calculation into a script so that he doesn't have to type it into a calculator over and over.
Keep in mind that the steepest part of the learning curve for an average person is figuring out the initial concepts (and the younger you start, the more likely it is that you'll "get it"). Once you know the basic constructs of computer languages, you can quickly pick up on any special-purpose language. Anyone who knows, say, Javascript (or any half-decent BASIC dialect for that matter) should be able to breeze through the Python tutorial.
Now, say, teaching Software Engineering to everyone would be a silly idea. Most people couldn't care less about MVC, or proper object-oriented design.
To want to "bring the manufacturing jobs back" is a lost cause. Programming is the new manufacturing and what Estonia is doing is brilliant. More and more everything in our daily lives is governed by software. Estonia is a small country and choosing this as their national specialty is going to prove monumental to their long-term success.
They would be if Perl was their first language...
The idea that children can be "scarred for life" by learning skills that "they are not ready for yet" seems pretty common in U.S. culture. (Much less so in Europe, and even less in eastern Europe, so I'm not surprised they are doing this first in Estonia.)
The hypothesis is that if you'd teach a child something "too early" then he'd not be very good at it, and therefore feel that he "failed". This would damage his self esteem and "scar him for life".
That hypothesis has been disproven in two ways. First, children don't feel that they "failed" if they don't master a skill immediately. They enjoy the process of learning and getting better, even if it takes a long time. And they compare themselves to what they could do the day before, not to what adults can do. (They also compare themeselves to other kids the same age, and in that respect, learning a skill early is good for self-esteem.)
Second, it is acaually bad for a child when parents try to build his self esteem by only giving him tasks that he can master immediately. The good kind of self esteem comes from knowing that some things take years to master, but you can get there if you work hard.