In reply to Sam W:
> a) if I'm about to make a dreadful decision
No.
> b) if not, what language is best to learn. I'm thinking more creating programs than websites
Most developers when asked this question will respond with the language they used first. So, I'll try to be objective.
* C# is a great language but most actual jobs revolve around web backend work. I find this dull as hell, but horses for courses. Of course it's also the language of choice for the Windows Phone ecosystem, but this is not as ubiquitous as iOS and Android ( which is a shame, because it's a nicer environment to develop in than either of those ).
* C++ is having a bit of a renaissance of late due to being the defacto choice for cross platform and embedded development. Wouldn't be my language of choice to start out with. ( I am a professional C++ consultant specialising in machine learning and image analysis ).
* Java is Android these days. Probably where I would go if I was starting out, you'll never be out of work.
* Not sure what iOS uses currently. Inexplicably dragged Objective-C from where it was gathering dust, but again, go this route and you'll never be out of work.
* Various scripting languages such as Python, Ruby etc. I use these for rapid prototyping and testing rather than production code.
* Javascript. Go to hell.
* Various niche areas like COBOL, which you can probably earn a fortune doing because you'll be one of the five people in the country still using it.
> c) I'm guessing the hardest bit will be building up some experience so somebody is actually willing to pay me. Any tips on how to do this?
If I couldn't code and I had six months free time to find a job, I'd do this. For the following, substitute 'Android' with 'iOS' if you prefer.
* Download the Android SDK and learn to use it. Follow Google's tutorials. Don't buy books they'll be out of date as soon as they go to print.
* Think of an App you'd like to have and write it. Doesn't matter what it is. A training diary for climbers or something.
* Stick it on the app store, and open source the code on GitHub or similar. Make sure it is absolutely watertight with regards to
- Code quality
- Google (or Apple's) recommended guidelines for development, UI patterns etc etc.
- Automated testing at various levels.
* Find a job as an app developer, using your new app as a sample of your work.
Post edited at 12:10