I really wished I had a paper computer when I was a kid along with an inspirational teacher.I learned what was frequently called Machine Language (but is really 6502 Assembly Language) from Jim Butterfield's book:
I didn't have the version pictured, the one I had was spiral bound... but it did what it needed to do and got me started down the right path.
Did you use a cassette tape to store your programs?It was not until the ZX80/81 came on the market that I or any other person with limited finances could actually get into programming for real. What was really attractive was that this was a "hands on" and "your own" kit era that sparked no doubt Steve and all the rest of us into programming.
On the ZX81 yes on a separate tape recorder. When I got the Amstrad CPC464 it was luxury compared to the ZX81. The Amstrad had a proper keyboard, built in tape recorder and a separate monitor. Twas luxury at an affordable price.Did you use a cassette tape to store your programs?
I went from the ZX80 to the Coleco*Vision Adam (because it had a letter quality printer). I programmed it in assembler, basic, and Logo. For me the game changer was Turbo C / C++. I currently program in C# for fun.You had decent Basic and then a game changer was Turbo Pascal which unlike Basic which was interpreted, Turbo Pascal compiled to native assembler and was lightning fast.
I also have my Harbinson & Steele from when I became 'Unix-aware' when I started a job in 1990 to port an extensive machine vison library from AMD2900 bit-slice code to C, targeting i960C-core processors, using GCC960, CVS, and EMACS on Sun Sparc systems running 4.13_U1.My favorite book from that time period was The Elements of Programming Style by Kernighan and Plauger. I still have it.