XNA is used by real-world developers to create and sell commercial games. It isn't just a learning tool.
Games made using XNA can run on Windows, XBox 360, Zune, and Windows Phone.
Although some restrictions and fees apply when developing games for XBox Live, Windows games created with XNA can be distributed for free, even for commercial purposes.
XNA is very well documented, and Microsoft, as well as several third parties, provide useful tutorials and ready-made starter kits to speed learning and development.
The developer extends the Game class and overloads methods in a template to build a game. Intialize() is called first to set up the game's resources. LoadContent() then loads the game's graphical assets. Update() and Draw() are then called alternatively in a loop to run the game. Finally, when the game finishes, UnloadContent() is called to clean up.
XNA contains a rich library of useful classes that help with both the high-level design of the game as well as the low-level implementation details. Subsystems of a game are encapsulated in GameComponent Subclasses. The library also includes a set of algorithms and data structures to help with graphics and math.