Programming is quite a remarkable activity:
- It has an extremely low barrier to entry
- You don't need expensive equipment
- You don't need to be in a particular location
- You don't need special credentials
- You can finding information / resources just by opening the internet
- You can learn it / do it independently
- It gives you rapid feedback (which can lead to rapid growth)
- It gives you frequent rewards (which gives a huge boost in motivation)
- It's objective and unforgiving (this is a good thing, because it teaches you how to confront reality)
- It's intellectually stimulating
- It's useful in the real world
- Corollary: you can make money or even build a career out of it
- It's badass (or are you telling me that Hackers WASN'T your favorite movie of all time?)
- Electronics (but this is basically still programming)
- Math (lacks "rapid feedback" and "frequent rewards"; "useful in the real world" is also questionable)
- Go, poker, video games (usually lacks "useful in the real world", sometimes lacks "badass")
- Juggling, poi (lacks "intellectually stimulating" and "useful in the real world")
Checked it again, this sentence is still there:
"I mean this in the sense of "activities that also satisfy the above criteria", but suggestions don't have to satisfy ALL of the criteria. Here are some of the first ideas that come to mind when I try to answer the question myself:"
Most of those criteria are extremely subjective - For instance, many people would say that programming needs expensive equipment, a specific location, and is nerdy instead of badass.
Similarly, all of the subjects above can fit all the criteria when you know what you're doing, how to practice them and how to use them.