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")
This is a fascinating perspective.
For me, optimizing code (both style and performance) can, at times, almost feel like gardening (aka relaxing and theraputic). On the other hand, I really like math, yet I've generally found that it requires WAY more effort than programming.
Perhaps this is why you have a math PhD and I don't ;-)
I have a mathematics PhD and have worked in academic research, industrial mathematics and software development. I agree with Princess_Stargirl that mathematics and programming feel quite similar, but for me mathematics is less relaxing because it's harder. Yes, it's great when you "have an argument that works and isn't insanely complicated", but until you get one you don't even know that it exists. Which is stressful if your pay, or reputation, or career prospects, happen to be governed by your success in finding such things.
(Whether, and how far... (read more)