Ruby on Rails. I've seen people who had 0 technical background, they took a few months off work to do one of those Ruby on Rails coding bootcamps in NYC, and are now getting offers for 6 figure coding jobs.
This is one of the most retarded things I've heard this week. I'm not calling you a liar, I'm calling any such situation completely and entirely untenable. Nobody, after a few months of coding, is ready for production work - let alone for a six figure salary. Anyone that hires someone for so much, for knowing so little, is doomed to fail very very quickly - and the only such employers will be startups with a very high burn rate trying to get to the market first, who aren't gambling their own money. If such a thing was tenable and stable, we'd all be doing it, now wouldn't we? Every CS major would drop out, do a few months, and get a job for six figures. For some odd reason, they're not.
Java is an excellent language, very popular. Higher learning curve than python; you also need to write much more code to get something done. With that said, I have years and years of experience with it, so it's worth learning. However, in my humble opinion, I'd learn C++ before Java, simply because java is C++ light - meaning it does mostly what C++ does, except in a more forgiving way. If you're going to learn a massive, complex, and powerful language, I'd learn C++ simply because it forces you to be a better programmer. After learning C++, feel free to go with java and never use C++ again... I've seen a lot of people learn C or C++ first, and a lot learn java first, and I'd choose working with the C or C++ crowd any day. Java just isn't rigorous enough, and instead wastes your time with making you write boilerplate code to do simple things. Finally, the "enterprise" mentality has a strong grip on java, and how it's discussed - you'll see people proposing large solutions, way overengineered, with factories that build factories (you'll get why this is funny later) to do relatively simple things.
Ruby is a perfectly fine alternative to python. Similar in scope and complexity. Popular language.
Some wisdom I've accumulated in regards to learning programming from scratch. For a normal person - not a hardware hacker - there are precisely two options of a first language. The first is a low-level, compiled, language; it's going to be complex, have a steep learning curve, and be brutally unforgiving to mistakes. It will make you a good programmer, or make you quit. Such languages are C, C++, D, and I suppose Java to some extent, but I don't recommend the latter as you know. The other alternative is a high-level, interpreted (or interpreted-compiled, such as perl) language that is easy to learn, easy to develop, very forgiving on mistakes, and lets you accomplish simple tasks very quickly. Such languages let you avoid learning about architecture, hardware, history, and "computer science"; they just let you be a programmer. They also have a much simpler learning curve, so the attrition rate is much lower. For these reasons, for someone like you (OP) I recommend such a language.
(The third option for people who do hardware work is assembly - any flavor, doesn't matter, though x86, MIPS, ARM (targeted towards the Cortex M line, these days), AVR, and PIC are all excellent choices, with varying levels of complexity to code, and complexity to program, and even complexity to set up the tool chain. I highly recommend not doing this unless you're really into understanding how things work at a deeper level.)