A good programmer should wake up at 6 am in the morning get a solid 2.5hrs of coding done by 8:30 am, at 8:30 leave for work, work till 6 (it goes without saying that the lunchbreak must be spent trying to learn the Haskell or if you are feeling lazy answering questions on stackoverflow). Commute from 6 to 6:30 (it's a bonus if you listen to a technical podcast during this time and no stuff like TWIT does not count, perhaps audio lectures from the Advanced Algorithms course on MIT OCW). 6:30 to 7:00 time for supper and excellent time to catchup on r/programming and hackernews. 7-8:30pm is the time for relaxation by doing some recreational mathematics, doing problems from project Euler and that proof from The Art of Computer Programming excercises which you have been itching to get a go at! 8:30pm to 1 am code contribute to that open-source project, write patches for the Linux kernal and continue working on your startup.
Anyone who does less programming that what is mentioned above cannot call himself a "good programmer", I would have serious reservations in calling that person even a mediocre programmer.
I catch the irony, but I'm not confident that it really contributes to the discussion here. Look at the comment thread it's produced: practically nothing of any consequence or interest.
Sarcasm is a form of irony - one meaning of irony is saying one thing, and meaning another. "Sure, that's a great idea" is both sarcastic and ironic (although not ironic in the sense people most commonly use the word, which non-ironically, is not that ironic).
Then you're an expert. For about three months. Meanwhile while you're up to speed, things outside your organization are changing. If you're not paying attention, you end up with the proverbial "10 years of experience" comprised of 10 years of the same experience. I've seen several of my friends who just coded at work find themselves without jobs when times got tight, and unable to find a new job because they had out of date skills.
Investing in my skillset on my own time with my own rules is an investment in me. I don't particularly care if it makes me a better programmer - it's a contingency plan to make sure I can support my family in both good times and bad.
I think it varies wildly upon the situation. I've had 3 full time corporate jobs and not one of them required enough depth of knowledge to become an expert at anything besides SQL. I've pretty much learned all that is necessary to add any random feature requested to the codebase I work with so I could let my skills stagnate for years here and be no worse off at this job. IMO, doing so would eventually make me a bad programmer.
Anyone who does less programming that what is mentioned above cannot call himself a "good programmer", I would have serious reservations in calling that person even a mediocre programmer.