
Starting off with Programming...
You've been hearing rather misguided advice I think. Keep in mind that a lot of this is strictly my own opinion based on my own experiences.
C++ isn't really more "complex" than C# or Java. It just appears that way because of the fact that it is a much more what is called lower-level or system-level programming language. For example, a huge amount of the Windows operating system itself was probably written in C or C++ (C++ is a superset of C and is in general backwards compatible with C, think almost like C version 2 but not quite).
In other words, C++ feels more complicated because you have to learn a bit more about how the computer actually works before it becomes overly useful. I admit, it's a bit more to learn, but it's not actually that difficult if you learn it properly and in proper order. Half of the problem with learning C++ is a lot of people instruct you to learn it - figuratively speaking - ass-backwards, which makes it hard to develop useful applications as you then need to go back and learn again.
C++ is probably better for games because of the fact that it is lower-level. C# and Java rely on, respectively, a framework and a virtual machine. These things make both languages a bit more distanced from the lower level system stuff. I guess you could say this does make it easier to make applications in a sense, however it also means these applications are bound to the framework / virtual machine.
I guess people are telling you C# is more "modern" because it is very actively being used in the .Net community. Admittedly I used to use C# all the time and I loved using it because I feel it provided a bit more flexibility than things like Visual Basic and it had similarities to C++ and Java that made it more comfortable to use in my case. Initially C# was kind of like "Microsoft's Java" from my memory. There are a lot of syntactical similarities between C# and Java.
I haven't really seen Java being used so much recently, but maybe that's just because I'm not really looking in the right places / I don't really use much that needs a Java frontend. I quite like Java as a programming language, but I feel that it's probably a bit limited as far as game development is concerned. Of course, there are exceptions (like RuneScape) but you're better off using C++ or C# if you're thinking device-based games. The only reason why Java is so powerful for RuneScape is because it allows the game to be webbrowser / internet based while still relying on the client computer's hardware (CPU, graphics capabilities etc.).
If you were wanting to use something like Unity3D and C# is its language of choice, then by all means C# is a completely viable choice. I'd actually recommend it because Unity will provide you with a ways of getting in to game dev without going too heavy in to all of that system-level stuff and having to discover and work with C++ intended engines that were made for teams or experienced programmers. In a way, Unity is probably the perfect beginner tool for proper 3D game development while still giving you a great amount of flexibility in what you can do.
---
To elaborate on your questions on Java: Java is NOT JavaScript. JavaScript is a scripting language that is syntactically very similar to Java, however JavaScript code is actually run by the webbrowser when the script is loaded. Java, however, is run by the Java Virtual Machine (JVM, which is the main component of the JRE that you have to download to run Java apps).
JavaScript is more intended for dynamic display of content and running simple background tasks on a webpage. In other words, it's a way of providing a dynamic frontend to a webpage.
Java however was initially intended to be able to be run on any device that had a JRE made for it. For the people who made Java, it was paramount that cross-platform compatibility was there. Sooner or later Java developed in to something more internet themed, i.e. a way to deliver content to users (think like desktop applications in your webbrowser) while still being as secure as possible - which is why the JVM stops any Java application from directly accessing any of the client computer's memory etc.; imagine if you could go on to a webpage with something like Java that allowed a virus to be loaded in to your computer's memory. The JVM stops that kind of stuff and that is one of Java's advantages.
To summarise that, JavaScript is for webbrowser based dynamic (changing) content, such as those roll-down menus you see, or even the text editor that allowed you to write your post on this forum that allows you to bold, underline or color text, etc.. Java (in an internet context) is for the dynamic delivery of actual applications.
---
As an aside, I apologise if this doesn't make any sense, is incorrect in any way, or is entirely incohesive. I've been on very little sleep recently and I haven't actually used any of these languages in quite a while so I'm running on old memories.