Where I learned to fly (big airport, CAS all around, very busy airspace), ATC was a factor from day one. My instructor taught be one extremely useful trick - don't try to understand what ATC are saying, just copy it down. Once you've got that, you can start to think....
Other than that, yes, experience has a lot to do with it. You will also learn what to expect in certain situations, but beware! More than one accident has happened because the pilot heard what he was conditioned to hear. And then, on this one occasion, the instructions were different. Which brings me back to the 'copy-read-understand' scenario as outlined above.