I did freelancing from mid/2013 until the end of 2014 because I wanted to spend more time with my newborn son. I had already extense experience in mobile applications (Objective-C, C++ and Java for Android) and backend (PHP/MySQL) so I felt it was easy to land some quality freelance jobs. I took jobs from oDesk and from my former employer. It can be done but you probably need to get more than the basics in whatever tech you pick. Contractors often look for experienced professionals to solve complex parts of a project or even the whole project. Also the networking thing that was mentioned before is very important. Be very cautious when picking the projects - make sure you can actually complete it - that said here goes a few advices from my experience.
- Always talk to your contractor and give feedback - everyday - if possible more than once a day even if it´s just to say that you are still working on it (whatever he/her is expecting to be ready next). You should also give preference to face-to-face talks (skype, hangouts) than simple e-mails whenever possible.
- On the monetary side, in my opinion there are 2 kinds of contractors. The ones that will hire the most unexpensive freelancer and the others that will look for the best/most experienced freelancer and his hourly or contract price isn´t much of a problem (but even then they will try to cut costs). Study and react to the contractor style, do not treat with them the same way.
- Do a good job and you will get more jobs from the same contractors - but they will always expect to pay again whatever you charged in the first job so you also need attention in this point.
- Expect extra work not included in the contract terms. Take a look and study this new requests before declining upfront. See if they are just simple changes and reasonable things that won´t make much difference and will satisfy the contractor even more.