I’ve learned coding from everywhere and nowhere. I couldn’t put my finger on it. It doesn’t matter from where as long as you have a goal. When you have a strong goal and you are determined to follow it, then sources to learn just keep popping up on your screen, like magic. No matter if they are tutorials, codex, php.net, other’s people code (this is one hell of a learning resource). I often buy themes on ThemeForest just to see how others have tackled problems. You’d be amazed on how others have different takes on the same issue.