It's dangerous to code alone! Take this.

Before Starting MonoGame

I’ve been asked this question a few times now, so let me post an answer here to be more readily available to everybody.

A topic that often comes up is, “Which parts of the C# Player’s Guide book do I need to get through to be prepared to dive into MonoGame?”

First, I should say that this will depend on you. I’ve seen people dive in with 0 previous C# experience–even 0 previous programming experience–and be fine. I don’t think that’s typical, and even for those that survive it, I’m not convinced it is the easiest path. Just a path. I typically recommend learning the basics of C# before diving into MonoGame, so that you’re not trying to learn two big, broad technical topics at the same time.

There are two ways you can look at this. First, I can list the levels that make sense to go through. This is a reasonable discussion to have, though I kind of like my second way below. But let’s start there.

A Perspective of Levels (Chapters)

Here’s what I’d suggest you get through in the C# Player’s Guide, 4th Edition before jumping into MonoGame:

  1. You do not need to do any of the Side Quests. They’re pretty safe to skip.
  2. I recommend getting through Parts 1 and 2 (Basics and Object-Oriented Programming), with a few possible exceptions noted below.
  3. There’s nothing in the MonoGame API that I can think of right now that uses tuples or records, so you might be able to skip those two levels. But they’re valuable tools, and if you can spare the time, they’re still worth doing.
  4. There are a few levels in Part 3 that would be in the same category. Events, lambdas, delegates, and exceptions could all be beneficial to you. But I don’t know that it is wrong to learn these in parallel as you start with MonoGame.
  5. You don’t need deep mastery of everything you encounter. Still, you probably want some basic experience with the concepts, so be sure to do at least some of the challenges as you go. For example, you’ll want to know a thing or two about inheritance, interfaces, polymorphism, and structs. MonoGame uses all of those somewhat heavily. If you’ve done some of the challenges in those levels and feel like you understand it, that’s all you need.
  6. I’d still suggest skimming through everything in the book that you don’t read thoroughly. That can be as simple as reading the headings, the Speedruns, and glancing at some of the code snippets. Even just a few seconds per page. That way, you know what’s there if you bump into it and have a vague idea of what is available to you when trying to come up with solutions. You’ll know where to find it when you need it.

In short, you should make sure you’re comfortable with the basics of the stuff in Parts 1 and 2. You don’t have to read every single word. But you would ideally have some actual, hands-on experience with the concepts in those parts. That means doing some of the challenges (or a suitable replacement).

A Perspective of Experience Points

The other way to look at it is this:

There are 11800 total XP in the book, though that requires doing everything, even though the book gives you options in several places. If you follow what the book says and pick and choose, you’ll end up with something around 9500 total XP. Through the end of Part 2, there is about 6025 XP.

If you have accumulated 6000+ XP, I’m confident you won’t have much C#-specific trouble in the MonoGame world. But that’s a higher bar than is probably strictly necessary.

In a pinch, I think if you’ve got 3000 XP, you’re going to be okay. That’s Level 6. (Experience Level 6, not the chapter called Level 6.) That’s enough XP that it probably covers C# with some breadth and also some depth. There will be things missing from your knowledge, but you won’t be overwhelmed by it. (And you’ll have the book to rely upon when you encounter those.)

I hesitate to recommend going to MonoGame under 2000 XP (XP Levels 1 through 4), but some do it and are just fine. Programming is an open, sandbox world. If you want to walk straight to the final boss and give it a go, nothing is stopping you!