I don't think I know anyone who programs for fun, and I've worked in the software industry for over a decade
Sorry, but you probably should not be employed in the software industry. Sadly, it also seems you've spent your entire career working with mediocre programmers.
I've worked as a software developer for 15+ years, and over that time I've been project leader for a number of large software projects - and responsible for hiring new programmers.
From my experience in hiring developers over that time, I've found the single most effective question for weeding out the poor programmers from the good ones is:
What do you code for fun?
This is generally followed up by "Ok, show me some of your code (that you code for fun), and explain what it does."
Early in my career, I thought of this interview question as more of a fluff, "get to know you" question, but it invariably turned out that every crappy programmer we hired didn't code anything for fun, while, without fail, all the really amazing "super-star" programmers we hired *DID* program for fun. So now it's my goto question - I simply will not hire anyone if they can't show me *something* they've programmed for fun. I don't care what it is - a flash game or a database for identifying fungi - as long as they did it for enjoyment.
I think this question works because programming is a creative endeavour, and if you've never had the burning desire to "make a computer do X" or never had the thought "I wonder if I could make a computer do Y?" persist until you tried it - then you will never be a great programmer.
I wouldn't hire someone to produce a work of art if all the art they ever created was commissioned and they'd never created art out of inspiration, burning desire or sheer enjoyment. That would be silly. In my experience, the same holds for software developers.
All this is not to say those who don't code for fun are incompetent, I've met plenty of competent, capable programmers who don't code for fun. However, I've never met a stellar, high-achieving programmer that didn't, and none of the incompetent programmers I've met did.