i was lucky to have a school that offered computer science as course, which was not the case in every school back in my times. our school had such exciting hardware as: Apple Lisa II, Commodore Pet, Tandy TRS-80 and Xerox 820.
my brothers where real Commodore enthusiasts, so i had access to the whole palette: VC 20, Commodore 64 / SX-64 / 128, Amiga 500 / 600 / 1000 / 2000 / 3000. oh what glorious days. and i think it was the times of Amiga 4000 and Amiga 1200 where i stopped working with Commodore - unfortunatly the Brand started dying then as well.
So when i started programming, it was all about bits and bytes and getting stuff packed in very low memory profiles - optimization was a big part of development. The tools back then where Assembler, C/C++ and sometimes BASIC (i was lucky enough to get by not using Pascal and Cobol - i hated them - sorry). but no matter what you did, you had to optimize for speed, memory, sound and display.
For a while it seemed the faster computers got, the less one had to worry about memory and speed, but eventually expectations grow just as fast and therefore even if the optimization happens on a different level now.
Not just computers and expectations have advanced, luckily also the developer tools. And there are so many new and exciting languages out there now and steadily new ones coming.
I just love these possibilities as developer and software architect. Constant challenges in grasping the customers vision, breaking technical limitations, creating innovative and reliable solutions, keeping schedules and budgets on track and finally implementing the "new-born" into it's future home, all this is what makes it my job, my blood, my heartbeat.