>>10
So sorry! I put in over 12 hours at work and was just pounding out a simple post. I didn’t' see a real need to fire up a word processor so I could spell and grammar check my work.
Spelling has always been my weak point. I can quote reams of technical data and have a near photographic memory EXCEPT for spelling and faces.
But about the original topic: There is plenty of free resources about C, C++, C# and so on. I would not start with Java but it is better than nothing. I wouldn't start with it simply because there are a billion programmers who claim to be Java programmers who can't really program. This tends to taint Java and many new Java programmers are painted with a very broad brush. Why bother with that mess?
Ideally, if you have any interest in electronics, I would suggest you start with Microcontroller programming. You can start with the Basic Stamp and learn "how to program" while you learn very key concepts about WHY we program the way we do. You will be able to learn about memory constraints and real world resource problems.
Here is a place to begin:
For "C"
The C Programming Language by Brian Kernighan and Dennis Ritchie
The C++ Programming Language by Bjarne Stroustrup
Each book has an Answer Book. Get it for your choice of language and go over each until you understand them.
You can get a free compiler in many places - even Microsoft.
You can download the free Express platform for C++, Visual Basic and others at:
http://www.microsoft.com/express/Downloads/
If you are familiar with Linux, you can get the GCC easily enough.
The main thing is to WRITE CODE! It isn't something you get good at without real work. You MUST study your ass off. Seriously, you had better be ready to live in a book or on your computer for weeks on end. As mentioned, there are good schools out there but you better have serious $$ for them. And you will still need to put in the time. It only takes a few months to get good enough for an entry level job. You will still need to study your butt off. To really get and STAY good, you really need to put in the time.
Let us know how you do.