Yeah, the best way to earn Bitcoins is to buy. That's pretty much the only reasonable way to get it as well these days. If you want to mine bitcoins now, you're going to need a lot of hashing power and that's going to cost you a lot of dough.
You could also mine some alt coins today and hope they go up in value in the future and trade that in for Bitcoins, but again that's going to cost you money that you're probably not going to earn back through mining. You could invest in a heavy rig today, and then next week a new machine comes out and you get blown out of the water, outdated.
From experience, alt coins greatly increase in value the first week they're released, so you should sell within the first week, a month or two later and that coin will probably greatly decrease in value, even though in the first week everyone thinks there's no way the coin will drop .
Well buying isn't exactly earning, is it?