My advice: go to school.
You aren't going to get any serious work, or learning, done trying to
learn on your. Learning on own is going to be difficult, and won't be
taken seriously by an employer.
If a university is out of the question, consider a junior college or
trade school. If I personally had to hire someone, I'd consider hiring
someone with a 2 year degree or the first 2 years of college coursework
at a junior college before I'd hire someone who was self-taught. If you
don't have a related degree (math, science, etc.) then "I learned it
myself" is going to be a non-starter; I simply wouldn't hire anyone with
no degree at all.
That said, sure, Java is an acceptable language to start learning. It's
practical and used in the workplace, as well as being not too baroque
for a new student. Other acceptable choices might be C#, Ruby, Python,
C, or probably a few more I'm unaware of.
I'm not an HR guy myself, so don't take this as advice, OP, these are
just observations. What I actually value is domain knowledge and
experience in software development. Note that I said "software
development", not "coding". Proven experience in delivering good
software applications is the ultimate litmus test. It's documented
critical thinking, and you only assess that by looking at years and
years of experience.
Domain knowledge is the other biggie. If you thoroughly understand
problem domains from the perspective of a business user then you are
worth your weight in gold. If you are _starting_ to understand a problem
domain that's good too. For example, understanding accounting or
mathematics or an engineering discipline, or having enough knowledge of
the health industry to pursue health informatics, or having a biology
background so as to pursue bio-informatics, or knowing document
management, or legal procedures, etc etc - these are all more valuable
than knowing only how to program.
If you're starting off as a novice then you've got none of that, neither
the software engineering experience nor the domain knowledge. But a
diploma or degree - in a very wide variety of fields - is a good
launching point into domain knowledge. For example, study modern
surveying and if you keep your eyes open you can be programming GIS
before you know it. Just one example.
When I look at a resume - and I look at a lot of resumes - what
interests me is what problems did a candidate solve, not what technology
they used to solve it. OK, for some specialized technology skills that
take years to acquire, that's valuable knowledge in and of itself - very
few programming languages fall into that category, though.
So if I look at an application from someone new in the field -
practically no experience - not even serious programming chops are going
to interest me much. Not without some other knowledge it's not. I need
to see some thirst for knowledge in problem domains, not just an
interest in coding for coding's sake.
That's my take on it. I've got formal physics and engineering myself.
Some of the best programmers I've worked with have (or had) history or
English or music. Others came from a business background. A really good
combo that I've seen proven time and time again is some real-world
experience in *something* overlaid with a 2 year IT diploma.
Just my observations. Take 'em for what they're worth.
AHS