There are many fields of programming, with many different things to focus on.
However, the principles of programming that you learn in C++ and Java are generally applicable. I recommend learning them, and finding one or two other languages to learn with radically different styles. Scheme or Haskell are good for learning "functional programming," for example. Once you have several languages under your belt, you'll begin to see the ways that they're all just expressing how to solve a problem in a computer, and you can choose the right tool for the right job.
There are far too many fields to list here. Your best bet is to learn about a few and stay open to other possibilities. Whenever possible, try out a new focus when you learn one, to see if it grabs your attention. Ideally, you'll be able to get a job doing something that is both in high demand (so pays well), and you are interested by (so it will keep your mind functioning at its best).
A few focuses, off the top of my head: Web development, game development, mobile apps (Android and iOS, they're pretty different, to say nothing of Windows Phone and more obscure systems), the server side of all of the above, kernel hacking, embedded systems (so programming microchips), databases.
Each one of these will have one or more languages which are particularly good at it, but you can usually bend many different languages to the task.
Does this help answer your question?