Having taught myself to program on a Sinclair ZX81 (1K RAM, Z80 chip) it's primary virtue was that there was nothing to do with it but program it. On startup you had a command prompt: there were no games, no internet,no facebook, nothing but an editor for BASIC programs which were then interpreted. So the first question was always, what am I going to make you do today? Programs written in BASIC were a little slow, so I then learnt Z80 machine code which speeded things up and forced me to learn about registers and memory and so on. 1K of memory wasn't a lot to use, so I then got a book which gave the line by line Z80 for the ROM so I could exploit the routines in ROM in my programs, so I learnt about a (very very simple) operating system. While I'd never give up my current linux laptop, I cant help but feel I wouldn't understand 1/10th of the little I do understand if it wasn't for that ZX81. Thanks Mr Sinclair!