Could it be that being a computer programmer is akin to being a professional singer? Training can bring about great improvement, but do little for a person who has not been gifted with a basic talent? Or could a toy by the name of Cubetto prove that entirely wrong?

Like singing, computer programming – coding is what programmers themselves call it – is a field in which many have been formally trained, but in which many gifted amateurs also participate, often more successfully than the trained participants. The website Stack Overflow last year conducted a survey of developers. More than 26,000 responded. Some 48% had no formal degree in computer science, and one third had never even started such a course.

Cubetto close up

By contrast, stories proliferate across the web about holders of computer science degrees, sometimes advanced degrees, failing basic coding tests. Not failing in the sense of creating code that’s less than optimally efficient. Not failing in the sense of taking too long. Failing in the sense of being unable to create a program to do a ridiculously simple task.

One tech blogger at “Imran on Tech” had “come to discover that people who struggle to code don’t just struggle on big problems, or even smallish problems … They struggle with tiny problems.” He developed a simple problem called “Fizzbuzz” with which to test job applicants. Could they write a program to produce the results described in Fizzbuzz?

Of course, being a tech blog, the comment thread is full of code snippets designed to deliver on the problem. People who think like programmers can’t help themselves.

Can the gap between those two types of people – coders vs non-coders – be closed? I’ve long argued that basic programming with a simple computer language ought to be taught in primary school, or at least early in high school, alongside English, Maths and Science. But a new combined high tech startup and toy business, UK firm Primo Toys, has developed a toy designed to teach three year olds to code.

Cubetto parts

Instead of typing actual code*, which can be boring for just about anyone, let alone a three year old, they code by putting blocks into cutouts in a nice plywood board. Sounds like Cubetto builds on the kids’ existing skills sets! When they press the “go” button, a cute little plywood vehicle moves on a map, following the programmed instructions, turning left or right or going straight ahead. Twelve step “programs” can be created. But there’s also a “function” section which can consist of up to four steps which can reused on the main board multiple times.

It comes with an “adventure” book with tasks or missions for the kids to achieve. There are additional “Adventure Packs” available.

I was going to point out that programming languages designed to teach kids to code have been around for close on fifty years, but found out that the designers of Cubetto were influenced by the ur-kid’s-language Logo, which was first released in 1967, along with Montessori teaching methods.

I wish Primo Toys and Cubetto the greatest of success. It seems like a good way of familiarising young children with the essence of programming – creating a series of instructions which are conditionally processed, along with a method of looping or jumping within the instructions. It will be fascinating to see if by introducing young kids to this way of thinking, it will pay off in future careers.

Cubetto is available online from for $US225.

* A snippet of code, about as simple as you can get, which I wrote for use in a Pascal/Delphi program many years ago:

if count-2*int(count/2)=0
then sum:=sum-1/(2*count-1)
else sum:=sum+1/(2*count-1);
if count/999999=int(count/999999) then begin
Form1.Canvas.TextOut(30,14,inttostr(Count)+' ');
Form1.Canvas.TextOut(30,14,inttostr(4*sum)+' ')
until Count=1000000000;