I started making websites when I was about 15, starting with just HTML, but quickly also using PHP and MySQL to make dynamic pages (guest books, message boards, etc.). We got a computer science/informatics class in high school that had us programming in Java, HTML and NQC (the Lego robot language). It was all fairly trivial, but I guess that could be expected from a high school class.
Then I went on to study artificial intelligence, and programming was a big part of that. I took 6 courses that were explicitly about programming and one about information systems design (but that sucked), and we used programming skills in far more courses. I was pretty good at it compared to the other student, so I became a teaching assistant in three of those programming courses. I thought I was actually pretty good, but when I started making bigger programs (for fun) it dawned on me how little we learned about the organization of code in such projects. I'm still struggling with that a little bit.
Now I work in a computer vision company, so I guess you could say I program for a living.
I've always really liked it, because it allows me to build something useful out of basically nothing. At times it can be frustrating, but like a difficult puzzle it is very satisfying when you finally do solve it. The things I am/was most proud of are a website I made for my friends that allows us to communicate over 7.5 years after we graduated, even though we rarely see each other; a brain-computer interface I built from scratch; the AI for a simple football video game; and some of the stuff I'm doing in my current job. I have to say most things I made/make aren't really finished products that are used multiple times by end users, but often they are research tools that are executed once to get a result or tools that are used internally to facilitate our development efforts.