I don't write programs because I like solving puzzles. I write them because I like creating things, and it's a lot easier to create things with programs than with a machine shop.
I also enjoy the competition with other compiler/language vendors to produce a better product.
I designed and built a steam engine in high school in metal shop. It took forever and was beyond my machining skills. It didn't work, due to being so poorly made.
I tried again in college, with a much better design. The guy who ran the college machine shop (he built custom lab equipment for researchers) helped me a lot. It still took months. This time, it did run, but it took so much time it didn't satisfy my urge to create things - my designs ran far, far out ahead of any possibility of making them.
I also enjoy the competition with other compiler/language vendors to produce a better product.