I'd generally agree with what roller has to say. I'm a Technical Recruiter, and most of my clients (generally Tier 1 automotive customers) are looking for that degree. That being said...there are some self-taught guys out there making a lot of money - a lot of them are consultants - doing project-based work for companies (as opposed to being a direct hire or a contract employer) - so these guys are doing 1099 work.
If you are not going to have a degree, at least get *some* formal education - take a class so you can put it on your resume, get some exposure to real-world coding practices and standards. I would also do some project work -- do it on your own and develop a personal portfolio you can reference on your resume, and perhaps put up a personal web page to highlight yoru projects -- you have to have a way to demonstrate to someone that you are actually able to do what you claim, and without a degree or prior experience, a portfolio is it.
Working with a recruiter is not a bad idea either, as they can address the negatives with a potential employer before HR throws your resume out for not having a degree...IF you can find a recruiter willing to work with a non-degreed wanna-be software engineer (which I do...I like talent, not fancy pieces of paper, and I have seen a few highly paid, self-taught, non-degreed SW guys over the years)
As for languages - depends on the industry, what you want to do, etc. I plce a lot of software engineers for automotive embedded systems, infotainment systems, etc...we look for C++, some C, looking for QNX operating system (for infotainment) and Linux, Android is increasing in popularity (again, specifically talking infotainment systems).
But is you want to use your financial skills and work more IT/application/web based work or whatever, you will be looking at different languages, etc. So you need to research what your target job will be, and find out what they are using.