Well, I would consider the "best" option for learning programming is to attend a university in pursuit of a CS degree. Obviously that's slightly overkill
I would certainly recommend VSWE's programming courses, but I'm sure you'll get that recommendation a lot.
A good resource once you have a few basics down is codingbat.com. It has a large number of practice problems, from very simple to deviously complex.
Although certainly unnecessary for learning the basics of java, eclipse is an extremely useful programming environment I could not for larger projects.
I thoroughly enjoy helping people learn programming and would be happy to answer any questions you might have.
Edit: agree about the book. Books are a good supplement and resource, but programming is not something you should try to learn by yourself reading a book.
I would certainly recommend VSWE's programming courses, but I'm sure you'll get that recommendation a lot.
A good resource once you have a few basics down is codingbat.com. It has a large number of practice problems, from very simple to deviously complex.
Although certainly unnecessary for learning the basics of java, eclipse is an extremely useful programming environment I could not for larger projects.
I thoroughly enjoy helping people learn programming and would be happy to answer any questions you might have.
Edit: agree about the book. Books are a good supplement and resource, but programming is not something you should try to learn by yourself reading a book.