How to take over the world

1. Take over the world.

At a high enough level, everything looks easy.

Needless to say, the devil is in the detail. Have you considered where you’re going to find a tropical island with an extinct volcano to use as a secret lair? I suspect that you have not put much thought into your insane, maniacal grin. Then there is the evil laugh – a critically important component in any world domination plan. Likewise, you will be needing minions and lots of them. These minions will, of course, have to be either genetically engineered monsters or robots capable of suddenly gaining sentience for no obvious reason. Oh, and don’t get me started on your doomsday device.

Snake lair

"Do you like my new secret lair? I had to wait for the previous owner to move out, but it was worth it."
(I can't take credit for the joke, but those snakes, they're classic Cobra snakes!

I have spent quite a bit of time on my plan. Take my minions, for example. I am planning on combining human DNA with cobra and rattlesnake DNA. My goal is to create snakes with huge braaaiiiiins, cute little arms (to hold laser guns), rattles to warn people that they are doomed and a concoction of deadly venoms for which there is NO CURE! Muuuhahahahahahah! As you can see, I am pretty sorted with my evil laugh, too. But could I do it? Am I all talk, no biochemist? Well, I know a smidgen about the subject. I know what a shaker incubator is (teeheehee), I know what a PCR machine does and what one looks like (let us be precise: I know what one specific example looks like. Yours, should you have one, may be totally different). I also know that a Toll-like receptor has something to do with mammalian immune response and that there are several. TLR4 is one of them and he’s groovy! Basically, as you have probably established, I may know what I want to do but I clearly have ABSOLUTELY NO IDEA HOW TO DO IT. Fortunately, I know that the gap between desire and ability is so whoppingly broad that you couldn’t see one side from the other with the Hubble telescope.

The problem here is that whilst I can spin a high level yarn and even use some technical terms, some of which are real, I have absolutely no idea about the low-level details that would be required to actually take over the world. Sadly, I am light years from breeding my super snakes and I wouldn’t know where to start with a doomsday device (but I think it would involve something quantum related). In fact, the best I can do is ‘draw’ my lair and enjoy the odd megalomaniac dream. 

Bottom line: you and your family can sleep easily tonight safe in the knowledge that tomorrow you will not find yourself living under a cobra overlord. This is a pity. I had great plans.

I think it works by magic

But at least I know that I am woefully unequipped to go into genetic engineering. I have no qualifications in the subject, will never have any but I’m interested enough in the subject to be unafraid of learning more. This passing interest will an expert of me not make. Where someone becomes dangerous is when they think that they know more than they do – or, for ultimate grimness, if they believe that they have achieved a level of expertise that they are quite simply light-years from achieving in reality.

Computer science qualifications are one area that I have some experience in over a decent period of time: a good couple of decade’s worth. Over this period I have seen the focus shift from how things work at a low-level to simply using them. There are highly qualified people who have absolutely no idea what is going on under the hood: they have been trained as application and computer operators, not creators and innovators.

Over the years that I have been interviewing programmers, I have met many candidates who should, at least on paper, make me look like a rank amateur. They should be able to write three compilers after getting out of bed, an operating system whilst showering and still have time to fry up some delicious bacon and sausages for breakfast. Then three questions into the interview, it turns out they knew less than Mr Pretzel Snake. He is baffling himself over a complex algorithm known as ‘what is this thing with buttons on’. Soon, he will rattlerattlerattle, then slither off to find a nice cute kitten to eat.

When you claim to be an expert in C, it is not unreasonable for you to be able to write a string copy function without needing reference material. Likewise, if terms like ‘pointer’, ‘compiler’ and ‘punch in the face’ are alien to you then you know less C than Pretzel Snake, and HE IS A SNAKE. Likewise, it is damn impolite to say that you have excellent C++ skills and yet glaze over at terms like object orientation, polymorphism or inheritance. It is a little like saying “I am the best builder in the world.” Cool, so what’s this then? “I don’t know.” It’s a brick.

It is sad that modern qualifications in computing appear to be turning out increasing numbers of computer operators. Fewer and fewer that have the faintest clue how or why they work and it’s not even rocket science (indeed, a friend of mine pointed out that most rocket science isn’t rocket science, but that’s a different subject altogether). This is an incredible shame: we have a generation of graduates who can knock out a few web scripts in some crappy language that won’t be around in a decade and have the knowledge to use a bunch of applications with an even shorter life-span. These skills are generally non-transferrable and they lead to an incredible difficulty for software development companies in finding genuinely good programmers to employ.

It is not only the fault of the education system and candidates. Technology itself has advanced to the point that the apparent complexity is frightening. Computers consist of hundreds of millions of transistors on multi-layered boards with enough wiring to run from here to Scotland and back. Back in the 80s, any old fool (like me, for instance) could build a working computer from chips – it was like a really cool join-the-dots. Furthermore, computers were so simple that a whole generation of incredible software engineers were created who understood the underlying fundamentals that enabled some extraordinary innovations in software to take place. These days, you have to understand five bible’s worth of API documentation before you can even stick your bloody name on the screen.

Cars are similar. It wasn’t that many years ago that you could open the hood and point out all the major parts: that’s the horse and those are the propellers. Hell, I am no expert, but even I managed to fix several of my previous old cars when they broke down. These days, well, you can’t even recognise the horse and it’s not because he’s wearing a disguise. The whole bloody thing is one sealed unit cuddled by computers. Oddly though, the essential architecture is the same as it used to be but the days of tinkering with the gubbins under the hood are long over for your average ‘home user’. Needless to say, the young ones no longer grow up knowing how cars work and lose a valuable source of engineering and systems knowledge.

Raspberry Pie, Hmmmm… Pie…

Squid Pie

The bottom bit is the Raspberry Pi computer, from raspberrypi.org. The top bit, obviously, is the normal quality cobra art. Go squids!

And this is why I am enthused about the Raspberry Pi. This is a super simple computer that you plug a TV into one end and a keyboard into the other and pow, zing and pizazz you have a working Linux system. About 30 squids to you, gov’ner. What it doesn’t appear to solve is making it easier for programmers to start doing things rather than having to learn incredible amounts before they can crack on. In the old days, the computers booted into their programming language and you could start immediately. You could write a program within thirty seconds of powering up your computer and it would do something fun: it is thanks to this capability that I spent several years as a teenager annoying the hell out of shop assistants by knocking out little programs that they couldn’t easily stop. Some (but obviously not all) of that jerkishness wore off as I got older, but still, Raspberry Pi will be a far greater success if the folks behind it can solve that. Get programmers programming. Immediately. With less than a page of documentation. Boot the thing into a programming language and make it a good one: one that ensures that those using it gradually pick up the details of how a computer works. They will write better code as a result. Then the entire computing industry can look forward to a new generation of programmers in a decade’s time who will innovate us into a groovy future.

In the meanwhile, I’m going to make Raspberry Pie. I will serve it with ice cream. And custard. And a crushed flake.

This entry was posted in Software development and tagged , , , , , , , , . Bookmark the permalink.