I'd say unless you have an ASIC, mining isn't worth it.
There are a bunch of sites that give away a tiny amount of bitcoins for free. Here's a thread here with a list of them
https://bitcointalk.org/index.php?topic=90718.0 or just do a google search. Free sites are great if you want to experiment with bitcoins, but you'll basically be collecting dust.
You can get substantially more through other sites that let you earn bitcoins by visiting websites, doing tasks, etc. We run a site called BitcoinGet (
http://www.bitcoinget.com) that is an example of one such site. We let you earn bitcoins by doing tasks, watching videos or completing offers. If you're willing to put some time in, the tasks can actually pay pretty well. Don't expect to replace your part-time/full-time job with using these sites, but if you have the time to burn, then this might be for you.
The best way to earn bitcoins imo is to create/provide some kind of Bitcoin-related service. Bitcoin is still new and there are holes to fill. If you don't have the ability to do this, then your best bet is probably to get an extra job and use the money earned to buy bitcoins from an exchange or service.