Let's face it - in any job there is no other way to learn than practicing.
Some of skills are possible to upgrade in a "hobbyist" manner, some just not.
But if you are, say, an Oracle developer and writing software for banks it's quite naive to try to upgrade your skills in "background" mode.
Even if you want to contribute to open source (and this is by itself not applicable to all kinds of programmer activities we can think of), it not always possible to contribute something relevant sitting on the sofa with laptop - some environments demands complicated and expansive backends.
Also, to my experience, not always, but most likely the best open source contributor is actually a seasoned developer who actually learns a lot of things, and gets irritated by lot of other things, who had his own vision how products should be done.
So, to conclude, there are some jobs where it is hard to be a hobbyist. Astronaut, trucker and porn actor are good example of such jobs )))
Just try to get any job in industry you are interested in and then move on.