Preface
I started programming using the BASIC language on a Commodore VIC-20 in 1982. It had 3.5 KB of RAM, and programming involved me copying a program from a magazine, instruction by instruction and line by line. The process was time-consuming and error-prone, but it certainly built focus and attention to detail! Rather than cut-and-paste, it was read-and-type; but eventually, the program was transferred from the printed page to the computer’s memory. Then the moment of truth ... and alas, it never worked the first time. And that’s where my learning really began.
Staring at the code, trying to make sense of the instructions and follow the flow of the program as it jumped from line to line, I had to think carefully and patiently about what was going on. Not everything made sense—sometimes squeezing a program into 3.5 KB required some seriously supple code gymnastics—but, bit by bit, the program’s secrets would start to reveal themselves. Sometimes my typos stopped the program from running; sometimes there were mistakes in the code itself. Most of the time, but not always, I eventually got the program to run.