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")
You cannot date independently. Dating requires at least one other person. One of the amazing things about programming is that I can sit down anywhere at any time and create. Computers are handy, but even pencil and paper will do in a pinch.
They have online dating now. Yuo can prety much do this at any time you can do programming.