Have you used other game engines? If not, I'd suggest you start by building games in a few different game engines so that you can develop good taste.
The transition from 2D to 3D is pretty daunting, though. I do know a thing or two about using a 2D engine (assuming they don't differ that much in fundamental ways) just by working where I do.
Do you think I should stick with 2D engines before going on to develop 3D applications?
http://unity3d.com/learn/tutorials/projects/survival-shooter