I tried this a little bit back before I made much programming experience (but I had some), basically I realized it can lead to wasting a lot of money, it can work for small things but its really hard to manage unless you can get someone in a similar time zone, otherwise just too much time goes by between communications and its hard to stay on the same page, unless you stay up all night to be online with them.
You have to be careful too as some will start working on a project for a day or two and seem to know what they're doing but then all of a sudden productivity will drop to nearly zero, for whatever reason (they found a better paying gig, busy with other stuff, etc)
EDIT: Now that I think about it more, you can find some people who are definitely good but they are not going to be dirt cheap, the few good people I did work with I usually ended up hiring just for small tasks as it was something I needed done but I couldn't have afforded to employ them on a regular basis, usually it seems the minimum rate is $25-30 per hour, which is cheap for a company but it can be hard to swing that if you're just paying out of your own finances.
Also, these people tend to like to work on specific tasks to where they can estimate the hours and they would usually have a few clients at once, it would be hard to get them to give their full focus to you for an ongoing project, I think, unless you could demonstrate stability to them where they felt comfortable turning down other gigs to keep working with you.
They also don't usually want to invest any time in learning your project structure, setup, etc so if you want things done a certain way it can be hard to get them to do it unless you are going to pay them for time spent reading documentation, etc. You can find newbie dev's who will attempt to follow your structure, etc, but they tend to not be of the best quality.