Kinda late, but here's my opinion.
Note that this is assuming you are mainly interested in embedded programming (not PC or larger computers):
1. C and then C++ are good to begin with, because you can easily learn how to write spaghetti code (jumping around using conditional GOTO statements), then you can convert the smaller jump sections to functions to get rid of all the GOTO jumps, and finally you can rewrite the program using Objects. You can do this in the Arduino IDE.
2. If you are interested mainly in microcontrollers then it is good to read a bit about ASM since it is the most literal (low-level) programming language there is. It is used for a lot of smaller microcontroller programming in the real world, where small runtime size and maximum speed are important. ...I have read online that there is a way to program the Atmel chips in Atmel Studio using ASM, but I've never tried it. Most other embedded chips provide a higher-level language but they still allow using ASM somehow.
(ASM is used for desktop computers, but not many PC programs are written in 100% ASM anymore, because it is relatively slow to write in. What's common is a program will be written in a higher-level language like C++, and then test-run. The slowest parts of the program are identified, and then those parts are re-written in ASM to get the whole thing to run as fast as possible while not spending huge amounts of time on it.
So certain parts of video game rendering engines, database programs and web server programs are often written in ASM. Hardware device drivers are also written in at least partly in ASM as well, to optimize their speeds.)
3. Also read up about what CPLD and FPGA chips are, and how they are programmed. It is a completely different type of process than what the Atmel / Pic / BASIC stamp / PC processor chips do. There are cheap CPLD and FPGA dev boards from China, but the learning curve for CPLD/FPGA programming seems to be pretty steep.
Below is not specifically embedded-programming-related, but anyway...
4. If you want to play with Java, the most-fun way to do that is to get a Android device (a phone or tablet) and then use Android Studio (it is a free download from Google) to write Android apps. Most Android devices with a SD card slot will allow you to install apps from an apk file on the SD card, if you enable developer mode. There are free guides and videos online about how to use Android Studio and write normal windowed apps, as well as full-screen animated games. 3-D games are kind of a heavy load for most Android devices; most Android games are really 2D or 2.5-D even though they may appear to be 3D.