I would say it depends entirely on what sort of programs you want to write - and how competent you are to begin with.
C++ is still pretty well regarded, because it lets you develop pretty quick and gives very fast programs. There's a LOT of source code around to look at. HOWEVER, if you don't have the theory to begin with, it's very frustrating at the start.
Java, on the other hand, doesn't give quick programs. Again there's a lot of source. The difference is you can start to see quick results... and it's not as difficult to get into as C++. Nihilistic has already pointed out the down sides.
Best language for beginners I would say is still Basic. Visual Basic even better. Again lots of source, quick results, but much the easiest for figuring out how programming works.
Mind you, maybe a quick course in plain C would leave you ready for a course in object orientated stuff and then then leap to C++ or Java - that's the way I'm going after messing about with older methods for a long time.