As of real language - C# > Java. End of Story. I'm a C# fan who said so ( still 2 years in Java ).
Anyway - C++ is roughly the same thing. And by roughly I mean - you do the same stuff for any game, with the exception of memory management ( the biggie ) and a few other things. This comes with the appropriate reward also - you performance could get a hell lot faster with C++.
The actual thing I needs special attention is not the tedious C++, and writing memory managers and file headers ( yuck! ), but something else.
I've seen many Unity developers so used to unity that they actually forget many of the things that Unity does for them ( rendering, physics, everything ). So getting to know how those work in general will be of great use. Most of those ideas could be applied and will be useful even in Unity, besides the gain of knowing wtf is happening.
PS : I'm a self taught student, too.
PS1.5 : I'm just guessing you actual skill level ( based on that I wrote the whole thing ).