XNA is a good starting point for learning, yea. A bit restrictive for commercial games due in terms of cross-platform and how to incorporate assets and various other things (it's often pretty difficult to "do it your way" in XNA, it's kind of the engine's way or the highway, though I admit it's been a while since I checked). Anyway, a good starting point where you can actually tinker with something that fully looks like a game.
On the other hand, my own path of learning was largely based on doing a bunch of different kinds of programming for several years and then doing some game hobby projects and then jumping into professional game programming (where it really helped to have Chris to give me some pointers), so my bias is towards "if you don't know how to build each individual piece of a game engine, you're at a disadvantage".
I still only know a moderate amount about graphics programming and it kind of gets in the way, etc. Audio programming, thankfully, one doesn't really need to know a whole lot the internals of nowadays (but audio library quirks can still bite you). But with most of the other stuff I could probably take a good shot at telling you what's happening down in the ALU
And I find that quite helpful in my job, actually.
So I'd suggest XNA for fiddling from "the top", but grab the free Visual C# Express (unless you own Visual Studio already, of course) and make a console project game of "guess a number", and then tic-tac-toe, or some progression like that.
Once you actually move into "ok, seriously, how do I deploy a game commercially?" you'd need to pick an engine and go with it. You could build your own, and I kinda wish I was working with a custom engine because I like the control, but in reality Unity is better than our custom engine would be at this point while taking less development time to make work.
Once you have an engine you're serious about using, it's basically a matter of "settling in" and finding out a workflow process that works. There will be tons of hurdles, barriers, workarounds, and facepalm-moments. But generally you can find some
way to get it working. And you just keep whacking all the moles that pop up until you have an acceptable experience. And then you run with it