Disclaimer, I work mostly with databases and have written more SQL than Java - where I still feel like a beginner.
Although I've used Google's App Engine to create a simple CRUD-style application with Java, I've never done Android development (Does one old Windows CE app count as "mobile experience"? ;-)
...want to learn enough to actually start building some of my own applications, both for computers as well as mobile devices
If you've taken a programming class or two, along with all the resources online and help from forums like this one, pick one *small* thing to start with and work on it step by step. Experience is key. You mention mobile, so maybe start with the tutorials here: http://developer.android.com/training/basics/firstapp/index.html
One of many things you can take away from a small project is to get some idea if you really want to do something like that as your "day job" - and also if you want to continue to invest in the education.
Besides this site of course, I've found these Java resources useful (listed in order from beginner to advanced):
- Really short, single concept exercises (e.g., use an array, parse a string, etc.)
- The official Java Tutorials.
- book: Effective Java (2nd Ed.) by Joshua Bloch - a level (or two) beyond just "how to" - gives many code design choices.
As for your plan to land a programming job before you have a CS degree, I would not put all your hopes in that one basket, but it might be possible.
I know the job market very tough now, but back when I was first trying to get a programming job (1998-99) the first question recruiters asked was "What is your job experience?"
, followed by, "Oh, you have no experience? Come back and see us even after just six months experience."
They didn't care that I had a bachelor's degree or what my major was. They'd skip right to the work experience (or lack of). If you find that's still true in today's job market, you might try getting a job at small business (that doesn't create software as its main purpose) or something like a school or small non-profit where, although you'd have to assist with other IT support duties, you could still get some programming experience by maintaining and enhancing an application they use (hopefully Java-based).
I've found that at a few small shops where a non-programmer has picked up enough, say MS Access, to be dangerous and created a popular application, but it now needs to be re-written or at least have a few things optimized by a "real programmer", because performance is terrible.
Or maybe pick an open source project that seems interesting, use it and when you find a bug, submit a fix / patch for it.
Some sites with learning / programming job advice:
- See 1/4 of the way down the page under: "So You Want to be a Programmer" (note degree is optional).
- Note how some interviewee's with Master's degrees can't solve the simple programming questions - experience is key.