I studied C++ during my college/high school (ugh, these language variations between US and British English can get pretty annoying sometimes) days: syntax, some algorithms for sorting, graphs, recursive functions etc. mostly basic stuff. Now, being in my second year at University, I realised I've spent a ridiculous amount of time almost exclusively in C# (and Unity to be more precise), much to the detriment of my general programming skills.
Managed languages are awesome. Heck, I'd say they're the best thing since sliced bread but they kind of keep you ignorant towards low-level stuff and its this ignorance that I want to address.
I had a chance to talk to someone from Microsoft at a recent conference and he simply told me that the best way to go forward is to "learn C++". That was a pretty humbling experience as mundane as that statement might seem, realising that there's a whole universe out there that I probably don't know. He also suggested looking into DirectX's HLSL or for that mater, anything that "talks" to the graphics card.
What I already started to do was to dig into OpenGL and I'm currently using OpenGL: A Primer by Edward Angel as my main learning material, however, I still need to address the more general issue with C++... and I'm not sure where to start because there seems to be a lot of things that I probably don't know.
I know for instance memory allocation is a big part of C++ which I haven't learned (and managed languages like C# aren't very helpful here xD). Optimising code using binary operations (or heck, even assembly although this cuts portability) is another one that I think would be good to know.
I've also seen Exceptional C++ mentioned here and there so this might be a good starting point (if the library didn't run out of it).
What are your thoughts on this? What C++ concepts / aspects should I try to study next?
[Later Edit: Should've changed the title to "Getting Better at..." because I already know something]