I am currently at a Community College, doing my pre-req's (currently middle of my second semester, or third if you include winter intersession) so that I can either transfer to a 4-year for a BS, or transfer to do a masters in CS or Soft. Eng. (have a previous BA degree). Before I went back to school, I could just focus on programming, and learning at my pace. Right now, I spend so much time on Calculus and Physics, that when I have programming assignments, I pretty much just figure out how to do literally what I need to turn in the assignment.
To me, there's a big difference between really learning something, and just learning/figuring out enough so you can turn an assignment in when it's due. And believe me, I'm not saying that my time management skills are perfect, or that I can't do some other things to help me out, but it's just something that I'm trying to figure out.
I don't have much time during the semester for hobby programming, so I kind of feel your pain. I just do a lot of programming during breaks, and apply some of what I've learned during the semester.
Trust me, you will learn exponentially more in a few days on your own than you will in 6 years at college. People can argue, but I've found even my upper-level teachers to be pathetic coders. If you want to be great at coding, just code. Make a program for anything you can think of. Help out with some open source software. Make a todo app. Make an app that pulls weather data from the NWS. Track your UPS packages programmatically. Help out on this site. Read StackOverflow questions all the time. These are all things that don't take much time but can really push you forward.
You will gain both a deeper understanding of core concepts and a a larger breadth of knowledge of the tools available to you.