Just responding to a couple of points, as somebody from a non-technical background (originally) who's survived until mid-life in the software industry.
If you enjoy programming and working with software, then give it a shot: it's good to be able to earn (or supplement) a living doing something you enjoy.
Acquiring skills: you could look at online materials from the universities. For example, here in the UK we have the outstanding
Open University which offers lots of different computing courses which you can study individually or put towards a degree/diplomas. Their courses are available abroad, although I'm not sure about the USA. But many of the top US universities also put a lot of free, high quality study material online e.g. Stanford and MIT.
You probably wouldn't want to get too bogged down in formal Computer Science right now, but a
course in Python or
Google's Python class might be a good way to get into OO programming quickly with a modern and commercially useful language. There are lots of
free materials around for Python, e.g. the free books
How To Think Like a Computer Scientist or
Dive Into Python so this might be a good place to start.
Ruby is a very similar language to Python, so you could choose to go for Ruby instead/as well - there are some free materials for Ruby although the
free Ruby books tend to be a bit out of date.
Ruby/Rails would give you a marketable combination for web development that would be relatively easy to get started with - certainly a lot easier than industrial-strength Java EE.
PHP is a real dog's dinner of a language, but it has improved a lot in recent years e.g. through the
Zend Framework, an open source project that provides robust and flexible standard components for developing PHP applications. PHP has a terrible reputation and there is a lot of really bad PHP code around, but it is also very widely used and is the basis for a huge number of commonly used content management systems (CMS) on the web, including the
Moodle teaching platform.
I've noticed a lot more jobs coming up recently (at least in the UK) for PHP programmers, e.g. combined with knowledge of how to build components for
Drupal (probably the most sophisticated and flexible of the common PHP CMS). So PHP might be a useful breadwinner to pick up, especially once you've got an initial understanding of web apps via Ruby/Rails for example.
A lot of mainstream commercial development is based around Java Enterprise Edition and (usually) one of the big databases like Oracle, usually on a Unix platform, so these might be the broad areas to look at if you were planning a career as a commercial developer. One disadvantage of Java, apart from the steep learning curve for
JEE, is that it's a standard teaching language at universities these days, so there are tens of thousands of inexperienced Java programmers being churned out every year all around the world who would be competing with you for work. And of course, most commercial jobs tend to be based in larger towns/cities, so you might not be able to telecommute.
C++/C are still widely used especially in engineering/hardware applications, but they're pretty tough to learn and I'm not sure how easy it would be to break into the job market without a strong technical background.
As Jeanne says, going for web application development might be a better route for you as it's easier to get started with and there might be more scope for working remotely. I might be inclined to start with an object-oriented language like Python/Ruby, plus one of the corresponding frameworks like Rails (Ruby) or Django (Python), because this will give you a quick route into OO/web application development and a lot of the knowledge will be easily transferable to other languages/platforms like Java, C# and even OO PHP or JavaScript. Plus you'll get an understanding of things like web servers, MVC and so on. Ruby/Rails is probably the more marketable option, but Python seems to have more free materials around online.
It's probably helpful to know a bit about JavaScript and one of the common JS frameworks like jQuery, plus some HTML/CSS, even if you don't want to go for front end stuff generally. JavaScript allows you to interact with
the Google interfaces for things like Google Maps, and it's also used as a server-side scripting language (
Google Apps Script) on
Google Apps - Google's cloud-based office application suite.
Alternatively, you could join the current rush into mobile app development for Android or Apple, although I'm not sure many people are actually earning much of a living from this right now.
Check out the big online job sites such as
Monster to get an idea of how much demand there is for particular skills, but bear in mind that it can sometimes be better to have some less common niche skill to offer, rather than just being another inexperienced Java developer or whatever, and your educational background might also be marketable in some areas e.g. for work on eLearning systems.
Finally, I don't know about the USA, but here in the UK there is a shortage of people who can teach computer programming in schools, because very few people with computing degrees go into teaching, so most IT teachers are only a page or so ahead of their students in the textbook (and many kids know more about computing than their teachers anyway). If the situation in the US is similar, then maybe there would be scope for you to learn enough to teach introductory programming in schools on a part-time basis, given your professional background?
Anyway, whichever approach you find fits best with your own aspirations, best of luck with it and I hope it's a lot of fun too.