Bernie Cosell, a master debugger and one of the fathers of the Internet, in Peter Seibel’s Coders at Work:
If you’re lucky, you can do it at work. But even in a work environment, where you’re learning on the job, I think that to really be good you have to learn faster than your job will make you learn things. You have to supplement what your job is asking you to do. If your job requires that you do a Tcl thing, just learning enough Tcl to build the interface for the job is barely adequate. The right thing is, that weekend start hacking up some Tcl things so that by Monday morning you’re pretty well versed in the mechanics of it.
Cosell draws out a practical way to become better at skills. I’ve had trouble putting this in a way that’s practical for those who use these skills professionally—but why hire someone who only works on those skills on the clock? The passionate hobbyist who works on his own projects in his own time is far more likely to be a wonderfully competent craftsman than one who only works in the office.