When I was choosing between Python and Ruby a couple of years ago, I chose Python.<p>To me it seems to be more universal - Ruby is (IMO) mostly used for web development, and Python is also rather widely used in other areas - in sciences (via NumPy/SciPy), sysadmin work and for various scripting purposes (in gaming, for instance).<p>By now I also got some experience with Django, and was also picking up Javascript recently. Can't comment on the amount of work available in Python compared to Ruby, just don't know the Ruby market, but for Python/Django there's quite enough freelance work via elance/odesk. Not sure if you'd get to $2-3k per month right away, but that's sure doable once you get some experience.<p>On the other hand, you have the advantage of being able to look for clients locally, and I only worked remotely - living in Russia now. Seems local rates in Australia (and other first world countries) are higher than in online market.<p>Seconding the importance of Javascript. I picked it up months after I started with Python, but starting with it earlier would've been a good idea for sure.<p>Again, most freelance work involves at least some frontend part, and if you're familiar with HTML/CSS/JS, even without Python, there's always something to do. Also there are quite some offers for Google Apps work, scripting GMail/GDocs/GCal - that's Javascript again.<p>Disagree on PHP requirement - didn't touch it yet, don't want to, have enough work (and some more people to talk to when I have time).<p>Feel free to drop me an email - egor.ryabkov at gmail - if you'd like to chat. Best of luck!