I'm no expert so I wouldn't want to say what is best but if anyone wants to learn Java or C++ I found a great series of lectures by Stanford on iTunes U. It's free I am on lecture 7 and slowly getting better. I think if you search programming methodology it should come up.
I am trying to learn Java with the ambition of going onto C++ as most audio games jobs seem to ask for C++, don't know how it is for the rest of the developer world.