I'd guess Java wouldn't be a bad choise.
You can use it for desktop applications, web applications, android applications.
c++ is a nice language for desktop applications.
Although in all honesty, learning a language is more about learning the logic/possibilities than the language itself.
If you know C++ the jump to java/c# isn't too hard.
You can also use c# for desktop applications/web applications(asp.net backend).
Do take into account that iPhone applications use objective c.
As to to learning it.
There are plenty of tutorials (and if you're interested in Android then the google site is a nice source).
But one way of learning it that might be useful is just setting a goal for yourself and looking things up as you need them. This might cause you to review some things but it's a nice way to figure it out and try new things.