A ton of people in industry don’t know what this period of time was like because they missed it or didn’t have access to computers at the time. This was the short period in history where the following two things were simultaneously true:
1. It was normal and expected to program a computer, if you had one.
2. Computers were inexpensive enough that many families could reasonably own one at home.
If you go too far back in time, computers were either expensive or made from kits, which meant that very few people had them. If you look at more recent periods in history, it was no longer normal & expected to program computers. During this period, your computer came with a manual that explained how to write BASIC, and you could get these Usborne books from the public library.
Nowadays, it is easier than ever to learn programming. There are all these wonderful tools like Scratch. It’s just that the normal way to use computers these days is to use premade software. There are tons of children who could learn to program, could even teach themselves, but who are unaware that the option exists.
There are tons of children who could learn to program, could even teach themselves, but who are unaware that the option exists.
This just isn't true, there are a billion ways into programming that there weren't in the 80s and 90s, and computers are cheaper too. Sure you don't get to tinker with your OS as casually but the scope of "learner" programming environments is so much greater. Even a keyboard isn't a necessity - look at the results from Dreams on the PS4. And Scratch is ubiquitous in (UK) schools, my son picked it up without any prompt from me.
It might just feel like kids don't want to learn programming because most people don't want to learn, but most people (you know) are now using computers compared to the 90s. So proportionally that is fewer computer users becoming programmers, even if numbers are going up!
The point is that these computers don't come with development tools installed by default and made available in the default environment. They don't provide any equivalent to the BASIC interpreters of old, or to the REPL of a Lisp Machine workstation. You can install e.g. Linux distributions that do provide the means to code and rebuild nearly any part of the installed system, but these are very much the exception not the rule.
> And Scratch is ubiquitous in (UK) schools, my son picked it up without any prompt from me.
Scratch is a huge downgrade from the likes of LOGO (a real LISP implementation, with a few syntactic conveniences to help novices) and even BASIC on the BBC Micro, which used to be taught in UK schools.
>The point is that these computers don't come with development tools installed by default and made available in the default environment.
I mean, Linux aside that's technically true. But, you got a BASIC interpreter that was pretty barebones even for the mid-80s in a PC of that era. And Turbo Pascal was a revelation when it came out because other "real" programming tools cost hundreds of dollars.
But, today, for free, you can install any number of advanced programming languages and IDEs in about 10 minutes. (And, on a Mac, Python at least comes pre-installed.)
On modern machines those are a hard to find afterthought from the POV of most users. Even if you know what you're doing, getting started with installing dev tools from the command line is non-trivial.
With an 8-bit micro, BASIC was the point and it Just Worked. These systems were toys sold with a toy language, but it was a toy language that had enough depth to teach useful fundamentals.
More, there was an ecosystem of other toy users and support sources and motivators - books, magazines, game entrepreneurs, TV shows, even just the novelty factor of having an actual computer at home - that made the 8-bit era in the UK a cultural scene.
There's no exactly equivalent cultural scene today. You need a fair level of experience to get started with modern languages, and there are no mainstream cultural drivers pushing you to do it. (There are niche drivers but they're only effective after you find them.)
You do get some motivators with entry-level HTML and web design, but they're immediately aimed at careers and professional development.
What's missing today is the combination of a toy environment which is fairly simple but can still be used for non-trivial projects, a mainstream non-niche non-professional cultural scene, and a sense of fun, play, and exploration which provides the curious with motivation.
The closest approximations are toy environments like Minecraft. They're doing a reasonable job and there's a scene of sorts around them, but it's not quite on the same scale as the 80s systems.
I had an interesting debate with a respected colleague at a British university about this once. My view was that teaching kids should be in a way that is "real", e.g. typing in Python code and not "toy" (e.g. Scratch) so that
- they can get a feel for how real-life programmers work;
- they can incrementally refine and build on what they know until they have picked up a very valuable (in terms of job market) skill
I agree Scratch is sufficient to understand loops etc. but it doesn't "scale", i.e. at some point you need to switch over from Scratch to an "grown-up" language.
Python is actually a pretty bad language for novice coders, the programming model is way too complicated and hard to get a feel for. I'm not sure how people can even manage to "learn to code" via Python alone.
I remember reading "Learning Python" in the 1.5 days and then a bit later properly using Python the 2.0 days. It seemed a lot simpler back then, and seemed like a clean powerful successor to the 8bit BASICs I started with. And nothing else at the time seemed to capture that clean easy on ramp to coding feeling, but still allowing you to go much further than eg an 8bit BASIC.
Presumably if you limited which parts of the now massive 3.10 you exposed to newbies, you could still get the same result? The very basics haven't changed too much since 20+ yrs ago. I suppose the trouble is that any web searching is going send newbies off the tracks into advanced topics pretty quickly now, but that is still likely in just about any language.
The problem is that any conversation around "learning Python" will very quickly disappear into strong opinions on setting up environments, the right way to structure everything, what is and isn't Pythonic, and so on. Shielding beginners from those kind of conversations seems to get harder and harder over time.
I think it was the immediacy combined with the lack of choice. The ZX81 "booted" into BASIC (in about 2 seconds), and there was nothing else to do. You programmed it or you asked your mum to take you to WHSmiths to spend more money than you had on a game which would take 15+ minutes to load from tape. I wasn't interested in games so I programmed instead.
It's funny...because this is exactly me. When I was a kid circa 2000, I learned to program because I found one of these exact Usborne books at the local library. The idea that people who didn't work for Microsoft could develop software hadn't exactly occurred to me until I found that book and learned the basics. Of course, I didn't have a computer with a BASIC interpreter to run the listings, so I searched for more books and ended up porting the BASIC listings to JavaScript and running them in Internet Explorer 4. That also got me into learning how to build web pages by hand.
There are more resources than ever if you already want to learn to program, but it's still hard to cross that threshold from using computers to realizing that learning to program them is something approachable. Microsoft and Apple have both always promoted this sort of learned helplessness with their users, treating the GUI like a tangible thing and not providing obvious tools that encourage programming.
> Microsoft and Apple have both always promoted this sort of learned helplessness with their users, treating the GUI like a tangible thing and not providing obvious tools that encourage programming
It's not exactly helplessness, since programming is no longer required to do the many things that you can do with the millions of apps and web sites that are at your fingertips, and you no longer need to type in (and probably debug) a long program just to play a game.
And Microsoft has actually provided BASIC for ~45 years (currently Visual Basic .NET and VBscript, as well as the Small Basic learning language), while Apple provides Swift Playgrounds (a nice onramp to Swift that can also create full apps.) And every web browser includes JavaScript.
But as you note the key part is obvious tools that encourage programming.
I too would like to see platform owners make programming onramps more obvious and easily accessible. A good start might be adding a CODE button to web browsers to bring up a user-friendly JavaScript programming environment. Another idea might be providing an installation option to include tutorial and professional programming environments. Another might be for the Xbox (and Game Pass) to include game creation tools (I also like Dreams for the PlayStation but it hasn't really caught on.)
At the end of the day though I wouldn't expect it things to change too much because programming requires a lot of effort for minimal reward compared to visiting a web site or downloading a new app or game, while commercial apps and games have largely moved beyond what a single person can create.
>commercial apps and games have largely moved beyond what a single person can create.
The creators of collosal hits such as Stardew Valley, Undertale, Five Nights at Freddy's and Minecraft might object this sentiment. It's entirely possible (not easy though) to create a successful game on your own that competes and surpasses large studios.
>> There are tons of children who could learn to program, could even teach themselves, but who are unaware that the option exists.
> This just isn't true, [...]
Let me get this straight... you're saying that children are generally aware that they can learn to program, and that children who aren't aware of these opportunities are rare or something?
I must be misunderstanding something here, because that sounds like complete horseshit to me. I have years of experience teaching children how to program, and the vast majority show up unaware that learning to program is something within their reach.
I agree. The fact the 80s micros booted to BASIC put programming in front of you from the get go and subsequent machines hid programming away. The fact the machine came with a manual that was mostly about programming, they expected you to do that. If you wanted to play a game you often typed it in from a book (like the Usborne series). You tried to see if you could cheat or change the game by messing with the numbers which exposed you to tinkering with programming.
>Computers were inexpensive enough that many families could reasonably own one at home.
Sort of. There were cheap computers like the Commodore 64. But, by the time you put together a floppy disk only PC clone in mid-80s, you were probably still looking at a few thousand dollars so maybe $6K in today's money. Not astronomical but still a pretty big purchase. Hard drives were just coming into the reach of consumers then but that would have added to the price.
A 48K ZX Spectrum (the most popular model) sold for 129GBP in June 1983. According to the first Google result I get for "uk rpi inflation calculator"[0], that's equivalent to 523GBP today. It was typically used with a television as the display, which most families would already have. The usual data storage system was cassette tapes, which were also widespread at the time, although it was common for people to buy cheap dedicated tape recorders for their microcomputers. Not as cheap as the options we have now, but most people who really wanted one could have found a way to afford it.
Right. That's why I mentioned the Commodore 64 which was probably roughly similar in capabilities and price. Doing programming on such a system was pretty different from a PC-compatible however. But it was absolutely a way for kids to get started.
Cassette tapes were an awful storage medium though. They were just about usable enough for loading software from previously written tapes, and even that was slow. Floppy disk media was a total game changer, allowing for some amount of actual productive work even on the old 8-bit machines.
They weren’t ideal, but I owe my career to writing games for the ZX Spectrum and distributing them on cassette. It wasn’t until 1988 that I was able to get an Amstrad PC1512 with floppy drives.
A commodore 1541 disk drive for the C64 originally cost 300GBP on it's own at launch (1982 prices before inflation). That's more than the cost of a home computer at the time just for the drive. That's why careers were started with cassette tapes regardless of the limitations.
BASIC with line numbers and GOTOs was fine as far as it went. And I did some programming in that vein for both games and engineering utilities. But I moved on pretty quickly.
I programmed for years (1981-1985) with line numbers and cassette tapes. In hindsight, yes, it was tedious, but you don't know what you don't have. I do remember being amazed at how fast a 3" [sic] floppy disk was when I finally got one. I don't think I have ever used a BASIC without line numbers to this day.
I feel fortunate that, as a child of the early 80s, by the time I started programming (age 8 or so), it was the late 80s and these personal computers were available for cheap at yard sales. One of the first I owned was a VIC20, which I think I bought (or convinced my parents to buy) with all the peripherals at a garage sale for $30. I got a C64 soon after in a similar way.
A few years later, my dad would bring home IBM PC XTs and ATs they were throwing out at his work. The rest is, as they say, history.
I loved these books, and I'm pretty sure I had almost the complete library. A few of these books, a curious kid, and a simple computer that boots directly into BASIC, with no distractions.
One thing that was amazing about this time is that even a 10yo (as I was) could understand almost everything that was going on in those machines (in a functional way, if not the finer details). Then as we grew up the programming world became more complex, and we were able to track that complexity as it happened.
I don’t envy new programmers today who have to contend with vast complexity even to do the simplest of things.
I, too, miss the days where it was possible to understand every component, every bit, every abstraction inside a computer. It’s virtually impossible now, not least because there are so many microcontrollers and microprocessors running proprietary firmware in any given PC or smartphone. I’ve thought about this a lot recently, and understand that a lot of this complexity comes from the security landscape today (we run far more programs concurrently, and don’t want them spying on each other while we use our computers for sensitive operations like banking and communications); I wonder if we’re on the cusp of a solution to the complexity of learning to code with modern sandboxing/containerisation - rather than target the underlying hardware or even the host OS, the 99% will target a common, inherently secure sandboxed VM of sorts (with first class support on the host OS, sort of what Sun hoped to achieve with Java’s “write once, run everywhere” idea). Sure, there would always be software that would have to run on the underlying platform but I theorise that 99% of software could target the sandbox. The pieces are all there - containerisation, immutable operating systems, etc.
I would happily trade all the complexity I have to deal with daily, if there was a common, cross platform, secure, open and well integrated sandboxing solution.
Indeed the documentation was a level that service engineers today would envy and more so techincal details at a level you only get from some serious reverse engineering/hacking today.
Kinda best way to put it is documentation was akin to what you would expect from a mature MCU today as comparable level and in some ways, more accesable and you felt you owned the computer more and had a more intermate understanding.
Though many things go that way, Cars another example and cars of that era, you could get documentation and fix yourself. Today, you under your hood might as well be a Borg cube.
not sure about "expected". Quite a few of my friends and myself got computers in this era, vic20s, c64s, Spectrums, Ataris mostly. Most of my friends just loaded games. I learnt to program mine ( I had a few of these books! ), another friend spent a little bit of time learning basic also, but pirating quickly became a thing and soon everyone had a ton of games.
Nowadays, it is easier than ever to learn programming. There are all these wonderful tools like Scratch.
It might be easier to learn, but it's harder than ever to actually do something useful with those "toy" environments. Back then, the "mainstream" computer magazines were full of source code listings, often even in Asm, for utilities that did various useful things. They created binaries in the <1k size range, with a lot of them being below 100 bytes. There was a continuum from "computer illiterate" to "master developer", with "average user" and "power user" sitting somewhere between. Now you have to fight your way through layers of "security" to even start to do something useful, and on some platforms, it's nearly impossible.
IMHO corporate interests are to blame for this gradual closing-off, because they don't want users to discover that some things they profit from are in fact extremely easy to do. There's been a bunch of articles here and elsewhere about the "war on general-purpose computing" which really started being noticeable in the late 2000s/early 2010s.
> because they don't want users to discover that some things they profit from are in fact extremely easy to do
I have to laugh at these conspiracy theories.
The real reason is the operating systems no longer come with a BASIC prompt. This is true for Windows, OSX, and that corporate Linux product.
If every operating system, including phones, came with an icon that opened to a BASIC prompt, I bet you'd see an explosion of programming competence especially among young people.
On windows and macos you can write “python” in the terminal and get a python prompt with no extra steps. (well, on windows you get a windows store pop-up to install python, but same diff.)
I’ve never used BASIC, but is it really so much more approachable/productive than python? With python’s batteries included philosophy, I’d expect it to be pretty quick for beginners. The only sticking point I can think of is GUIs
I don't think there's much friction to Python either.
$ python
>>> while True:
... print("Help, I'm trapped in a loop!")
There's a little bit more punctuation (>>> and ... don't count) but you don't have to fuss with line numbers.
These days, when someone I know is interested in learning some computer programming, I tell them to get a copy of Introduction to Computer Science Using Python by Dierbach. My own intro programming books are horribly outdated at this point, but I happen to have a copy of Dierbach's book, and I think it is pretty nice. You start up by firing up the Python REPL on your computer, and from there it talks about how computers work.
IMO, this is an easier way to start computer programming than we ever had with BASIC. The barrier to entry is as low as it ever was, the languages are a lot nicer and you can definitely get real work done with Python, and over the years we've gotten more textbooks & better textbooks.
Honestly, the real friction here is that you have to open up a terminal window and type "python". Or if you are interested in JavaScript, you have to press Ctrl+Shift+I or some other combo to bring up a REPL in whatever browser window is already open. It's not friction, it's just a little obfuscation--give someone a computer and they probably won't discover Python or JavaScript just by playing around with it, but if you give someone an Apple II, they're going to run head-first into BASIC.
kimsbox:~ $ python3
Python 3.5.3 (default, Sep 27 2018, 17:25:39)
[GCC 6.3.0 20170516] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>
(This works on 2 out of 3 most common operating system families. Just don't use the bad one :-P ).
I learned BBC BASIC first and it still holds special place in my heart. A lot of the feel of Python is similar (it also has similar goals), but it is quite a bit younger and has a lot more 'batteries included'. So I have to say I do actually prefer python for my day-to-day usage now.
The difference is that on those old 8-bit microcomputers BASIC was the standard way to write programs. The only other choice was assembly language, which was mostly used by games for performance reasons. So BASIC programs written by the user really were first class citizens.
While you technically can write a Python program in Microsoft's terrible terminal window, such a program is a very distant second class citizen in the Windows ecosystem. This adds to the friction the poster above is referring to.
Approachable? I believe it's a solid "yes". Well, QBASIC was one of my 1st exposure to programming in high school, almost 2 decades ago. Internet access was kinda limited at that time, and I could understand the basic concepts (data types, loop, condition etc) in a few weeks by studying a book. Maybe I'm biased.
Productive? Not really sure about this. But obviously Python has a nice standard library and package manager which help you install 3rd party libs easily. Not idea which modern BASIC environment which provides that. If you want to handle various networking, GUI, database etc stuffs then probably Python is easier.
I've heard this argument before and I disagree with it.
- The old "toy" environments like BASIC, back then, were not very powerful.
- The kind of thing that you would get from a 1k binary is something that nowadays you get for free with the OS. The bar for "useful" is much higher.
- There are still tons of people in the range between "computer illiterate" and "master programmer" who are doing interesting things by writing code. It's not a jump from, say, Scratch to JavaScript. You have Excel, R, Julia, Matlab, SQL, etc. There have been tons of other environments over the years like FileMaker, MS Access, Flash, Director, etc. Some of these are still around, others have evolved and been replaced. It's also relatively easy to make a basic website with Django or Rails, or write a plugin for Drupal or Wordpress, because you have some need.
It's easy to respond and say something like, "Flash is dead." Yes, there's no direct replacement for Flash, but in general, new tools are appearing at a much faster rate than old tools are disappearing. Even though there's no direct replacement for Flash, there are a bunch of approximate replacements that may serve your needs.
> Now you have to fight your way through layers of "security" to even start to do something useful, and on some platforms, it's nearly impossible.
I would love to see a walkthrough where you go headfirst into one of these layers of security that's causing you problems.
My guess is that you are working with a preconception that a "useful" something-or-other is an executable script or program. My claim is that something useful might be a Jupyter notebook, a Wordpress plugin, or a SQL query.
I'll also say this--I've met plenty of high school students who seem to be just fine making games using something like Unity, Godot, RPG Maker, Game Maker Studio, etc. As far as I can tell, the #1 hardest part of this whole process is connecting people with the right tools and resources. The problem is not that those tools and resources don't exist or have gotten worse. They've gotten a lot better! They just don't ship with your computer any more, so there's a process of discovery, which has a big impact.
The "blame" is not corporate interest in hiding simple logic, but instead the increased accessibility of computers to unintiated users. Computing for the masses needs to be easy to use, batteries included, out of the box solution - it's not a hobby, it's a product.
> It might be easier to learn, but it's harder than ever to actually do something useful with those "toy" environments.
It's hard to define 'useful,' but I'd argue that you can make useful things in Scratch. My first language was Scratch, which I learned 14 or so years ago. Although I only stuck with it for a couple years before moving onto Python (then Scheme, then C, then OCaml),
Scratch was very formative in my development as a programmer, and there are a ton of 'useful' things you can do within Scratch itself.
I grew out of Scratch after writing a 3d rendering engine for a platformer, and a neural network that played a racing game (NEAT). Both of things are fun, and I'd argue to some extent, useful, if not only to others who are learning. It was at this point that I was recommended a book on Python and, well, the rest is history.
I realize that, for some tasks, like systems programming, Scratch would be absolutely counterproductive. (though I recently recall seeing a post about writing a Linux kernel module using the language.) Nevertheless, that doesn't mean that you can't do useful things using the language. Having later developed games in C from scratch (ha!), just trying to replicate a fairly basic Scratch program with sounds and sprites and movement requires a good working knowledge of how to type, C and its compiler, SDL and related libraries, memory management, maybe how to embed Lua for scripting, etc.
None of these things are hard, per se, and I do agree that you have to jump through a number of layers of "security" to do modern development work on most platforms, but one has to admit that the environment that Scratch provides is powerful enough to create useful things, that require a non-trivial amount of work to replicate elsewhere.
> Nowadays, it is easier than ever to learn programming.
In some ways, I disagree. In the early-mid 80s, you didn't have a chorus of people on social media abusing you for your choice of programming language, as is the norm now for anyone who dares to pick up PHP (for example). You didn't have to battle with absurdly over-complex development environments, deployment options, and every man and his dog shouting at you on social media about why you're wrong from chosing framework x instead of framework y, or telling you that you're a sub-moron for thinking that it would be nice to have a running program rather than spend time battling emacs to be a "real programmer".
The world was much more insular and there were fewer choices and it was actually a lot better for it.
On top of that, the distance from what I could put together with the built-in BASIC on a Spectrum or BBC and a lot of the programs that you could buy wasn't that vast. You didn't need a studio of artists and designers and musicians to come up with a game that approximates what you'd get on a cassette. You could come up with something interesting on your own.
>>>> Nowadays, it is easier than ever to learn programming.
I think it's easier in some ways, harder in others. I learned to program in 1981, while in high school.
"Ease" involves not only access, but also motivation.
At the time, programming seemed a lot more casual and exploratory. Because displays were so primitive, you could easily write a simple BASIC program that looked just like commercial software. That was really gratifying, and gave you a feeling of power. There were useful programs with no graphics. And programming was still kind of a counterculture. There were maybe 3 or 4 kids at my high school who were interested in it, and we were all nerds.
Today, everybody has been exposed to really slick graphical software or games before they're ever introduced to programming. Making something that looks like software is a daunting task. I don't even do it any more. There is also vastly more adult interference and attention -- programming is a desirable, lucrative career after all -- meaning pressure to do it "the right way" for the sake of your "career."
It takes decades to learn how to make a song that millions of people will listen to on the radio. It takes decades to write an app that millions of people use every day to do their jobs.
You can teach somebody to play the first few bars of Stairway to Heaven (or at least something that sounds recognisably like it) in an afternoon. On an Apple II, you can write a BASIC program that looks like Ultima IV or VisiCalc in maybe a week. But it would take years of study, let alone effort, to make something that looked recognisably like Elden Ring or Excel.
It's interesting how far we've come. Even well into the 20th century, it was still possible for a teenager to compose a "hit." For example, "Lush Life" by Billy Strayhorn. If that's changed, which wouldn't shock me, it's probably due to the consolidation of the music industry, making it more conservative.
There are tons of children who could learn to program, could even teach themselves, but who are unaware that the option exists.
Oh they're aware, alright. It's hard to get them interested in coding when they can play Minecraft or zone out in front of YouTube. Whatever they do on the device other than coding is going to be far more entertaining than coding and a lot easier.
Scratch is aimed at kids and is the best introduction to programming for kids and parents of all ages and abilities
Minecraft has all levels of in-game programming from simple recipes to redstone circuits. outside the game there're procedural quests, time-based events, animated skins.. "look Daddy I spent 4 hours building this castle" - "that's great, let's find out how to make thousands of them in seconds!"
YouTube is full of programming tutorials for kids. there is a lot of crap to trim but the time is well invested
there is a balance between work and play, but often the benefits of coding bleed into the gameplay to a point where the two are happily married
the trick is finding a balance - halve screentime into educational and recreational, they still get 100% gaming/YouTube, just on a reward basis
in general, teachers at school cannot code and kids will need to be able to code in the future. it's not the teachers' fault, they weren't taught to code yet they have to teach coding. the next generations of teachers will not have this problem since they will be kids from now onwards who can code. introducing coding as a regular activity at home will benefit kids for life
I zoned out in front of BBS's, AOL, and then the entire Internet, as well as played plenty of TIE Fighter, Doom, and Age of Empires but I still managed to be interested in coding.
Those C64's and Apple ]['s came with a ton of games as well.
Ah, memories of carefully copying BASIC from these books. All Usborne books are great (and my kids love the current ones too) but these in particular were such a formative part of my learning to love coding, aged 8-10 or so.
Even if I explicitly go to the /us/ url, it still rewrites the URL and makes it impossible for me to read the content. I literally can't look at the same content as someone from a different country, and there is thus no way for me to compare.
Don't do that! IP sniffing is a terrible idea on a good day, but this is the worst. How is returning 404 ever the best choice here?
When clicking that link from another country of the European Union, I got a dialog box prompting me to select a country, with the country for my IP selected by default, but I was able to choose USA instead of the default.
Then I could see the expected content. Maybe whether that dialog box is seen or not depends on the browser used and on its settings.
I got that dialog box (having the "Welcome to Usborne" title) with both Chromium and Firefox, on Linux, but without having any ad blocker or script disabling, which could prevent the appearance of a dialog box.
It works but there is another detail. If you came from a country with a different language (e.g. Spanish) you should choose first the language and just then can select "United States".
These 1980s computer books are great and have been discussed in past HN threads.
The most striking about these books: they are more readable and enjoyable than many programming and computing books published for adults today.
The books use illustrations extensively to explain concepts, and the layouts are varied and lively to keep readers attentive. (Compare to the stranglehold of markdown for any technical documentation).
Not only are these Usborne books well-written with clear, concise explanations, they are also excellent source for inspiration and ideas for anyone writing a technical guide, tutorial or book.
My local library(US) had a few of these and I'd copied some BASIC programs them onto my Apple //c and didn't know why they didn't work all the time, specifically $CHR or anything involving peek and poke.
8 year old me knew there was something different about the comic art alongside the text, yet I couldn't explain what. Turns out - British!
The machine code books would have been useful at that time, but again, I'm 8 playing with a hand-me-down Apple with no other help. I don't know what I don't know and I have no mentorship and no internet or bbs access to download new stuff.
Kids today have access to all the video tutorials they could ever want.
e: God DAMN line numbers suck. And double god damn do line editors (think ed as opposed to vim) with no proper backspace.
I had the same problem - our family had an Amstrad CPC! It was rare to find books that had listings that worked in their entirety, but if you had a source of native listings (e.g. in the CPC case from magazine Amstrad Action) then it was possible to port some of the programs.
I was also too young in those days to be able to understand how to port PEEK, POKE and so forth, but I do credit trying to get stuff working (often in futility) toward my future interest in becoming a professional computer programmer. (Of course I'm not writing games like I imagined.) The experience of trying to parse mystery code is surprisingly similar to frustrations with finding libraries that almost but not quite solve your problem, or web layouts that look okay in most browsers until you encounter a weird screen size, and so on. I wonder if this background is what led me to being the kind of developer who greatly prefers maintenance, troubleshooting and bug fixing to new feature development.
This is how I learned to program these books were so ubiquitous in the 80s even my (very_ rural Australian) school library had a few. I’m only had a Vic 20 so had to translate the listings that tended to be aimed at the c64.
I remember the robots book. I think we found it in the gift shop in a science museum, during a grade school class field trip.
A barrier to a young kid building the robot was the difficulty of obtaining critical parts, unless you had a parent helping a lot with sourcing and bankrolling.
(In the US, an accessible Radio Shack store had some of the parts, and you could improvise some of the hobby shop materials from cardboard boxes and wood scrap. But, e.g., a matching pair of gearboxed motors were unobtainium that a kid might only find in random mail-order catalogs they were just starting to discover, at unaffordable prices.)
Today, things are much more accessible, thanks to Adafruit, accessible online retailers, Arduino, Raspberry Pi, easier access to information (not serendipity of happening to discover whatever book/magazine a library/bookstore/friend happened to have), 3D printers... even being able to easily get your own PCB design fabricated one-off, without expensive materials followed by a hazmat incident.
Specifically, as a kid, there were projects I wanted to build, but I couldn't get the parts. Now, as a grownup doing EE work under current market conditions... same thing.
I had the robots book, and I wish I could’ve pushed my father just a little more to build it with me. He had the tools and the skills, probably more than most. Reminds me that I need to build things with my kid.
I remember as a kid having that Robot book and building it. Cutting out the balsa wood templates, mounting the motors. It worked pretty well, but I managed to destroy it pretty quickly when I tried actually make it move. My programming skills were never that great.
I must have read that Better Basic book hundreds of times as a kid. So nostalgic to see those graphics again! Not sure how much of it I really understood as I was pretty young but no doubt played a big part in getting me into programming. Some of their books on other topics were awesome too I seem to recall.
Yes me too exactly! What brought back waves of nostalgia in particular were the pictures of robots storing variables in the boxes. I remember these were so fascinating to read, bringing the code alive.
Yes the robots and the boxes was the one I remembered most clearly! And also the graphics bit at the back with the shape made out of lines, I used to think that was so cool haha.
The "Write Your Own Fantasy Games" features illustrations by a Chris Riddell. Wonder if this is the same Chris Riddell who does cartoons for the Guardian, and was UK Children's Laureate from 2015-17?
Possibly - that Chris Riddell was born in 1962, and the publication date on Amazon for Write Your Own Fantasy Games (Usborne Computers & Electronics) is 26 October 1984, so he'd be 22 at the time. I was a huge fan of The Edge Chronicles as a kid.
I've found some neat, mint quality 1980's computer books just like these in furniture stores, where they fill the floor model bookcases with old books.
I had a handful of the Usborne books as a kid and they were inspiring. Seeing the covers brings back the exact feeling of being a ten year old kid besotted with microcomputers.
One of the books that's sadly not been made available from the Usborne site had a representation of what a future portable computer might look like that was hilariously off the mark while being perfectly reasonable from the point of view of its era - I recall it having what was clearly supposed to be a tiny green CRT display for example!
As a kid in 1999ish in the US, my elementary school library had a book on computers that got me into programming, and I've been trying to find the book again since then. I think the book was just titled "Computers". The book had many pictures and diagrams about lots of computer-related things, but it definitely wasn't aimed at only young kids. Among many things, it talked about computers being used by NASA, it speculated about future computers and the internet (mostly as a future thing), and it also had classic diagrams of CPUs, logic gates, and the half-adder like out of college textbooks. I'd trace out copies of half-adders in my notebook and execute it on paper to see that it added numbers correctly. One page in an aside had a small example BASIC program that immediately got me obsessed with programming when I realized how simple it was to follow.
In previous searches for the book, I found this site, and I realized the book had many similarities with the Usborne books, but I can't find it in any listing of them. I don't understand how, but the book "The Usborne Young Scientist: Computers" (1992) has some of the same content as the book I remember but it's missing a lot while also having some content I'm completely unfamiliar with. Maybe there was another lesser-known Usborne title that repackaged some of its content? If this sounds familiar at all to anyone, I have a few more notes on my memories and search for the book at https://tildes.net/~talk/is4/whats_one_thing_you_havent_been... and I'd appreciate any pointers.
I'm 100% sure, soviets copied "Better basic", I just cannot remember Russian name of book, but design is absolutely same, all smallest details, and I cannot remember anything about of source of book.
Ten-year-old me labouriously typed in the whole of the Island of Secrets to his C64, only to find that it wouldn't run due to some number of bugs. Sadly, correcting these issues was beyond my skills and patience at the time. Perhaps I'll find an emulator and see if I can finally try out that game, three decades later.
This was my exact experience as well. I was so sad that I never got it running, but maybe I'll fire up some OCR software and an emulator and finally get to play it. I remember pouring over the book and being so excited! It's more than likely that I just typed a lot of things incorrectly - I was quite young.
As someone who also cut his teeth using books like these (vic-20, with an ENORMOUS 8k ram expansion cartridge - how does one even begin to use all of that massive 11.5k ram? haha), the only modern book which comes to recreating that feel is Conrad Barsky's "Land of Lisp".
Same story as pretty much everyone else here (c64, most of these same books, typed basic)
I just looked back and I think these are some of the best written books. Thinking on it there were probably dozens of programming books but these endured because they were so good.
The overview of the set of variables that you have to store and update for a fantasy game may be the best high level view I’ve seen (if you know of a better one, let me know!)
I have a couple of these, for the nostalgia factor, and recently sent out a plea for more. If anyone has any "spare" Z80, BASIC, or similar books from that time-frame I'd love to add them to my small collection.
I came across these books for the first time when I was around 12/13, and spent hours entering the BASIC into my ZX Spectrum. Later making changes and messing around.
My all-time favourite was the Mystery of Silver Mountain - which I recently bought from Ebay for far far too much money.
99 comments
[ 4.0 ms ] story [ 24.6 ms ] thread1. It was normal and expected to program a computer, if you had one.
2. Computers were inexpensive enough that many families could reasonably own one at home.
If you go too far back in time, computers were either expensive or made from kits, which meant that very few people had them. If you look at more recent periods in history, it was no longer normal & expected to program computers. During this period, your computer came with a manual that explained how to write BASIC, and you could get these Usborne books from the public library.
Nowadays, it is easier than ever to learn programming. There are all these wonderful tools like Scratch. It’s just that the normal way to use computers these days is to use premade software. There are tons of children who could learn to program, could even teach themselves, but who are unaware that the option exists.
This just isn't true, there are a billion ways into programming that there weren't in the 80s and 90s, and computers are cheaper too. Sure you don't get to tinker with your OS as casually but the scope of "learner" programming environments is so much greater. Even a keyboard isn't a necessity - look at the results from Dreams on the PS4. And Scratch is ubiquitous in (UK) schools, my son picked it up without any prompt from me.
It might just feel like kids don't want to learn programming because most people don't want to learn, but most people (you know) are now using computers compared to the 90s. So proportionally that is fewer computer users becoming programmers, even if numbers are going up!
> And Scratch is ubiquitous in (UK) schools, my son picked it up without any prompt from me.
Scratch is a huge downgrade from the likes of LOGO (a real LISP implementation, with a few syntactic conveniences to help novices) and even BASIC on the BBC Micro, which used to be taught in UK schools.
I mean, Linux aside that's technically true. But, you got a BASIC interpreter that was pretty barebones even for the mid-80s in a PC of that era. And Turbo Pascal was a revelation when it came out because other "real" programming tools cost hundreds of dollars.
But, today, for free, you can install any number of advanced programming languages and IDEs in about 10 minutes. (And, on a Mac, Python at least comes pre-installed.)
With an 8-bit micro, BASIC was the point and it Just Worked. These systems were toys sold with a toy language, but it was a toy language that had enough depth to teach useful fundamentals.
More, there was an ecosystem of other toy users and support sources and motivators - books, magazines, game entrepreneurs, TV shows, even just the novelty factor of having an actual computer at home - that made the 8-bit era in the UK a cultural scene.
There's no exactly equivalent cultural scene today. You need a fair level of experience to get started with modern languages, and there are no mainstream cultural drivers pushing you to do it. (There are niche drivers but they're only effective after you find them.)
You do get some motivators with entry-level HTML and web design, but they're immediately aimed at careers and professional development.
What's missing today is the combination of a toy environment which is fairly simple but can still be used for non-trivial projects, a mainstream non-niche non-professional cultural scene, and a sense of fun, play, and exploration which provides the curious with motivation.
The closest approximations are toy environments like Minecraft. They're doing a reasonable job and there's a scene of sorts around them, but it's not quite on the same scale as the 80s systems.
- they can get a feel for how real-life programmers work;
- they can incrementally refine and build on what they know until they have picked up a very valuable (in terms of job market) skill
I agree Scratch is sufficient to understand loops etc. but it doesn't "scale", i.e. at some point you need to switch over from Scratch to an "grown-up" language.
Presumably if you limited which parts of the now massive 3.10 you exposed to newbies, you could still get the same result? The very basics haven't changed too much since 20+ yrs ago. I suppose the trouble is that any web searching is going send newbies off the tracks into advanced topics pretty quickly now, but that is still likely in just about any language.
There are more resources than ever if you already want to learn to program, but it's still hard to cross that threshold from using computers to realizing that learning to program them is something approachable. Microsoft and Apple have both always promoted this sort of learned helplessness with their users, treating the GUI like a tangible thing and not providing obvious tools that encourage programming.
I must have spent half the developement time of my early programs simply retyping in stuff that I had done the day before but lost without saving it.
It's not exactly helplessness, since programming is no longer required to do the many things that you can do with the millions of apps and web sites that are at your fingertips, and you no longer need to type in (and probably debug) a long program just to play a game.
And Microsoft has actually provided BASIC for ~45 years (currently Visual Basic .NET and VBscript, as well as the Small Basic learning language), while Apple provides Swift Playgrounds (a nice onramp to Swift that can also create full apps.) And every web browser includes JavaScript.
But as you note the key part is obvious tools that encourage programming.
I too would like to see platform owners make programming onramps more obvious and easily accessible. A good start might be adding a CODE button to web browsers to bring up a user-friendly JavaScript programming environment. Another idea might be providing an installation option to include tutorial and professional programming environments. Another might be for the Xbox (and Game Pass) to include game creation tools (I also like Dreams for the PlayStation but it hasn't really caught on.)
At the end of the day though I wouldn't expect it things to change too much because programming requires a lot of effort for minimal reward compared to visiting a web site or downloading a new app or game, while commercial apps and games have largely moved beyond what a single person can create.
The creators of collosal hits such as Stardew Valley, Undertale, Five Nights at Freddy's and Minecraft might object this sentiment. It's entirely possible (not easy though) to create a successful game on your own that competes and surpasses large studios.
That's a brilliant idea.
> This just isn't true, [...]
Let me get this straight... you're saying that children are generally aware that they can learn to program, and that children who aren't aware of these opportunities are rare or something?
I must be misunderstanding something here, because that sounds like complete horseshit to me. I have years of experience teaching children how to program, and the vast majority show up unaware that learning to program is something within their reach.
Sort of. There were cheap computers like the Commodore 64. But, by the time you put together a floppy disk only PC clone in mid-80s, you were probably still looking at a few thousand dollars so maybe $6K in today's money. Not astronomical but still a pretty big purchase. Hard drives were just coming into the reach of consumers then but that would have added to the price.
[0] https://www.hl.co.uk/tools/calculators/inflation-calculator
Some people moved on from BASIC by poking machine code into memory.
Writing down the pokes and peeks"
https://m.youtube.com/watch?v=IagZIM9MtLo
A few years later, my dad would bring home IBM PC XTs and ATs they were throwing out at his work. The rest is, as they say, history.
I loved these books, and I'm pretty sure I had almost the complete library. A few of these books, a curious kid, and a simple computer that boots directly into BASIC, with no distractions.
One thing that was amazing about this time is that even a 10yo (as I was) could understand almost everything that was going on in those machines (in a functional way, if not the finer details). Then as we grew up the programming world became more complex, and we were able to track that complexity as it happened.
I don’t envy new programmers today who have to contend with vast complexity even to do the simplest of things.
I would happily trade all the complexity I have to deal with daily, if there was a common, cross platform, secure, open and well integrated sandboxing solution.
Kinda best way to put it is documentation was akin to what you would expect from a mature MCU today as comparable level and in some ways, more accesable and you felt you owned the computer more and had a more intermate understanding.
Though many things go that way, Cars another example and cars of that era, you could get documentation and fix yourself. Today, you under your hood might as well be a Borg cube.
It might be easier to learn, but it's harder than ever to actually do something useful with those "toy" environments. Back then, the "mainstream" computer magazines were full of source code listings, often even in Asm, for utilities that did various useful things. They created binaries in the <1k size range, with a lot of them being below 100 bytes. There was a continuum from "computer illiterate" to "master developer", with "average user" and "power user" sitting somewhere between. Now you have to fight your way through layers of "security" to even start to do something useful, and on some platforms, it's nearly impossible.
IMHO corporate interests are to blame for this gradual closing-off, because they don't want users to discover that some things they profit from are in fact extremely easy to do. There's been a bunch of articles here and elsewhere about the "war on general-purpose computing" which really started being noticeable in the late 2000s/early 2010s.
I have to laugh at these conspiracy theories.
The real reason is the operating systems no longer come with a BASIC prompt. This is true for Windows, OSX, and that corporate Linux product.
If every operating system, including phones, came with an icon that opened to a BASIC prompt, I bet you'd see an explosion of programming competence especially among young people.
I’ve never used BASIC, but is it really so much more approachable/productive than python? With python’s batteries included philosophy, I’d expect it to be pretty quick for beginners. The only sticking point I can think of is GUIs
These days, when someone I know is interested in learning some computer programming, I tell them to get a copy of Introduction to Computer Science Using Python by Dierbach. My own intro programming books are horribly outdated at this point, but I happen to have a copy of Dierbach's book, and I think it is pretty nice. You start up by firing up the Python REPL on your computer, and from there it talks about how computers work.
IMO, this is an easier way to start computer programming than we ever had with BASIC. The barrier to entry is as low as it ever was, the languages are a lot nicer and you can definitely get real work done with Python, and over the years we've gotten more textbooks & better textbooks.
Honestly, the real friction here is that you have to open up a terminal window and type "python". Or if you are interested in JavaScript, you have to press Ctrl+Shift+I or some other combo to bring up a REPL in whatever browser window is already open. It's not friction, it's just a little obfuscation--give someone a computer and they probably won't discover Python or JavaScript just by playing around with it, but if you give someone an Apple II, they're going to run head-first into BASIC.
I learned BBC BASIC first and it still holds special place in my heart. A lot of the feel of Python is similar (it also has similar goals), but it is quite a bit younger and has a lot more 'batteries included'. So I have to say I do actually prefer python for my day-to-day usage now.
While you technically can write a Python program in Microsoft's terrible terminal window, such a program is a very distant second class citizen in the Windows ecosystem. This adds to the friction the poster above is referring to.
Productive? Not really sure about this. But obviously Python has a nice standard library and package manager which help you install 3rd party libs easily. Not idea which modern BASIC environment which provides that. If you want to handle various networking, GUI, database etc stuffs then probably Python is easier.
Well, there are certainly a lot of closed platforms. But arguably it started a long time ago with games consoles.
- The old "toy" environments like BASIC, back then, were not very powerful.
- The kind of thing that you would get from a 1k binary is something that nowadays you get for free with the OS. The bar for "useful" is much higher.
- There are still tons of people in the range between "computer illiterate" and "master programmer" who are doing interesting things by writing code. It's not a jump from, say, Scratch to JavaScript. You have Excel, R, Julia, Matlab, SQL, etc. There have been tons of other environments over the years like FileMaker, MS Access, Flash, Director, etc. Some of these are still around, others have evolved and been replaced. It's also relatively easy to make a basic website with Django or Rails, or write a plugin for Drupal or Wordpress, because you have some need.
It's easy to respond and say something like, "Flash is dead." Yes, there's no direct replacement for Flash, but in general, new tools are appearing at a much faster rate than old tools are disappearing. Even though there's no direct replacement for Flash, there are a bunch of approximate replacements that may serve your needs.
> Now you have to fight your way through layers of "security" to even start to do something useful, and on some platforms, it's nearly impossible.
I would love to see a walkthrough where you go headfirst into one of these layers of security that's causing you problems.
My guess is that you are working with a preconception that a "useful" something-or-other is an executable script or program. My claim is that something useful might be a Jupyter notebook, a Wordpress plugin, or a SQL query.
I'll also say this--I've met plenty of high school students who seem to be just fine making games using something like Unity, Godot, RPG Maker, Game Maker Studio, etc. As far as I can tell, the #1 hardest part of this whole process is connecting people with the right tools and resources. The problem is not that those tools and resources don't exist or have gotten worse. They've gotten a lot better! They just don't ship with your computer any more, so there's a process of discovery, which has a big impact.
It's hard to define 'useful,' but I'd argue that you can make useful things in Scratch. My first language was Scratch, which I learned 14 or so years ago. Although I only stuck with it for a couple years before moving onto Python (then Scheme, then C, then OCaml), Scratch was very formative in my development as a programmer, and there are a ton of 'useful' things you can do within Scratch itself.
I grew out of Scratch after writing a 3d rendering engine for a platformer, and a neural network that played a racing game (NEAT). Both of things are fun, and I'd argue to some extent, useful, if not only to others who are learning. It was at this point that I was recommended a book on Python and, well, the rest is history.
I realize that, for some tasks, like systems programming, Scratch would be absolutely counterproductive. (though I recently recall seeing a post about writing a Linux kernel module using the language.) Nevertheless, that doesn't mean that you can't do useful things using the language. Having later developed games in C from scratch (ha!), just trying to replicate a fairly basic Scratch program with sounds and sprites and movement requires a good working knowledge of how to type, C and its compiler, SDL and related libraries, memory management, maybe how to embed Lua for scripting, etc.
None of these things are hard, per se, and I do agree that you have to jump through a number of layers of "security" to do modern development work on most platforms, but one has to admit that the environment that Scratch provides is powerful enough to create useful things, that require a non-trivial amount of work to replicate elsewhere.
In some ways, I disagree. In the early-mid 80s, you didn't have a chorus of people on social media abusing you for your choice of programming language, as is the norm now for anyone who dares to pick up PHP (for example). You didn't have to battle with absurdly over-complex development environments, deployment options, and every man and his dog shouting at you on social media about why you're wrong from chosing framework x instead of framework y, or telling you that you're a sub-moron for thinking that it would be nice to have a running program rather than spend time battling emacs to be a "real programmer".
The world was much more insular and there were fewer choices and it was actually a lot better for it.
On top of that, the distance from what I could put together with the built-in BASIC on a Spectrum or BBC and a lot of the programs that you could buy wasn't that vast. You didn't need a studio of artists and designers and musicians to come up with a game that approximates what you'd get on a cassette. You could come up with something interesting on your own.
I think it's easier in some ways, harder in others. I learned to program in 1981, while in high school.
"Ease" involves not only access, but also motivation.
At the time, programming seemed a lot more casual and exploratory. Because displays were so primitive, you could easily write a simple BASIC program that looked just like commercial software. That was really gratifying, and gave you a feeling of power. There were useful programs with no graphics. And programming was still kind of a counterculture. There were maybe 3 or 4 kids at my high school who were interested in it, and we were all nerds.
Today, everybody has been exposed to really slick graphical software or games before they're ever introduced to programming. Making something that looks like software is a daunting task. I don't even do it any more. There is also vastly more adult interference and attention -- programming is a desirable, lucrative career after all -- meaning pressure to do it "the right way" for the sake of your "career."
But nobody told me that music would be a good career. ;-)
You can teach somebody to play the first few bars of Stairway to Heaven (or at least something that sounds recognisably like it) in an afternoon. On an Apple II, you can write a BASIC program that looks like Ultima IV or VisiCalc in maybe a week. But it would take years of study, let alone effort, to make something that looked recognisably like Elden Ring or Excel.
Oh they're aware, alright. It's hard to get them interested in coding when they can play Minecraft or zone out in front of YouTube. Whatever they do on the device other than coding is going to be far more entertaining than coding and a lot easier.
Source: I have kids.
Minecraft has all levels of in-game programming from simple recipes to redstone circuits. outside the game there're procedural quests, time-based events, animated skins.. "look Daddy I spent 4 hours building this castle" - "that's great, let's find out how to make thousands of them in seconds!"
YouTube is full of programming tutorials for kids. there is a lot of crap to trim but the time is well invested
there is a balance between work and play, but often the benefits of coding bleed into the gameplay to a point where the two are happily married
the trick is finding a balance - halve screentime into educational and recreational, they still get 100% gaming/YouTube, just on a reward basis
in general, teachers at school cannot code and kids will need to be able to code in the future. it's not the teachers' fault, they weren't taught to code yet they have to teach coding. the next generations of teachers will not have this problem since they will be kids from now onwards who can code. introducing coding as a regular activity at home will benefit kids for life
Those C64's and Apple ]['s came with a ton of games as well.
Even if I explicitly go to the /us/ url, it still rewrites the URL and makes it impossible for me to read the content. I literally can't look at the same content as someone from a different country, and there is thus no way for me to compare.
Don't do that! IP sniffing is a terrible idea on a good day, but this is the worst. How is returning 404 ever the best choice here?
Then I could see the expected content. Maybe whether that dialog box is seen or not depends on the browser used and on its settings.
The most striking about these books: they are more readable and enjoyable than many programming and computing books published for adults today.
The books use illustrations extensively to explain concepts, and the layouts are varied and lively to keep readers attentive. (Compare to the stranglehold of markdown for any technical documentation).
Not only are these Usborne books well-written with clear, concise explanations, they are also excellent source for inspiration and ideas for anyone writing a technical guide, tutorial or book.
No relation to Osbourne the computer company or the metal vocalist. :-D
8 year old me knew there was something different about the comic art alongside the text, yet I couldn't explain what. Turns out - British!
The machine code books would have been useful at that time, but again, I'm 8 playing with a hand-me-down Apple with no other help. I don't know what I don't know and I have no mentorship and no internet or bbs access to download new stuff.
Kids today have access to all the video tutorials they could ever want.
e: God DAMN line numbers suck. And double god damn do line editors (think ed as opposed to vim) with no proper backspace.
I was also too young in those days to be able to understand how to port PEEK, POKE and so forth, but I do credit trying to get stuff working (often in futility) toward my future interest in becoming a professional computer programmer. (Of course I'm not writing games like I imagined.) The experience of trying to parse mystery code is surprisingly similar to frustrations with finding libraries that almost but not quite solve your problem, or web layouts that look okay in most browsers until you encounter a weird screen size, and so on. I wonder if this background is what led me to being the kind of developer who greatly prefers maintenance, troubleshooting and bug fixing to new feature development.
So many careers had their origin in these books.
A barrier to a young kid building the robot was the difficulty of obtaining critical parts, unless you had a parent helping a lot with sourcing and bankrolling.
(In the US, an accessible Radio Shack store had some of the parts, and you could improvise some of the hobby shop materials from cardboard boxes and wood scrap. But, e.g., a matching pair of gearboxed motors were unobtainium that a kid might only find in random mail-order catalogs they were just starting to discover, at unaffordable prices.)
Today, things are much more accessible, thanks to Adafruit, accessible online retailers, Arduino, Raspberry Pi, easier access to information (not serendipity of happening to discover whatever book/magazine a library/bookstore/friend happened to have), 3D printers... even being able to easily get your own PCB design fabricated one-off, without expensive materials followed by a hazmat incident.
Specifically, as a kid, there were projects I wanted to build, but I couldn't get the parts. Now, as a grownup doing EE work under current market conditions... same thing.
One of the books that's sadly not been made available from the Usborne site had a representation of what a future portable computer might look like that was hilariously off the mark while being perfectly reasonable from the point of view of its era - I recall it having what was clearly supposed to be a tiny green CRT display for example!
In previous searches for the book, I found this site, and I realized the book had many similarities with the Usborne books, but I can't find it in any listing of them. I don't understand how, but the book "The Usborne Young Scientist: Computers" (1992) has some of the same content as the book I remember but it's missing a lot while also having some content I'm completely unfamiliar with. Maybe there was another lesser-known Usborne title that repackaged some of its content? If this sounds familiar at all to anyone, I have a few more notes on my memories and search for the book at https://tildes.net/~talk/is4/whats_one_thing_you_havent_been... and I'd appreciate any pointers.
Edit - looks like it's available online here: http://bbcmicro.co.uk/game.php?id=2135
I just looked back and I think these are some of the best written books. Thinking on it there were probably dozens of programming books but these endured because they were so good.
The overview of the set of variables that you have to store and update for a fantasy game may be the best high level view I’ve seen (if you know of a better one, let me know!)
These books were exceptional.
They don’t exist anymore I think because computer games (ironically given the OP) killed them.
[1] https://www.thriftbooks.com/series/usborne-puzzle-adventures...
I came across these books for the first time when I was around 12/13, and spent hours entering the BASIC into my ZX Spectrum. Later making changes and messing around.
My all-time favourite was the Mystery of Silver Mountain - which I recently bought from Ebay for far far too much money.