-1 down vote favorite

I am switching from a career in hardware (mobile phones & wireless) to software, as my well-researched perception is there is a lot more demand for software skills than hardware. I have experience doing embedded code for 16 years (C,C++, assembly, processing), but this doesn't directly translate to software development. Since I am looking for FREELANCE work, or SHORT CONTRACTS, and am specifically avoiding taking full-time positions at companies, I need to focus on which languages can make that possible, that i can find work doing.

And I only need to make O.K. money, not BIG money: I just need to get by, pay the rent, etc, while I do a lot of artistic projects (that don't pay) on the side.

I am currently learning Javascript (easy!), and am wondering if I need to learn things like Python, PHP, Ruby, etc etc.

I could go a couple different routes:

1) Mobile development: this lets me leverage my hardware background a bit, and I can program in Javascript and build for iOS and Android using a tool called Titanium. No need to learn Java or Obj-C, though I would probably eventually go ahead and learn them down the road, if I pick this path.

2) Web development: Javascript, Jquery, HTML, XML, JSON, and so on. I could be reasonably happy going this route. I wouldn't be doing hardware at all anymore (both a good and bad thing: I'm tired of hardware, but I might have to leverage my hardware background to get jobs....but then, maybe not, web development seems to always be in-demand).

3) Application (desktop) development: this can leverage my limited C++ skills, but my perception is its really hard to get short-term contracts for this (they need you for a looooong time to finish a project).

Thoughts anyone?

(And, thoughts specifcally about Python too; I can't seem to figure out whether I should add this one or not, can't get a feel for how important it is, should I just ignore it so it doesn't distract me from focusing on other things? argh)