I've always been fascinated with making mechanical / electrical things work the way you want them to by applying the right leverage / signal in the right location and at the right time. (Growing up around farm equipment can do that to you.)
The first program I saw written and executed was when my girlfriend's father assembled a series of PRINT statements to create a U.S. flag using asterisks on the green-screen of his Commodore PET computer (1981). My thought was, "Big deal, what's the point?"
A few months later, as a senior in high school, I watched other students solve math problems using BASIC programs they had written on a machine with a CP/M operating system that booted from a 5-1/4 floppy disk (no hard drive). I can still remember the first program I wrote:
50 PRINT C
60 PRINT D
It didn't work - syntax error. It took me two days to understand the assignments in lines 30 and 40 should have started "C=" and "D=". I fixed it, it ran and showed the correct results, and I was hooked.
I spent a lot of time on that computer that year, chose a different college, changed my major, and here I am 32 years later, still loving the technical challenges of making the computer do what you want it to do, given a set of finite instructions. Granted, the list of instructions from which to choose has greatly expanded!