Here in the UK, you have to wonder where our next generation of developers and programmers will come from. What has changed over the past twenty years that seems to be destroying the curiosity and passion we used to have for learning about computer language theory, algorithms, and programming techniques? Maybe it's a topic that is just too remote from modern life and young people's aspirations?
All this contemplation came about after reading about the new Raspberry Pi experimental computer. When I first heard about this I expected something like the old kits I used to play with back in the 80's; a row of lights that showed the binary result each time you entered a machine code operator using the row of switches and pressed the "Go" button. But things have come a long way since then. The Raspberry Pi has an O/S and UI, a development environment, and even powerful audio and video capabilities. It's pretty much a complete computer.
The idea is that kids will learn about computing using this, and older (post-school) users will take it up as a way to learn more about the internal working of computers and programming languages. It's an up-to-date version of the early home computers from Sinclair, Atari, Oric, Commodore, and others; a cheap and easy way to get into the real world of computing, rather than the esoteric and non-technical ICT (Information and Communication Technologies) stuff they teach in schools today.
I guess that, as a computer freak for more years that I care to recall, I find it hard to understand why kids don't seem to have the same passion for hardcore computing topics such as experimenting with different languages and learning about algorithms and programming techniques. Instead, they get taught how to use word processors and spreadsheets, and how to express themselves through email and social networking. Vital skills for the future, I agree, but hardly a way of raising their interest in the fascinating world of real computing.
I suppose that today's computers, tablets, phones, and other devices are more suited to producing results or integrating with lifestyles than being a useful platform for experimentation. Even writing programs has been reduced to simple drag/drop/configure tasks through the application frameworks and builders now in common use. Do you need to understand algorithmic programming and proof any longer? Do the tools remove the need for the basic skills and knowledge of programming logic and construction?
What is really startling, however, is the revelation in the article I was reading that out of 27,000 teachers who qualified in 2011 here in Britain, only three have degree in computer science. Less than 0.01 percent of new teachers have enough interest in "real" computing technologies and techniques to study it in depth. I guess there are thousands who can teach kids how to use Microsoft Word and send email, though I suspect that a lot of kids can already do that without needing lessons. And I suppose there are plenty of artistically-oriented teachers that can cover computer-based multimedia studies and creative activities. But who will kindle the desire to "know how it works" we had; something that surely must still reside in today's kids?
The aim of the Raspberry Pi project is "to bring real computing back to the classroom". The question is, who will define what "real computing" is today - and what will they decide?