If you want to be an engine developer / graphics programmer:
- OpenGL. DirectX. (pick your order)
- GLSL. HLSL. (pick your order)
- GCC + its tools. Visual Studio + its tools. (pick your order)
- Understand first the fixed function pipeline (if you intend to start simple) and then the programmable pipeline from end to end, thoroughly.
- Spend time improving your maths: trig, matrices(!), quaternions, general calculus.
- Spend time learning about the most common 3D computational geometry problems including e.g. fast intersection tests, mesh construction, tessellation (creating triangles), mesh optimisation.
- Spend time learning about / understanding the various lighting models out there, this stuff is gold for an engine programmer. This will take you into new worlds of mathematics as compared with what is mentioned above.
- Spend time studying research papers (particularly stuff released by NVidia and in the Graphics Gems books) and demoscene code to improve your knowledge of optimisations used in graphics programming.
- Learn parallelisation / vectorisation well.
If you want to be a dedicated gameplay programmer / C++ generalist, any C++ engine will do, but I would suggest that you may not want to use a fully fledged engine, since you will still want to show that you are able to set up the application architecture on your own, and write the various subsystems involved (loaders, parsers, basic physics, entity systems etc. etc.). Something that wraps the 2D or 3D graphics and sound interfaces lightly is better from this viewpoint.
If you want to be a designer/developer hybrid, Unity, UDK, Flash, Java, XNA, JS/HTML5 Canvas are all good options, because they allow you to focus on the logic that gets the job done fast. Otherwise any high-level C++ engine that simplifies development as much as possible.
Faster coding = more designs pumped out per year.
I would suggest sticking to a path. Know what skills you bring to the table.