Your kids' chances of becoming programmers? ZERO
We had it all in the 1980s. Here's what went wrong...
Part One Almost overnight in the early 1980s, hordes of British kids embraced programming, as did many adults, delivering the most IT-literate workforce in the world. It was a big reason why the nosediving economy of the '70s and '80s didn’t crash and burn. Well, that or Thatcherism, you choose.
In the early 1970s and early 1980s, few business apps were written in Basic. Indeed it had started off life as a way of teaching doctors how to do Fortran – which, along with Cobol, dominated commercial coding.
But Grace Hopper’s bastard child Cobol was absurdly expensive to buy and run, Fortran was little better and they were both *compiled* languages whereas Basic was usually interpreted. This meant you could poke at it (obsolete pun) interactively and if (and when) you got the syntax wrong or fell into an infinite loop, you could quickly work out where you went wrong.
By the late 1970s, Apple PCs were beginning to appear - until 1979, the term PC had nothing to do with IBM. But because of their price-gouging in the UK, the up-to-three-times-as-expensive Apple never caught on in British schools. They didn't even hold the "we don't care what it costs or whether it works as long as we get an 'educational discount'" market which Research Machines seized and holds to this day.
In the 1970s being able to do anything to a computer at all was impressive. If you were believed. My parents, like most of their generation, hadn’t even seen one on TV.
It was more credible that their spotty 13-year-old had somehow upgraded the T-10 Chipmunk the Air Training Corps was teaching me to fly to a Harrier. At least they’d seen pictures of them, and given that the PDP-10 at Hatfield Poly cost about the same that wasn’t *so* silly.
That made us feel pretty smug and it was becoming clear that this was a good career option, which for me and a lot of others was a way up the food chain and off the council estate.
Of course going to a working class school meant I was supposed to be learning to use a lathe, though my clumsiness meant that working in a shop had also been suggested. We got our terminal because the middle-class arts graduates at the Department of Trade sent it to the wrong school. I was at Bishop’s Stortford Boys High but it was supposed to go to Bishop’s Stortford Boys College, a rather posh public school. They also sent one to the local girls grammar school, which ignored it in the hope it would go away. The tech has changed, the lack of interest from teenage girls in programming does not appear to have done.
Things they don't tell you ... It was LOUD
We used the ASR-33, the noisiest programming system in the history of the world. The keys required a good hard bash, which drove a typewriter head to smash onto paper. Often this was accompanied by the mechanical punch tape driver, which poked holes in paper noisily accompanied by the sweet melody of a modem establishing a connection. Just in case you got any peace, each new line made a bell ring and the typewriter head crash back to the start of the line. We loved it.
As a reaction to the horrors of Cobol, the nimbler C and Pascal were emerging as minimalist languages which could be compiled on relatively small machines, and for a while UCSD Pascal was the language of choice for the Apple II. I hated it on sight, but put up with its patronising tone since the code executed much faster than BASIC. I didn’t do C until I went to Queen Mary College, which had the first Unix system in the country.
The problem with ultra-pricey Apples and behemoth computers accessed by terminals was that they were a "one per school" level asset, so many schools stuck with batch processing, punch cards and filling in sheets that were typed in by data entry clerks.
This meant it could be a week or two between writing your code and getting back a printout informing you that one syntax error had stopped the program from being run. No I’m not making this up, that was how it was done.
The lipstick on that pig was painted by teachers as having made you "thoughtful" about your code rather than just banging it in and seeing what happened. We’re alone here, so you can nod silently and admit to me that’s how you code, isn’t it?
One thing that encouraged the 8-bit generation was that the crappy little programs we wrote weren’t all that much worse than what we saw and occasionally better. The “grown-ups’” machines were less interactive. We were the New Wave.
Playing the games
Since business education at schools was as thin then as now, we couldn't write business apps because we knew nothing about business (but a lot about Tudors) and since (again like now) a lot of school "IT clubs" were in effect run by the kids, games were the only thing we could write that made any sense to us.
Of course this is a for a given value of “sense”, since my code insulted other kids, generated weird patterns (just using text) and allowed you to experience in plain 7 bit flat ASCII text form the nihilistic wars between Klingons and Wombats at 115 bits per second - less than a millionth the bandwidth my nVidia GPU boasts.
Even if you were at one of the vanishingly small number of '70s/'80s schools who had a teacher who had done any useful programming in his degree, he was as much in a position to talk about accounts, stock control, or HR management as a priest is to lecture on personal integrity.
Still, not being an official subject freed us from the dross that 21st century ICT students endure. We did stuff that either we or even our teacher found interesting, which was both good and bad. The good meant only teenagers who were interested were involved and we had the level of motivation that the average teacher of a pointless subject like French could only dream of.
The bad is that if something seemed too hard or wasn’t interesting, we didn’t do it. Often we missed things simply because there was no one to point out to us that data structures more complex than arrays or divide-and-conquer algorithms would be useful.
There were almost no books on programming, I worked out most of the syntax of DEC BASIC from the error messages. Although there are now thousands of books on BASIC, there are still very few on programming itself. There's lots of help on syntax and how to use features, little to guide the nascent programmer on loop invariants, data abstraction and other vital, but non-language specific issues.